pub struct EncryptedMessage { /* private fields */ }
Expand description

A secure encrypted message.

Implemented using the IETF ChaCha20-Poly1305 encryption.

https://datatracker.ietf.org/doc/html/rfc8439

To facilitate decoding, it is recommended that the plaintext of an EncryptedMessage be tagged CBOR.

Implementations§

source§

impl EncryptedMessage

source

pub fn new( ciphertext: Vec<u8>, aad: Vec<u8>, nonce: Nonce, auth: AuthenticationTag ) -> Self

Restores an EncryptedMessage from its CBOR representation.

This is a low-level function that is not normally needed.

source

pub fn ciphertext(&self) -> &[u8]

Returns a reference to the ciphertext data.

source

pub fn aad(&self) -> &[u8]

Returns a reference to the additional authenticated data (AAD).

source

pub fn nonce(&self) -> &Nonce

Returns a reference to the nonce value used for encryption.

source

pub fn authentication_tag(&self) -> &AuthenticationTag

Returns a reference to the authentication tag value used for encryption.

source

pub fn opt_digest(&self) -> Option<Digest>

Returns an optional Digest instance if the AAD data can be parsed as CBOR.

source

pub fn has_digest(&self) -> bool

Returns true if the AAD data can be parsed as CBOR.

Trait Implementations§

source§

impl CBORDecodable for EncryptedMessage

source§

fn from_cbor(cbor: &CBOR) -> Result<Self, Error>

Creates an instance of this type from CBOR symbolic representation.
source§

fn from_cbor_data(cbor_data: &[u8]) -> Result<Self, Error>where Self: Sized,

Creates an instance of this type from encoded CBOR binary data.
source§

impl CBOREncodable for EncryptedMessage

source§

fn cbor(&self) -> CBOR

Returns the value in CBOR symbolic representation.
source§

fn cbor_data(&self) -> Vec<u8, Global>

Returns the value in CBOR binary representation.
source§

impl CBORTagged for EncryptedMessage

source§

const CBOR_TAG: Tag = tags::ENCRYPTED

The CBOR tag assocated with this type.
source§

impl CBORTaggedDecodable for EncryptedMessage

source§

fn from_untagged_cbor(cbor: &CBOR) -> Result<Self, Error>

Creates an instance of this type by decoding it from untagged CBOR.
source§

fn from_tagged_cbor(cbor: &CBOR) -> Result<Self, Error>where Self: Sized,

Creates an instance of this type by decoding it from tagged CBOR.
source§

fn from_tagged_cbor_data(data: &[u8]) -> Result<Self, Error>where Self: Sized,

Creates an instance of this type by decoding it from binary encoded tagged CBOR.
source§

fn from_untagged_cbor_data(data: &[u8]) -> Result<Self, Error>where Self: Sized,

Creates an instance of this type by decoding it from binary encoded untagged CBOR.
source§

impl CBORTaggedEncodable for EncryptedMessage

source§

fn untagged_cbor(&self) -> CBOR

Returns the untagged CBOR encoding of this instance.
source§

fn tagged_cbor(&self) -> CBOR

Returns the tagged CBOR encoding of this instance.
source§

impl Clone for EncryptedMessage

source§

fn clone(&self) -> EncryptedMessage

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for EncryptedMessage

source§

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

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

impl DigestProvider for EncryptedMessage

source§

fn digest(&self) -> Cow<'_, Digest>

source§

impl PartialEq<EncryptedMessage> for EncryptedMessage

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl URDecodable for EncryptedMessage

source§

fn from_ur(ur: &UR) -> Result<Self, Error>where Self: Sized,

source§

fn from_ur_string<T>(ur_string: T) -> Result<Self, Error>where T: Into<String>, Self: Sized,

source§

impl UREncodable for EncryptedMessage

source§

fn ur(&self) -> UR

Returns the UR representation of the object.
source§

fn ur_string(&self) -> String

Returns the UR string representation of the object.
source§

impl CBORCodable for EncryptedMessage

source§

impl CBORTaggedCodable for EncryptedMessage

source§

impl Eq for EncryptedMessage

source§

impl StructuralEq for EncryptedMessage

source§

impl StructuralPartialEq for EncryptedMessage

source§

impl URCodable for EncryptedMessage

Auto Trait Implementations§

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> ToOwned for Twhere T: Clone,

§

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

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

§

fn vzip(self) -> V