1 unstable release

0.5.1 Oct 30, 2024

#1310 in Cryptography

MIT/Apache

25KB
354 lines

pwsec - support for password-based encryption

Latest version Documentation License Build unsafe forbidden

Usage

Add pwsec to the dependencies section in your project's Cargo.toml:

[dependencies]
pwsec = "0.5"

Capabilities

pwsec uses an (optionally authenticated) encryption scheme.

Two closely related variants are provided currently, Chacha and ChachaB64.

Alternative variants with similar API and based on other encryption algorithms can be added on demand.

Example with ChachaB64 and storage in a file

Encryption

flowchart LR

A1{{Auth data}}
A2[/Auth data/]
C[/CipherB64/]
E[__ChachaB64::__
__encrypt_auth__
]
M{{Password}}
P{{Secret}}

style E fill:#AAf,stroke:#333,stroke-width:3px

subgraph File
    C
    A2
end

subgraph Application Data
    A1
    P
end
M

M --> E
P -- Serialization --> E
A1 -- Serialization --> E

E --> C
A1 -. Serialization .-> A2

Decryption

flowchart RL

A1{{Auth data}}
A2[/Auth data/]
C[/CipherB64/]
D[__ChachaB64::
decrypt_auth__]
M{{Password}}
P{{Secret}}

style D fill:#AAf,stroke:#333,stroke-width:3px

subgraph File
    C
    A2
end

subgraph Application Data
    A1
    P
end
M

M --> D
D -- Deserialization --> P
A2 --> D

C --> D
A2 -. Deserialization .-> A1

Versions

See the change log for more details.

License

Licensed under either of:

  • Apache License, Version 2.0
  • MIT license

at your option.

Dependencies

~2.2–3MB
~59K SLoC