pub struct OpaqueMessage {
pub typ: ContentType,
pub version: ProtocolVersion,
/* private fields */
}Expand description
A TLS frame, named TLSPlaintext in the standard.
This type owns all memory for its interior parts. It is used to read/write from/to I/O
buffers as well as for fragmenting, joining and encryption/decryption. It can be converted
into a Message by decoding the payload.
§Decryption
Internally the message payload is stored as a Vec<u8>; this can by mutably borrowed with
OpaqueMessage::payload_mut(). This is useful for decrypting a message in-place.
After the message is decrypted, call OpaqueMessage::into_plain_message() or
OpaqueMessage::into_tls13_unpadded_message() (depending on the
protocol version).
Fields§
§typ: ContentType§version: ProtocolVersionImplementations§
Source§impl OpaqueMessage
impl OpaqueMessage
Sourcepub const MAX_WIRE_SIZE: usize = 18_437usize
pub const MAX_WIRE_SIZE: usize = 18_437usize
Maximum on-wire message size.
Sourcepub fn new(typ: ContentType, version: ProtocolVersion, body: Vec<u8>) -> Self
pub fn new(typ: ContentType, version: ProtocolVersion, body: Vec<u8>) -> Self
Construct a new OpaqueMessage from constituent fields.
body is moved into the payload field.
Sourcepub fn payload_mut(&mut self) -> &mut Vec<u8> ⓘ
pub fn payload_mut(&mut self) -> &mut Vec<u8> ⓘ
Access the message payload as a mutable Vec<u8>.
Sourcepub fn read(r: &mut Reader<'_>) -> Result<Self, MessageError>
pub fn read(r: &mut Reader<'_>) -> Result<Self, MessageError>
MessageError allows callers to distinguish between valid prefixes (might
become valid if we read more data) and invalid data.
pub fn encode(self) -> Vec<u8> ⓘ
Sourcepub fn into_plain_message(self) -> PlainMessage
pub fn into_plain_message(self) -> PlainMessage
Force conversion into a plaintext message.
This should only be used for messages that are known to be in plaintext. Otherwise, the
OpaqueMessage should be decrypted into a PlainMessage using a MessageDecrypter.
Sourcepub fn into_tls13_unpadded_message(self) -> Result<PlainMessage, Error>
pub fn into_tls13_unpadded_message(self) -> Result<PlainMessage, 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.
Trait Implementations§
Source§impl Clone for OpaqueMessage
impl Clone for OpaqueMessage
Source§fn clone(&self) -> OpaqueMessage
fn clone(&self) -> OpaqueMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more