Trait noise_protocol::Hash [−][src]
pub trait Hash: Default { type Block: U8Array; type Output: U8Array; fn name() -> &'static str; fn input(&mut self, data: &[u8]); fn result(&mut self) -> Self::Output; fn block_len() -> usize { ... } fn hash_len() -> usize { ... } fn reset(&mut self) { ... } fn hash(data: &[u8]) -> Self::Output { ... } fn hmac_many(key: &[u8], data: &[&[u8]]) -> Self::Output { ... } fn hmac(key: &[u8], data: &[u8]) -> Self::Output { ... } fn hkdf(
chaining_key: &[u8],
input_key_material: &[u8]
) -> (Self::Output, Self::Output) { ... } fn hkdf3(
chaining_key: &[u8],
input_key_material: &[u8]
) -> (Self::Output, Self::Output, Self::Output) { ... } }
A hash function.
Associated Types
Required Methods
fn name() -> &'static str
Name of the hash function.
fn input(&mut self, data: &[u8])
Update hash context with some input.
fn result(&mut self) -> Self::Output
Get hash result.
Provided Methods
fn block_len() -> usize
Length of block.
fn hash_len() -> usize
Length of hash output, in number of bytes.
fn reset(&mut self)
Reset state of hash context.
fn hash(data: &[u8]) -> Self::Output
Calculate hash of some data.
fn hmac_many(key: &[u8], data: &[&[u8]]) -> Self::Output
Calculate HMAC-THIS-HASH, with some key
and several messages.
fn hmac(key: &[u8], data: &[u8]) -> Self::Output
Calculate HMAC-THIS-HASH, with some key
and a message.
fn hkdf(
chaining_key: &[u8],
input_key_material: &[u8]
) -> (Self::Output, Self::Output)
chaining_key: &[u8],
input_key_material: &[u8]
) -> (Self::Output, Self::Output)
Calculate HKDF, as specified in the noise spec.
fn hkdf3(
chaining_key: &[u8],
input_key_material: &[u8]
) -> (Self::Output, Self::Output, Self::Output)
chaining_key: &[u8],
input_key_material: &[u8]
) -> (Self::Output, Self::Output, Self::Output)
Triple output HKDF.