Struct ring::digest::Context [−][src]
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]
impl Context
pub fn new(algorithm: &'static Algorithm) -> Context
[src]
pub fn new(algorithm: &'static Algorithm) -> Context
Constructs a new context.
C analogs: EVP_DigestInit
, EVP_DigestInit_ex
pub fn update(&mut self, data: &[u8])
[src]
pub fn update(&mut self, data: &[u8])
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]
pub fn finish(self) -> Digest
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]
pub fn algorithm(&self) -> &'static Algorithm
The algorithm that this context is using.