logo
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<()>; fn decrypt_in_place(
        &self,
        position: Self::Counter,
        last_block: bool,
        associated_data: &[u8],
        buffer: &mut dyn Buffer
    ) -> Result<()>; fn encrypt<'msg, 'aad>(
        &self,
        position: Self::Counter,
        last_block: bool,
        plaintext: impl Into<Payload<'msg, 'aad>>
    ) -> Result<Vec<u8>> { ... } fn decrypt<'msg, 'aad>(
        &self,
        position: Self::Counter,
        last_block: bool,
        ciphertext: impl Into<Payload<'msg, 'aad>>
    ) -> Result<Vec<u8>> { ... } fn encryptor(self) -> Encryptor<A, Self>
    where
        Self: Sized
, { ... } fn decryptor(self) -> Decryptor<A, Self>
    where
        Self: Sized
, { ... } }
Available on crate feature stream only.
Expand description

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.

Required Associated Types

Number of bytes this STREAM primitive requires from the nonce.

Type used as the STREAM counter.

Required Associated Constants

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

Maximum value of the STREAM counter.

Required Methods

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

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

Provided Methods

Available on crate feature alloc only.

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

Available on crate feature alloc only.

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

Obtain Encryptor for this StreamPrimitive.

Obtain Decryptor for this StreamPrimitive.

Implementors