Struct rustls::crypto::cipher::OpaqueMessage
source · 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: ProtocolVersion
Implementations§
source§impl OpaqueMessage
impl OpaqueMessage
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.
sourcepub const MAX_WIRE_SIZE: usize = 18_437usize
pub const MAX_WIRE_SIZE: usize = 18_437usize
Maximum on-wire message size.
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