MacCtx

Struct MacCtx 

Source
pub struct MacCtx(/* private fields */);
Expand description

A context object used to perform MAC operations.

Implementations§

Source§

impl MacCtx

Source

pub fn new(mac: Mac) -> Result<Self, ErrorStack>

Creates a new context.

This corresponds to EVP_MAC_CTX_new.

Source

pub fn init_ex( &mut self, key: Option<&[u8]>, md: &CStr, ) -> Result<(), ErrorStack>

Set key and digest

Source

pub fn mac_size(&self) -> usize

Returns the MAC output size for the given context.

This corresponds to EVP_MAC_CTX_get_mac_size.

Source

pub fn block_size(&self) -> usize

Returns the MAC block size for the given context.

Not all MAC algorithms support this.

This corresponds to EVP_MAC_CTX_get_block_size.

Source

pub fn mac_update(&mut self, data: &[u8]) -> Result<(), ErrorStack>

Add data bytes to the MAC input.

This corresponds to EVP_MAC_update.

Source

pub fn mac_final(&mut self, out: Option<&mut [u8]>) -> Result<usize, ErrorStack>

Do the final computation and stores the result.

If out is set to None, an upper bound on the number of bytes required for the output buffer will be returned.

This corresponds to EVP_MAC_final.

Source

pub fn mac_final_to_vec( &mut self, out: &mut Vec<u8>, ) -> Result<usize, ErrorStack>

Like Self::mac_final but appends the result to a Vec.

Trait Implementations§

Source§

impl AsRef<MacCtxRef> for MacCtx

Source§

fn as_ref(&self) -> &MacCtxRef

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<MacCtxRef> for MacCtx

Source§

fn borrow(&self) -> &MacCtxRef

Immutably borrows from an owned value. Read more
Source§

impl Clone for MacCtx

Source§

fn clone(&self) -> MacCtx

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Deref for MacCtx

Source§

type Target = MacCtxRef

The resulting type after dereferencing.
Source§

fn deref(&self) -> &MacCtxRef

Dereferences the value.
Source§

impl DerefMut for MacCtx

Source§

fn deref_mut(&mut self) -> &mut MacCtxRef

Mutably dereferences the value.
Source§

impl Drop for MacCtx

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl ForeignType for MacCtx

Source§

type CType = EVP_MAC_CTX

The raw C type.
Source§

type Ref = MacCtxRef

The type representing a reference to this type.
Source§

unsafe fn from_ptr(ptr: *mut EVP_MAC_CTX) -> MacCtx

Constructs an instance of this type from its raw type.
Source§

fn as_ptr(&self) -> *mut EVP_MAC_CTX

Returns a raw pointer to the wrapped value.
Source§

impl Send for MacCtx

Source§

impl Sync for MacCtx

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.