Struct blake2b_simd::Params[][src]

pub struct Params { /* fields omitted */ }
Expand description

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

Apart from hash_length, which controls the length of the final Hash, all of these parameters are just associated data that gets mixed with the input. For more details, see the BLAKE2 spec.

Several of the parameters have a valid range defined in the spec and documented below. Trying to set an invalid parameter will panic.

Example

// Create a Params object with a secret key and a non-default length.
let mut params = Params::new();
params.key(b"my secret key");
params.hash_length(16);

// Use those params to hash an input all at once.
let hash = params.hash(b"my input");

// Or use those params to build an incremental State.
let mut state = params.to_state();

Implementations

Equivalent to Params::default().

Hash an input all at once with these parameters.

Construct a State object based on these parameters, for hashing input incrementally.

Set the length of the final hash in bytes, from 1 to OUTBYTES (64). Apart from controlling the length of the final Hash, this is also associated data, and changing it will result in a totally different hash.

Use a secret key, so that BLAKE2 acts as a MAC. The maximum key length is KEYBYTES (64). An empty key is equivalent to having no key at all.

At most SALTBYTES (16). Shorter salts are padded with null bytes. An empty salt is equivalent to having no salt at all.

At most PERSONALBYTES (16). Shorter personalizations are padded with null bytes. An empty personalization is equivalent to having no personalization at all.

From 0 (meaning unlimited) to 255. The default is 1 (meaning sequential).

From 0 (meaning BLAKE2X B2 hashes), through 1 (the default, meaning sequential) to 255 (meaning unlimited).

From 0 (the default, meaning unlimited or sequential) to 2^32 - 1.

From 0 (the default, meaning first, leftmost, leaf, or sequential) to 2^64 - 1.

From 0 (the default, meaning leaf or sequential) to 255.

From 0 (the default, meaning sequential) to OUTBYTES (64).

Indicates the rightmost node in a row. This can also be changed on the State object, potentially after hashing has begun. See State::set_last_node.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.