pub enum ExtensionType {
ApplicationId,
RatchetTree,
RequiredCapabilities,
ExternalPub,
ExternalSenders,
LastResort,
Unknown(u16),
}
Expand description
MLS Extension Types
Copied from draft-ietf-mls-protocol-16:
Value | Name | Message(s) | Recommended | Reference |
---|---|---|---|---|
0x0000 | RESERVED | N/A | N/A | RFC XXXX |
0x0001 | application_id | LN | Y | RFC XXXX |
0x0002 | ratchet_tree | GI | Y | RFC XXXX |
0x0003 | required_capabilities | GC | Y | RFC XXXX |
0x0004 | external_pub | GI | Y | RFC XXXX |
0x0005 | external_senders | GC | Y | RFC XXXX |
0xff00 - 0xffff | Reserved for Private Use | N/A | N/A | RFC XXXX |
Note: OpenMLS does not provide a Reserved
variant in ExtensionType.
Variants§
ApplicationId
The application id extension allows applications to add an explicit, application-defined identifier to a KeyPackage.
RatchetTree
The ratchet tree extensions provides the whole public state of the ratchet tree.
RequiredCapabilities
The required capabilities extension defines the configuration of a group that imposes certain requirements on clients in the group.
ExternalPub
To join a group via an External Commit, a new member needs a GroupInfo with an ExternalPub extension present in its extensions field.
ExternalSenders
Group context extension that contains the credentials and signature keys of senders that are permitted to send external proposals to the group.
LastResort
KeyPackage extension that marks a KeyPackage for use in a last resort scenario.
Unknown(u16)
A currently unknown extension type.
Trait Implementations§
Source§impl Clone for ExtensionType
impl Clone for ExtensionType
Source§fn clone(&self) -> ExtensionType
fn clone(&self) -> ExtensionType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ExtensionType
impl Debug for ExtensionType
Source§impl<'de> Deserialize<'de> for ExtensionType
impl<'de> Deserialize<'de> for ExtensionType
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Deserialize for ExtensionType
impl Deserialize for ExtensionType
Source§fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>where
Self: Sized,
fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>where
Self: Sized,
bytes
from the provided a std::io::Read
and returns the populated struct. Read moreSource§impl DeserializeBytes for ExtensionType
impl DeserializeBytes for ExtensionType
Source§impl From<ExtensionType> for u16
impl From<ExtensionType> for u16
Source§fn from(value: ExtensionType) -> Self
fn from(value: ExtensionType) -> Self
Source§impl From<u16> for ExtensionType
impl From<u16> for ExtensionType
Source§impl Hash for ExtensionType
impl Hash for ExtensionType
Source§impl Ord for ExtensionType
impl Ord for ExtensionType
Source§fn cmp(&self, other: &ExtensionType) -> Ordering
fn cmp(&self, other: &ExtensionType) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for ExtensionType
impl PartialEq for ExtensionType
Source§impl PartialOrd for ExtensionType
impl PartialOrd for ExtensionType
Source§impl Serialize for ExtensionType
impl Serialize for ExtensionType
Source§impl Serialize for ExtensionType
impl Serialize for ExtensionType
Source§impl Size for ExtensionType
impl Size for ExtensionType
fn tls_serialized_len(&self) -> usize
impl Copy for ExtensionType
impl Eq for ExtensionType
impl StructuralPartialEq for ExtensionType
Auto Trait Implementations§
impl Freeze for ExtensionType
impl RefUnwindSafe for ExtensionType
impl Send for ExtensionType
impl Sync for ExtensionType
impl Unpin for ExtensionType
impl UnwindSafe for ExtensionType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more