[−][src]Struct openssl::crypto::hmac::HMAC
Provides HMAC computation.
Examples
Calculate a HMAC in one go.
use openssl::crypto::hash::Type; use openssl::crypto::hmac::hmac; let key = b"Jefe"; let data = b"what do ya want for nothing?"; let spec = b"\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7\x38"; let res = hmac(Type::MD5, key, data); assert_eq!(res, spec);
Use the Write trait to supply the input in chunks.
use std::io::prelude::*; use openssl::crypto::hash::Type; use openssl::crypto::hmac::HMAC; let key = b"Jefe"; let data: &[&[u8]] = &[b"what do ya ", b"want for nothing?"]; let spec = b"\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7\x38"; let mut h = HMAC::new(Type::MD5, &*key); h.write_all(data[0]); h.write_all(data[1]); let res = h.finish(); assert_eq!(res, spec);
Methods
impl HMAC[src]
impl HMACⓘImportant traits for HMACpub fn new(ty: Type, key: &[u8]) -> HMAC[src]
pub fn new(ty: Type, key: &[u8]) -> HMACCreates a new HMAC with the specified hash type using the key.
pub fn finish(&mut self) -> Vec<u8>[src]
pub fn finish(&mut self) -> Vec<u8>Returns the hash of the data written since creation or
the last finish and resets the hasher.
Trait Implementations
impl Clone for HMAC[src]
impl Clone for HMACⓘImportant traits for HMACfn clone(&self) -> HMAC[src]
fn clone(&self) -> HMACReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Drop for HMAC[src]
impl Drop for HMACimpl Write for HMAC[src]
impl Write for HMACfn write(&mut self, buf: &[u8]) -> Result<usize>[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>Write a buffer into this object, returning how many bytes were written. Read more
fn flush(&mut self) -> Result<()>[src]
fn flush(&mut self) -> Result<()>Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>1.0.0[src]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>Attempts to write an entire buffer into this write. Read more
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>1.0.0[src]
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>Writes a formatted string into this writer, returning any error encountered. Read more
fn by_ref(&mut self) -> &mut Self1.0.0[src]
fn by_ref(&mut self) -> &mut SelfCreates a "by reference" adaptor for this instance of Write. Read more
Auto Trait Implementations
Blanket Implementations
impl<T> From for T[src]
impl<T> From for Timpl<T, U> Into for T where
U: From<T>, [src]
impl<T, U> Into for T where
U: From<T>, impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, type Owned = T
fn to_owned(&self) -> T[src]
fn to_owned(&self) -> TCreates owned data from borrowed data, usually by cloning. Read more
fn clone_into(&self, target: &mut T)[src]
fn clone_into(&self, target: &mut T)🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T, U> TryFrom for T where
T: From<U>, [src]
impl<T, U> TryFrom for T where
T: From<U>, type Error = !
try_from)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>try_from)Performs the conversion.
impl<T> Borrow for T where
T: ?Sized, [src]
impl<T> Borrow for T where
T: ?Sized, impl<T> BorrowMut for T where
T: ?Sized, [src]
impl<T> BorrowMut for T where
T: ?Sized, fn borrow_mut(&mut self) -> &mut T[src]
fn borrow_mut(&mut self) -> &mut TMutably borrows from an owned value. Read more
impl<T, U> TryInto for T where
U: TryFrom<T>, [src]
impl<T, U> TryInto for T where
U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
try_from)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>try_from)Performs the conversion.
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Any for T where
T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src]
fn get_type_id(&self) -> TypeId🔬 This is a nightly-only experimental API. (get_type_id)
this method will likely be replaced by an associated static
Gets the TypeId of self. Read more