EncodedMessage

Struct EncodedMessage 

Source
pub struct EncodedMessage<P> {
    pub typ: ContentType,
    pub version: ProtocolVersion,
    pub payload: P,
}
Expand description

A TLS message with encoded (but not necessarily encrypted) payload.

Fields§

§typ: ContentType

The content type of this message.

§version: ProtocolVersion

The protocol version of this message.

§payload: P

The payload of this message.

Implementations§

Source§

impl<P> EncodedMessage<P>

Source

pub fn new(typ: ContentType, version: ProtocolVersion, payload: P) -> Self

Create a new EncodedMessage with the given fields.

Source§

impl<'a> EncodedMessage<Payload<'a>>

Source

pub fn read(r: &mut Reader<'a>) -> Result<Self, MessageError>

Construct by decoding from a [Reader].

MessageError allows callers to distinguish between valid prefixes (might become valid if we read more data) and invalid data.

Source

pub fn into_unencrypted_opaque(self) -> EncodedMessage<OutboundOpaque>

Convert into an unencrypted EncodedMessage<OutboundOpaque> (without decrypting).

Source

pub fn borrow_outbound(&'a self) -> EncodedMessage<OutboundPlain<'a>>

Source

pub fn into_owned(self) -> Self

Convert into an owned EncodedMessage<Plain<'static>>.

Source§

impl<'a> EncodedMessage<InboundOpaque<'a>>

Source

pub fn into_tls13_unpadded_message( self, ) -> Result<EncodedMessage<&'a [u8]>, Error>

For TLS1.3 (only), checks the length msg.payload is valid and removes the padding.

Returns an error if the message (pre-unpadding) is too long, or the padding is invalid, or the message (post-unpadding) is too long.

Source

pub fn into_plain_message_range( self, range: Range<usize>, ) -> EncodedMessage<&'a [u8]>

Force conversion into a plaintext message.

range restricts the resulting message: this function panics if it is out of range for the underlying message payload.

This should only be used for messages that are known to be in plaintext. Otherwise, the EncodedMessage<InboundOpaque<'_>> should be decrypted into an EncodedMessage<&'_ [u8]> using a MessageDecrypter.

Source

pub fn into_plain_message(self) -> EncodedMessage<&'a [u8]>

Force conversion into a plaintext message.

This should only be used for messages that are known to be in plaintext. Otherwise, the EncodedMessage<InboundOpaque<'a>> should be decrypted into a EncodedMessage<&'a [u8]> using a MessageDecrypter.

Source§

impl EncodedMessage<OutboundOpaque>

Source

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

Encode this message to a vector of bytes.

Trait Implementations§

Source§

impl<P: Clone> Clone for EncodedMessage<P>

Source§

fn clone(&self) -> EncodedMessage<P>

Returns a duplicate 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<P: Debug> Debug for EncodedMessage<P>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<P> Freeze for EncodedMessage<P>
where P: Freeze,

§

impl<P> RefUnwindSafe for EncodedMessage<P>
where P: RefUnwindSafe,

§

impl<P> Send for EncodedMessage<P>
where P: Send,

§

impl<P> Sync for EncodedMessage<P>
where P: Sync,

§

impl<P> Unpin for EncodedMessage<P>
where P: Unpin,

§

impl<P> UnwindSafe for EncodedMessage<P>
where P: 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> 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> 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.