Expand description
§TurboShake
TurboSHAKE is a family of extendable output functions (XOFs) powered by round-reduced (i.e. 12 -rounds) Keccak-p[1600, 12] permutation, proposed in https://ia.cr/2023/342.
§Usage
Add this to your Cargo.toml:
[dependencies]
turboshake = "=0.5.0"Then, use it in your code:
use turboshake::{TurboShake128, TurboShake256};
let mut md = [0u8; 32];
let mut ts128 = TurboShake128::default();
ts128.absorb(b"hello").expect("must absorb data");
ts128.finalize::<{TurboShake128::DEFAULT_DOMAIN_SEPARATOR}>().expect("must finalize");
ts128.squeeze(&mut md).expect("must squeeze data");
println!("TurboSHAKE128: {:x?}", md);
let mut ts256 = TurboShake256::default();
ts256.absorb(b"hello").expect("must absorb data");
ts256.finalize::<{TurboShake256::DEFAULT_DOMAIN_SEPARATOR}>().expect("must finalize");
ts256.squeeze(&mut md).expect("must squeeze data");
println!("TurboSHAKE256: {:x?}", md);See project README @ https://github.com/itzmeanjan/turboshake for more details.
Structs§
- Turbo
Shake128 - TurboSHAKE128 Extendable Output Function (XOF)
- Turbo
Shake256 - TurboSHAKE256 Extendable Output Function (XOF)
Enums§
- Turbo
Shake Error - Errors encountered during absorbing, finalizing or squeezing from TurboShake instances.