[]Trait ed25519_dalek::Digest

pub trait Digest {
    type OutputSize: ArrayLength<u8>;
    fn new() -> Self;
fn input<B>(&mut self, data: B)
        B: AsRef<[u8]>
fn chain<B>(self, data: B) -> Self
        B: AsRef<[u8]>
fn result(self) -> GenericArray<u8, Self::OutputSize>;
fn result_reset(&mut self) -> GenericArray<u8, Self::OutputSize>;
fn reset(&mut self);
fn output_size() -> usize;
fn digest(data: &[u8]) -> GenericArray<u8, Self::OutputSize>; }

The Digest trait specifies an interface common for digest functions.

It's a convenience wrapper around Input, FixedOutput, Reset, Clone, and Default traits. It also provides additional convenience methods.

Associated Types

type OutputSize: ArrayLength<u8>

Loading content...

Required methods

fn new() -> Self

Create new hasher instance

fn input<B>(&mut self, data: B) where
    B: AsRef<[u8]>, 

Digest input data.

This method can be called repeatedly for use with streaming messages.

fn chain<B>(self, data: B) -> Self where
    B: AsRef<[u8]>, 

Digest input data in a chained manner.

fn result(self) -> GenericArray<u8, Self::OutputSize>

Retrieve result and consume hasher instance.

fn result_reset(&mut self) -> GenericArray<u8, Self::OutputSize>

Retrieve result and reset hasher instance.

This method sometimes can be more efficient compared to hasher re-creation.

fn reset(&mut self)

Reset hasher instance to its initial state.

fn output_size() -> usize

Get output size of the hasher

fn digest(data: &[u8]) -> GenericArray<u8, Self::OutputSize>

Convenience function to compute hash of the data. It will handle hasher creation, data feeding and finalization.


This example is not tested
println!("{:x}", sha2::Sha256::digest(b"Hello world"));
Loading content...


impl<D> Digest for D where
    D: Input + FixedOutput + Reset + Clone + Default

type OutputSize = <D as FixedOutput>::OutputSize

Loading content...