Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

RustCrypto: SHA-3

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

Implementation of the SHA-3 family of cryptographic hash algorithms.

There are 4 standard fixed-size algorithms specified in the SHA-3 standard: SHA3-224, SHA3-256, SHA3-384, SHA3-512.

SHAKE128 and SHAKE256 extendable output functions (XOF) are defined in the shake crate

Additionally, this crate supports:

  • Keccak224, Keccak256, Keccak384, Keccak512: NIST submission without padding changes
  • Keccak256Full: CryptoNight variant of SHA-3

Examples

Output size of SHA3-256 is fixed, so its functionality is usually accessed via the Digest trait:

use hex_literal::hex;
use sha3::{Digest, Sha3_256};

let mut hasher = Sha3_256::new();
hasher.update(b"abc");
let hash = hasher.finalize();

assert_eq!(hash, hex!("3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532"));

See the digest crate docs for additional examples.

License

The crate is licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.