[][src]Struct ring::digest::Context

pub struct Context {
    pub algorithm: &'static Algorithm,
    // some fields omitted
}

A context for multi-step (Init-Update-Finish) digest calculations.

C analog: EVP_MD_CTX.

Examples

use ring::digest;

let one_shot = digest::digest(&digest::SHA384, b"hello, world");

let mut ctx = digest::Context::new(&digest::SHA384);
ctx.update(b"hello");
ctx.update(b", ");
ctx.update(b"world");
let multi_part = ctx.finish();

assert_eq!(&one_shot.as_ref(), &multi_part.as_ref());

Fields

algorithm: &'static Algorithm

The context's algorithm.

Methods

impl Context[src]

pub fn new(algorithm: &'static Algorithm) -> Context[src]

Constructs a new context.

C analogs: EVP_DigestInit, EVP_DigestInit_ex

pub fn update(&mut self, data: &[u8])[src]

Updates the digest with all the data in data. update may be called zero or more times until finish is called. It must not be called after finish has been called.

C analog: EVP_DigestUpdate

pub fn finish(self) -> Digest[src]

Finalizes the digest calculation and returns the digest value. finish consumes the context so it cannot be (mis-)used after finish has been called.

C analogs: EVP_DigestFinal, EVP_DigestFinal_ex

pub fn algorithm(&self) -> &'static Algorithm[src]

The algorithm that this context is using.

Trait Implementations

impl Clone for Context[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl Send for Context

impl Sync for Context

Blanket Implementations

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

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

The type returned in the event of a conversion error.

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

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

The type returned in the event of a conversion error.

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T