[][src]Trait noise_protocol::Hash

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

type Block: U8Array

Type of a block.

type Output: U8Array

Type of output.

Loading content...

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.

Loading content...

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)

Calculate HKDF, as specified in the noise spec.

fn hkdf3(
    chaining_key: &[u8],
    input_key_material: &[u8]
) -> (Self::Output, Self::Output, Self::Output)

Triple output HKDF.

Loading content...

Implementors

Loading content...