Skip to main content

AeadBox

Struct AeadBox 

Source
pub struct AeadBox<Algorithm: AeadAlgorithm, Mac, Data> { /* private fields */ }
Expand description

Authenticated encrypted data for a concrete AEAD algorithm.

The byte representation for the supported algorithms is ciphertext || tag.

Implementations§

Source§

impl<Mac: NewByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES> + Zeroize, Data: NewBytes + ResizableBytes + Zeroize> AeadBox<XChaCha20Poly1305Ietf, Mac, Data>

Source

pub fn encrypt<Message: Bytes + ?Sized, Nonce: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES>, SecretKey: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES>>( message: &Message, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Self, Error>

Encrypts a message using key, nonce, and optional associated data.

§Errors

Returns an error if the message exceeds the construction’s maximum length or the output storage does not resize to the message length.

Source§

impl<'a, Mac: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES> + TryFrom<&'a [u8]> + Zeroize, Data: Bytes + From<&'a [u8]> + Zeroize> AeadBox<XChaCha20Poly1305Ietf, Mac, Data>

Source

pub fn from_bytes(bytes: &'a [u8]) -> Result<Self, Error>

Initializes an AeadBox from ciphertext || tag.

§Errors

Returns an error if bytes is shorter than one authentication tag or the tag cannot be converted to Mac.

Source§

impl<Mac: NewByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES> + Zeroize, Data: NewBytes + ResizableBytes + Zeroize> AeadBox<ChaCha20Poly1305Ietf, Mac, Data>

Source

pub fn encrypt<Message: Bytes + ?Sized, Nonce: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES>, SecretKey: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES>>( message: &Message, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Self, Error>

Encrypts a message using key, nonce, and optional associated data.

§Errors

Returns an error if the message exceeds the construction’s maximum length or the output storage does not resize to the message length.

Source§

impl<'a, Mac: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES> + TryFrom<&'a [u8]> + Zeroize, Data: Bytes + From<&'a [u8]> + Zeroize> AeadBox<ChaCha20Poly1305Ietf, Mac, Data>

Source

pub fn from_bytes(bytes: &'a [u8]) -> Result<Self, Error>

Initializes an AeadBox from ciphertext || tag.

§Errors

Returns an error if bytes is shorter than one authentication tag or the tag cannot be converted to Mac.

Source§

impl<Mac: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES>, Data: Bytes> AeadBox<ChaCha20Poly1305Ietf, Mac, Data>

Source

pub fn decrypt<Output: ResizableBytes + NewBytes, Nonce: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES>, SecretKey: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES>>( &self, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Output, Error>

Decrypts this box using key, nonce, and optional associated data.

§Errors

Returns an error if the ciphertext exceeds the construction’s maximum length, the output storage has the wrong length, or authentication fails. Authentication fails when the key, nonce, associated data, ciphertext, or tag does not match the value used during encryption.

Source§

impl AeadBox<ChaCha20Poly1305Ietf, Mac, Vec<u8>>

Source

pub fn encrypt_to_vecbox<Message: Bytes + ?Sized, SecretKey: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES>>( message: &Message, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Self, Error>

Encrypts a message and returns a VecBox.

§Errors

Returns an error if the message exceeds the construction’s maximum length.

Source

pub fn decrypt_to_vec<SecretKey: ByteArray<CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES>>( &self, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Vec<u8>, Error>

Decrypts this box and returns the plaintext as a Vec.

§Errors

Returns an error if the ciphertext exceeds the construction’s maximum length or authentication fails because the key, nonce, associated data, ciphertext, or tag does not match.

Source

pub fn into_vec(self) -> Vec<u8>

Consumes this box and returns it as ciphertext || tag.

Source§

impl<Algorithm: AeadAlgorithm, Mac, Data> AeadBox<Algorithm, Mac, Data>

Source

pub fn from_parts(tag: Mac, data: Data) -> Self

Returns a new AEAD box from tag and ciphertext data.

Source

pub fn tag(&self) -> &Mac

Returns the authentication tag.

Source

pub fn data(&self) -> &Data

Returns the ciphertext.

Source

pub fn into_parts(self) -> (Mac, Data)

Moves the tag and ciphertext out of this instance.

Source§

impl<Algorithm: AeadAlgorithm, Mac: Bytes, Data: Bytes> AeadBox<Algorithm, Mac, Data>

Source

pub fn to_vec(&self) -> Vec<u8>

Copies self into a new Vec.

Source

pub fn to_bytes<Output: NewBytes + ResizableBytes>(&self) -> Output

Copies self into the target as ciphertext || tag.

Source§

impl<Mac: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES>, Data: Bytes> AeadBox<XChaCha20Poly1305Ietf, Mac, Data>

Source

pub fn decrypt<Output: ResizableBytes + NewBytes, Nonce: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES>, SecretKey: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES>>( &self, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Output, Error>

Decrypts this box using key, nonce, and optional associated data.

§Errors

Returns an error if the ciphertext exceeds the construction’s maximum length, the output storage has the wrong length, or authentication fails. Authentication fails when the key, nonce, associated data, ciphertext, or tag does not match the value used during encryption.

Source§

impl AeadBox<XChaCha20Poly1305Ietf, StackByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES>, Vec<u8>>

Source

pub fn encrypt_to_vecbox<Message: Bytes + ?Sized, SecretKey: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES>>( message: &Message, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Self, Error>

Encrypts a message and returns a VecBox.

§Errors

Returns an error if the message exceeds the construction’s maximum length.

Source

pub fn decrypt_to_vec<SecretKey: ByteArray<CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES>>( &self, associated_data: Option<&[u8]>, nonce: &Nonce, key: &SecretKey, ) -> Result<Vec<u8>, Error>

Decrypts this box and returns the plaintext as a Vec.

§Errors

Returns an error if the ciphertext exceeds the construction’s maximum length or authentication fails because the key, nonce, associated data, ciphertext, or tag does not match.

Source

pub fn into_vec(self) -> Vec<u8>

Consumes this box and returns it as ciphertext || tag.

Source§

impl<'a, Algorithm: AeadAlgorithm, Mac, Data: From<&'a [u8]>> AeadBox<Algorithm, Mac, Data>

Source

pub fn with_data_and_mac(tag: Mac, input: &'a [u8]) -> Self

Returns a new box with ciphertext copied from input and tag consumed.

Trait Implementations§

Source§

impl<Algorithm: Clone + AeadAlgorithm, Mac: Clone, Data: Clone> Clone for AeadBox<Algorithm, Mac, Data>

Source§

fn clone(&self) -> AeadBox<Algorithm, Mac, Data>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<Algorithm: Debug + AeadAlgorithm, Mac: Debug, Data: Debug> Debug for AeadBox<Algorithm, Mac, Data>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de, Algorithm: AeadAlgorithm, Mac, Data> Deserialize<'de> for AeadBox<Algorithm, Mac, Data>
where Mac: Deserialize<'de>, Data: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<Algorithm: AeadAlgorithm, Mac: Bytes, Data: Bytes> PartialEq for AeadBox<Algorithm, Mac, Data>

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<Algorithm: AeadAlgorithm, Mac, Data> Serialize for AeadBox<Algorithm, Mac, Data>
where Mac: Serialize, Data: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<Algorithm: AeadAlgorithm, Mac: Zeroize, Data: Zeroize> Zeroize for AeadBox<Algorithm, Mac, Data>

Source§

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§

§

impl<Algorithm, Mac, Data> Freeze for AeadBox<Algorithm, Mac, Data>
where Mac: Freeze, Data: Freeze,

§

impl<Algorithm, Mac, Data> RefUnwindSafe for AeadBox<Algorithm, Mac, Data>
where Mac: RefUnwindSafe, Data: RefUnwindSafe, Algorithm: RefUnwindSafe,

§

impl<Algorithm, Mac, Data> Send for AeadBox<Algorithm, Mac, Data>
where Mac: Send, Data: Send, Algorithm: Send,

§

impl<Algorithm, Mac, Data> Sync for AeadBox<Algorithm, Mac, Data>
where Mac: Sync, Data: Sync, Algorithm: Sync,

§

impl<Algorithm, Mac, Data> Unpin for AeadBox<Algorithm, Mac, Data>
where Mac: Unpin, Data: Unpin, Algorithm: Unpin,

§

impl<Algorithm, Mac, Data> UnsafeUnpin for AeadBox<Algorithm, Mac, Data>
where Mac: UnsafeUnpin, Data: UnsafeUnpin,

§

impl<Algorithm, Mac, Data> UnwindSafe for AeadBox<Algorithm, Mac, Data>
where Mac: UnwindSafe, Data: UnwindSafe, Algorithm: UnwindSafe,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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<T> Same for T

Source§

type Output = T

Should always be Self
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.