Crate blake2b_simd[][src]

GitHub crates.io Actions Status

An implementation of the BLAKE2b and BLAKE2bp hash functions. See also blake2s_simd.

This crate includes:

Example

use blake2b_simd::{blake2b, Params};

let expected = "ca002330e69d3e6b84a46a56a6533fd79d51d97a3bb7cad6c2ff43b354185d6d\
                c1e723fb3db4ae0737e120378424c714bb982d9dc5bbd7a0ab318240ddd18f8d";
let hash = blake2b(b"foo");
assert_eq!(expected, &hash.to_hex());

let hash = Params::new()
    .hash_length(16)
    .key(b"The Magic Words are Squeamish Ossifrage")
    .personal(b"L. P. Waterhouse")
    .to_state()
    .update(b"foo")
    .update(b"bar")
    .update(b"baz")
    .finalize();
assert_eq!("ee8ff4e9be887297cf79348dc35dab56", &hash.to_hex());

Modules

blake2bp

BLAKE2bp, a variant of BLAKE2b that uses SIMD more efficiently.

many

Interfaces for hashing multiple inputs at once, using SIMD more efficiently.

Structs

Hash

A finalized BLAKE2 hash, with constant-time equality.

Params

A parameter builder that exposes all the non-default BLAKE2 features.

State

An incremental hasher for BLAKE2b.

Constants

BLOCKBYTES

The number input bytes passed to each call to the compression function. Small benchmarks need to use an even multiple of BLOCKBYTES, or else their apparent throughput will be low.

KEYBYTES

The max key length.

OUTBYTES

The max hash length.

PERSONALBYTES

The max personalization length.

SALTBYTES

The max salt length.

Functions

blake2b

Compute the BLAKE2b hash of a slice of bytes all at once, using default parameters.