#password #expansion #algorithm

no-std vep

Variable-length Expansion Pass function. ( i.e. short password to long hashed password )

5 releases (stable)

2.1.0 Sep 7, 2021
2.0.0 Sep 6, 2021
1.0.1 Sep 2, 2021
0.1.0 Aug 22, 2021

#2489 in Cryptography


Used in secwords

MIT/Apache

14KB
216 lines

vep

Variable-length Expansion Pass function. ( i.e. short password to long hashed password )

CI Crates.io Licensed Twitter

| Docs | Latest Note |

[dependencies]
vep = "2.1.0"

or

[dependencies]
vep = { version = "2.1.0", default-features = false } # no-std

How to

use vep::Vep;
use sha2::{Sha256, Digest}; // can be any hasher(dyn Digest from `digest` crate)

let src = b"hello vep!"; // <- 10 bytes
let expanded = Vep(Sha256::new()).expand(src); // -> 10 * 32 bytes == `320 bytes`

assert_eq!(expanded.len(), Vep::<Sha256>::output_size_calc(src));

Fixed size available

let src = b"hello vep!"; // <- 10 bytes
let result = Vep(Sha256::new()).expand_and_then_reduce(src); // -> 320 bytes -> `32 bytes` (reduced)

assert_eq!(result.len(), Vep::<Sha256>::reduced_size_calc());

* Algorithm


Vep Image

Dependencies

~360KB