pub struct OpaqueMessage {
pub typ: ContentType,
pub version: ProtocolVersion,
pub payload: Payload,
}
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.
Fields§
§typ: ContentType
§version: ProtocolVersion
§payload: Payload
Implementations§
source§impl OpaqueMessage
impl OpaqueMessage
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
.
sourceconst MAX_PAYLOAD: u16 = 18_432u16
const MAX_PAYLOAD: u16 = 18_432u16
This is the maximum on-the-wire size of a TLSCiphertext. That’s 2^14 payload bytes, a header, and a 2KB allowance for ciphertext overheads.
sourceconst HEADER_SIZE: u16 = 5u16
const HEADER_SIZE: u16 = 5u16
Content type, version and size.
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 moresource§impl Codec for OpaqueMessage
impl Codec for OpaqueMessage
source§fn read(reader: &mut Reader<'_>) -> Option<Self>
fn read(reader: &mut Reader<'_>) -> Option<Self>
Reader
.
Return Some if it worked, None if not.source§fn get_encoding(&self) -> Vec<u8, Global> ⓘ
fn get_encoding(&self) -> Vec<u8, Global> ⓘ
encode()
.source§fn read_bytes(bytes: &[u8]) -> Option<Self>
fn read_bytes(bytes: &[u8]) -> Option<Self>
bytes
and
return it.source§impl Debug for OpaqueMessage
impl Debug for OpaqueMessage
source§impl ExtractKnowledge<TlsQueryMatcher> for OpaqueMessage
impl ExtractKnowledge<TlsQueryMatcher> for OpaqueMessage
source§fn extract_knowledge(
&self,
knowledges: &mut Vec<Knowledge<TlsQueryMatcher>>,
matcher: Option<TlsQueryMatcher>,
source: &Source
) -> Result<(), Error>
fn extract_knowledge(
&self,
knowledges: &mut Vec<Knowledge<TlsQueryMatcher>>,
matcher: Option<TlsQueryMatcher>,
source: &Source
) -> Result<(), Error>
knowledges
with new knowledge gathered form the type implementing ExtractKnowledge
by recursively calling extract_knowledge on all contained element
This will put source as the source of all the produced knowledges, matcher is also passed
recursively but might be overriten by a type with a more specific matchersource§impl From<OpaqueMessage> for OpaqueMessageFlight
impl From<OpaqueMessage> for OpaqueMessageFlight
source§fn from(value: OpaqueMessage) -> Self
fn from(value: OpaqueMessage) -> Self
source§impl ProtocolMessage<TlsQueryMatcher, OpaqueMessage> for Message
impl ProtocolMessage<TlsQueryMatcher, OpaqueMessage> for Message
fn create_opaque(&self) -> OpaqueMessage
fn debug(&self, info: &str)
source§impl ProtocolMessageFlight<TlsQueryMatcher, Message, OpaqueMessage, OpaqueMessageFlight> for MessageFlight
impl ProtocolMessageFlight<TlsQueryMatcher, Message, OpaqueMessage, OpaqueMessageFlight> for MessageFlight
source§impl Stream<TlsQueryMatcher, Message, OpaqueMessage, OpaqueMessageFlight> for TcpClientPut
impl Stream<TlsQueryMatcher, Message, OpaqueMessage, OpaqueMessageFlight> for TcpClientPut
fn add_to_inbound(&mut self, opaque_flight: &OpaqueMessageFlight)
source§fn take_message_from_outbound(
&mut self
) -> Result<Option<OpaqueMessageFlight>, Error>
fn take_message_from_outbound(
&mut self
) -> Result<Option<OpaqueMessageFlight>, Error>
source§impl Stream<TlsQueryMatcher, Message, OpaqueMessage, OpaqueMessageFlight> for TcpServerPut
impl Stream<TlsQueryMatcher, Message, OpaqueMessage, OpaqueMessageFlight> for TcpServerPut
fn add_to_inbound(&mut self, opaque_flight: &OpaqueMessageFlight)
source§fn take_message_from_outbound(
&mut self
) -> Result<Option<OpaqueMessageFlight>, Error>
fn take_message_from_outbound(
&mut self
) -> Result<Option<OpaqueMessageFlight>, Error>
Auto Trait Implementations§
impl RefUnwindSafe for OpaqueMessage
impl Send for OpaqueMessage
impl Sync for OpaqueMessage
impl Unpin for OpaqueMessage
impl UnwindSafe for OpaqueMessage
Blanket Implementations§
§impl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
§type PreprendResult = Tail
type PreprendResult = Tail
TupleList
], of an [Prepend::prepend()
] call,
including the prepended entry.