pub struct HandshakeExtensionBlock<'a> {
pub ext_type: ExtensionType,
pub contents: &'a [u8],
}Expand description
One decoded Handshake Extension block (§3.2.1): Extension Type /
Extension Length / Extension Contents. Data-carrying (borrows the raw
contents) — decode the contents with Self::as_hs_ext_message,
Self::as_key_material, Self::as_stream_id, or
Self::as_group_membership as appropriate for Self::ext_type.
Fields§
§ext_type: ExtensionTypeThe extension’s type.
contents: &'a [u8]The raw contents (Extension Length * 4 bytes).
Implementations§
Source§impl<'a> HandshakeExtensionBlock<'a>
impl<'a> HandshakeExtensionBlock<'a>
Sourcepub fn as_hs_ext_message(&self) -> Result<HsExtMessage>
pub fn as_hs_ext_message(&self) -> Result<HsExtMessage>
Decode Self::contents as a Handshake Extension Message (§3.2.1.1)
— valid for ExtensionType::HsReq / ExtensionType::HsRsp.
Sourcepub fn as_key_material(&self) -> Result<KeyMaterial<'a>>
pub fn as_key_material(&self) -> Result<KeyMaterial<'a>>
Decode Self::contents as a Key Material message (§3.2.2) — valid
for ExtensionType::KmReq / ExtensionType::KmRsp.
Sourcepub fn as_stream_id(&self) -> Result<String>
pub fn as_stream_id(&self) -> Result<String>
Decode Self::contents as the Stream ID extension (§3.2.1.3) —
valid for ExtensionType::Sid.
Per §3.2.1.3 “The content is stored as 32-bit little endian words”:
each 4-byte word of contents is byte-reversed before concatenation,
trailing NUL padding is trimmed, and the result is validated as UTF-8.
Sourcepub fn as_group_membership(&self) -> Result<GroupMembershipExtension>
pub fn as_group_membership(&self) -> Result<GroupMembershipExtension>
Decode Self::contents as a Group Membership Extension (§3.2.1.4) —
valid for ExtensionType::Group.
Trait Implementations§
Source§impl<'a> Clone for HandshakeExtensionBlock<'a>
impl<'a> Clone for HandshakeExtensionBlock<'a>
Source§fn clone(&self) -> HandshakeExtensionBlock<'a>
fn clone(&self) -> HandshakeExtensionBlock<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<'a> Copy for HandshakeExtensionBlock<'a>
Source§impl<'a> Debug for HandshakeExtensionBlock<'a>
impl<'a> Debug for HandshakeExtensionBlock<'a>
impl<'a> Eq for HandshakeExtensionBlock<'a>
Source§impl<'a> Hash for HandshakeExtensionBlock<'a>
impl<'a> Hash for HandshakeExtensionBlock<'a>
Source§impl<'a> PartialEq for HandshakeExtensionBlock<'a>
impl<'a> PartialEq for HandshakeExtensionBlock<'a>
Source§impl<'a> Serialize for HandshakeExtensionBlock<'a>
Available on crate feature serde only.
impl<'a> Serialize for HandshakeExtensionBlock<'a>
serde only.