1 unstable release
0.5.1 | Oct 30, 2024 |
---|
#1310 in Cryptography
25KB
354 lines
pwsec
- support for password-based encryption
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