pwsec

Crates.iopwsec
lib.rspwsec
version0.5.1
sourcesrc
created_at2024-10-30 17:27:50.855459
updated_at2024-10-30 17:27:50.855459
descriptionSupport for password-based encryption.
homepage
repositoryhttps://github.com/emabee/pwsec
max_upload_size
id1428879
size54,598
(emabee)

documentation

https://docs.rs/pwsec

README

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.

Commit count: 3

cargo fmt