1 unstable release

new 0.5.1 Oct 30, 2024

#1079 in Cryptography

Download history 91/week @ 2024-10-25

91 downloads per month

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.3–3MB
~60K SLoC