pub trait Hash: Send + Sync {
// Required methods
fn name(&self) -> &'static str;
fn block_len(&self) -> usize;
fn hash_len(&self) -> usize;
fn reset(&mut self);
fn input(&mut self, data: &[u8]);
fn result(&mut self, out: &mut [u8]);
// Provided methods
fn hmac(&mut self, key: &[u8], data: &[u8], out: &mut [u8]) { ... }
fn hkdf(
&mut self,
chaining_key: &[u8],
input_key_material: &[u8],
outputs: usize,
out1: &mut [u8],
out2: &mut [u8],
out3: &mut [u8]
) { ... }
}
Expand description
Hashing operations