#[repr(align(16))]
pub struct DeoxysII { /* private fields */ }
Expand description

Deoxys-II-256-128 state.

We don’t store the key itself, but only components derived from the key. These components are automatically erased after the structure is dropped.

Implementations§

§

impl DeoxysII

pub fn new(key: &[u8; 32]) -> DeoxysII

Creates a new instance using the provided key.

pub fn seal( &self, nonce: &[u8; 15], plaintext: impl AsRef<[u8]>, additional_data: impl AsRef<[u8]> ) -> Vec<u8>

Encrypts and authenticates plaintext, authenticates the additional data and returns the result.

pub fn seal_into( &self, nonce: &[u8; 15], plaintext: &[u8], additional_data: &[u8], ciphertext_with_tag: &mut [u8] ) -> Result<usize, EncryptionError>

Like DeoxysII::seal but seals into ciphertext_with_tag, returning the number of bytes written.

pub fn open( &self, nonce: &[u8; 15], ciphertext_with_tag: impl AsMut<[u8]>, additional_data: impl AsRef<[u8]> ) -> Result<Vec<u8>, DecryptionError>

Decrypts and authenticates ciphertext, authenticates the additional data and, if successful, returns the resulting plaintext. If the tag verification fails, an error is returned and the intermediary plaintext is securely erased from memory.

pub fn open_into( &self, nonce: &[u8; 15], ciphertext_with_tag: &mut [u8], additional_data: &[u8], plaintext: &mut [u8] ) -> Result<usize, DecryptionError>

Like DeoxysII::open but writes the plaintext into plaintext if successful, returning the number of bytes written.

Trait Implementations§

§

impl Zeroize for DeoxysII

§

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not “optimized away” by the compiler.

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

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> 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> SendSyncUnwindSafe for T
where T: Send + Sync + UnwindSafe + ?Sized,