Struct openmls::extensions::RequiredCapabilitiesExtension
source · pub struct RequiredCapabilitiesExtension { /* private fields */ }
Expand description
Required Capabilities Extension.
The configuration of a group imposes certain requirements on clients in the
group. At a minimum, all members of the group need to support the ciphersuite
and protocol version in use. Additional requirements can be imposed by
including a required capabilities extension in the GroupContext
.
This extension lists the extensions and proposal types that must be supported by all members of the group. For new members, it is enforced by existing members during the application of Add commits. Existing members should of course be in compliance already. In order to ensure this continues to be the case even as the group’s extensions can be updated, a GroupContextExtensions proposal is invalid if it contains a required capabilities extension that requires capabilities not supported by all current members.
// draft-ietf-mls-protocol-17
struct {
ExtensionType extension_types<V>;
ProposalType proposal_types<V>;
CredentialType credential_types<V>;
} RequiredCapabilities;
Implementations§
source§impl RequiredCapabilitiesExtension
impl RequiredCapabilitiesExtension
sourcepub fn new(
extension_types: &[ExtensionType],
proposal_types: &[ProposalType],
credential_types: &[CredentialType]
) -> Self
pub fn new( extension_types: &[ExtensionType], proposal_types: &[ProposalType], credential_types: &[CredentialType] ) -> Self
Creates a new RequiredCapabilitiesExtension
from extension and proposal types.
Trait Implementations§
source§impl Clone for RequiredCapabilitiesExtension
impl Clone for RequiredCapabilitiesExtension
source§fn clone(&self) -> RequiredCapabilitiesExtension
fn clone(&self) -> RequiredCapabilitiesExtension
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for RequiredCapabilitiesExtension
impl Default for RequiredCapabilitiesExtension
source§fn default() -> RequiredCapabilitiesExtension
fn default() -> RequiredCapabilitiesExtension
source§impl<'de> Deserialize<'de> for RequiredCapabilitiesExtension
impl<'de> Deserialize<'de> for RequiredCapabilitiesExtension
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 RequiredCapabilitiesExtension
impl Deserialize for RequiredCapabilitiesExtension
source§fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>
fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>
bytes
from the provided a std::io::Read
and returns the populated struct. Read moresource§impl PartialEq<RequiredCapabilitiesExtension> for RequiredCapabilitiesExtension
impl PartialEq<RequiredCapabilitiesExtension> for RequiredCapabilitiesExtension
source§fn eq(&self, other: &RequiredCapabilitiesExtension) -> bool
fn eq(&self, other: &RequiredCapabilitiesExtension) -> bool
self
and other
values to be equal, and is used
by ==
.