Trait aead::stream::StreamPrimitive[][src]

pub trait StreamPrimitive<A> where
    A: AeadInPlace,
    A::NonceSize: Sub<Self::NonceOverhead>,
    NonceSize<A, Self>: ArrayLength<u8>, 
{ type NonceOverhead: ArrayLength<u8>; type Counter: AddAssign + Copy + Default + Eq; const COUNTER_INCR: Self::Counter; const COUNTER_MAX: Self::Counter; fn encrypt_in_place(
        &self,
        position: Self::Counter,
        last_block: bool,
        associated_data: &[u8],
        buffer: &mut dyn Buffer
    ) -> Result<(), Error>;
fn decrypt_in_place(
        &self,
        position: Self::Counter,
        last_block: bool,
        associated_data: &[u8],
        buffer: &mut dyn Buffer
    ) -> Result<(), Error>; fn encrypt<'msg, 'aad>(
        &self,
        position: Self::Counter,
        last_block: bool,
        plaintext: impl Into<Payload<'msg, 'aad>>
    ) -> Result<Vec<u8>, Error> { ... }
fn decrypt<'msg, 'aad>(
        &self,
        position: Self::Counter,
        last_block: bool,
        ciphertext: impl Into<Payload<'msg, 'aad>>
    ) -> Result<Vec<u8>, Error> { ... }
fn encryptor(self) -> Encryptor<A, Self>
    where
        Self: Sized
, { ... }
fn decryptor(self) -> Decryptor<A, Self>
    where
        Self: Sized
, { ... } }
This is supported on crate feature stream only.

Low-level STREAM implementation.

This trait provides a particular "flavor" of STREAM, as there are different ways the specifics of the construction can be implemented.

Deliberately immutable and stateless to permit parallel operation.

Associated Types

type NonceOverhead: ArrayLength<u8>[src]

Number of bytes this STREAM primitive requires from the nonce.

type Counter: AddAssign + Copy + Default + Eq[src]

Type used as the STREAM counter.

Loading content...

Associated Constants

const COUNTER_INCR: Self::Counter[src]

Value to use when incrementing the STREAM counter (i.e. one)

const COUNTER_MAX: Self::Counter[src]

Maximum value of the STREAM counter.

Loading content...

Required methods

fn encrypt_in_place(
    &self,
    position: Self::Counter,
    last_block: bool,
    associated_data: &[u8],
    buffer: &mut dyn Buffer
) -> Result<(), Error>
[src]

Encrypt an AEAD message in-place at the given position in the STREAM.

fn decrypt_in_place(
    &self,
    position: Self::Counter,
    last_block: bool,
    associated_data: &[u8],
    buffer: &mut dyn Buffer
) -> Result<(), Error>
[src]

Decrypt an AEAD message in-place at the given position in the STREAM.

Loading content...

Provided methods

fn encrypt<'msg, 'aad>(
    &self,
    position: Self::Counter,
    last_block: bool,
    plaintext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
[src]

This is supported on crate feature alloc only.

Encrypt the given plaintext payload, and return the resulting ciphertext as a vector of bytes.

fn decrypt<'msg, 'aad>(
    &self,
    position: Self::Counter,
    last_block: bool,
    ciphertext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
[src]

This is supported on crate feature alloc only.

Decrypt the given ciphertext slice, and return the resulting plaintext as a vector of bytes.

fn encryptor(self) -> Encryptor<A, Self> where
    Self: Sized
[src]

Obtain Encryptor for this StreamPrimitive.

fn decryptor(self) -> Decryptor<A, Self> where
    Self: Sized
[src]

Obtain Decryptor for this StreamPrimitive.

Loading content...

Implementors

impl<A> StreamPrimitive<A> for StreamBE32<A> where
    A: AeadInPlace,
    A::NonceSize: Sub<U5>,
    <<A as AeadCore>::NonceSize as Sub<U5>>::Output: ArrayLength<u8>, 
[src]

type NonceOverhead = U5

type Counter = u32

impl<A> StreamPrimitive<A> for StreamLE31<A> where
    A: AeadInPlace,
    A::NonceSize: Sub<U4>,
    <<A as AeadCore>::NonceSize as Sub<U4>>::Output: ArrayLength<u8>, 
[src]

type NonceOverhead = U4

type Counter = u32

Loading content...