Crate turboshake

Crate turboshake 

Source
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§

TurboShake128
TurboSHAKE128 Extendable Output Function (XOF)
TurboShake256
TurboSHAKE256 Extendable Output Function (XOF)

Enums§

TurboShakeError
Errors encountered during absorbing, finalizing or squeezing from TurboShake instances.