Struct bc_components::EncryptedMessage

source ·
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: impl Into<Bytes>, aad: impl Into<Bytes>, 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) -> &Bytes

Returns a reference to the ciphertext data.

source

pub fn aad(&self) -> &Bytes

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 AsRef<EncryptedMessage> for EncryptedMessage

source§

fn as_ref(&self) -> &EncryptedMessage

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl CBORDecodable for EncryptedMessage

source§

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

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>

Returns the value in CBOR binary representation.
source§

impl CBORTagged for EncryptedMessage

source§

fn cbor_tags() -> Vec<Tag>

The CBOR tags assocated with this type. If more than one tag is present, they are considered equivalent for reading, but only the first one is used for writing.
source§

impl CBORTaggedDecodable for EncryptedMessage

source§

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

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§

fn tagged_cbor_data(&self) -> Vec<u8>

Returns the tagged value in CBOR binary representation.
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 From<EncryptedMessage> for CBOR

source§

fn from(value: EncryptedMessage) -> Self

Converts to this type from the input type.
source§

impl PartialEq 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 TryFrom<&CBOR> for EncryptedMessage

§

type Error = Error

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl TryFrom<CBOR> for EncryptedMessage

§

type Error = Error

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
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 StructuralPartialEq for EncryptedMessage

source§

impl URCodable for EncryptedMessage

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

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where 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 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.
source§

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

source§

fn vzip(self) -> V