Struct nettle::aead::Ocb

source ·
pub struct Ocb<C, T>where
    C: Cipher + BlockSizeIs16,
    T: Unsigned + IsLessOrEqual<U16, Output = True>,{ /* private fields */ }
Expand description

Phillip Rogaway’s OCB mode of operation.

The type parameter T denotes the tag length, which must not exceed Ocb::MAX_DIGEST_SIZE.

Implementations§

source§

impl<C, T> Ocb<C, T>where C: Cipher + BlockSizeIs16, T: Unsigned + IsLessOrEqual<U16, Output = True>,

source

pub const MAX_DIGEST_SIZE: usize = 16usize

Maximum size of a OCB digest in bytes.

source

pub fn with_key_and_nonce(key: &[u8], nonce: &[u8]) -> Result<Self>

Creates a new OCB instance with secret key and public nonce.

Returns an error if OCB mode is not supported by the version of Nettle we are linked against at build time.

Trait Implementations§

source§

impl<C, T> Aead for Ocb<C, T>where C: Cipher + BlockSizeIs16, T: Unsigned + IsLessOrEqual<U16, Output = True>,

source§

fn digest_size(&self) -> usize

Length of the digest in bytes.
source§

fn update(&mut self, ad: &[u8])

Adds associated data ad.
source§

fn encrypt(&mut self, dst: &mut [u8], src: &[u8])

Encrypts one block src to dst.
source§

fn decrypt(&mut self, dst: &mut [u8], src: &[u8])

Decrypts one block src to dst.
source§

fn digest(&mut self, digest: &mut [u8])

Produce the digest.

Auto Trait Implementations§

§

impl<C, T> RefUnwindSafe for Ocb<C, T>where C: RefUnwindSafe, T: RefUnwindSafe,

§

impl<C, T> Send for Ocb<C, T>where C: Send, T: Send,

§

impl<C, T> Sync for Ocb<C, T>where C: Sync, T: Sync,

§

impl<C, T> Unpin for Ocb<C, T>where C: Unpin, T: Unpin,

§

impl<C, T> UnwindSafe for Ocb<C, T>where C: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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<T> Same<T> for T

§

type Output = T

Should always be Self
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.