pub struct ExternalProposal;Expand description
External Proposal where sender is External. A party outside the group can request to add or remove a member to the group. This proposal should then be committed by a group member. The sender must be pre configured within the group through the crate::extensions::ExternalSendersExtension
Implementations§
Source§impl ExternalProposal
impl ExternalProposal
Sourcepub fn new_group_context_extensions<Provider: OpenMlsProvider>(
extensions: Extensions<GroupContext>,
group_id: GroupId,
epoch: GroupEpoch,
signer: &impl Signer,
sender_index: SenderExtensionIndex,
) -> Result<MlsMessageOut, CreateGroupContextExtProposalError<Provider::StorageError>>
pub fn new_group_context_extensions<Provider: OpenMlsProvider>( extensions: Extensions<GroupContext>, group_id: GroupId, epoch: GroupEpoch, signer: &impl Signer, sender_index: SenderExtensionIndex, ) -> Result<MlsMessageOut, CreateGroupContextExtProposalError<Provider::StorageError>>
Creates an external GroupContextExtensions proposal. For example, for delivery services requesting to update the group context extension. This proposal will have to be committed later by a group member.
§Arguments
extensions- a new set of extensions for the group contextgroup_id- unique group identifier of the group to joinepoch- group’s epochsigner- of the sender to sign the messagesender_index- index of the sender of the proposal (in the ExternalSendersExtension array from the Group Context)
Sourcepub fn new_remove<Provider: OpenMlsProvider>(
removed: LeafNodeIndex,
group_id: GroupId,
epoch: GroupEpoch,
signer: &impl Signer,
sender_index: SenderExtensionIndex,
) -> Result<MlsMessageOut, ProposeRemoveMemberError<Provider::StorageError>>
pub fn new_remove<Provider: OpenMlsProvider>( removed: LeafNodeIndex, group_id: GroupId, epoch: GroupEpoch, signer: &impl Signer, sender_index: SenderExtensionIndex, ) -> Result<MlsMessageOut, ProposeRemoveMemberError<Provider::StorageError>>
Creates an external Remove proposal. For example, for delivery services requesting to remove a client. This proposal will have to be committed later by a group member.
§Arguments
removed- index of the client to removegroup_id- unique group identifier of the group to joinepoch- group’s epochsigner- of the sender to sign the messagesender_index- index of the sender of the proposal (in the ExternalSendersExtension array from the Group Context)
Sourcepub fn new_add<Provider: OpenMlsProvider>(
key_package: KeyPackage,
group_id: GroupId,
epoch: GroupEpoch,
signer: &impl Signer,
sender_index: SenderExtensionIndex,
) -> Result<MlsMessageOut, ProposeAddMemberError<Provider::StorageError>>
pub fn new_add<Provider: OpenMlsProvider>( key_package: KeyPackage, group_id: GroupId, epoch: GroupEpoch, signer: &impl Signer, sender_index: SenderExtensionIndex, ) -> Result<MlsMessageOut, ProposeAddMemberError<Provider::StorageError>>
Creates an external Add proposal. For delivery services requesting to add a client. This proposal will have to be committed later by a group member.
§Arguments
key_package- key package of the client to addgroup_id- unique group identifier of the group to joinepoch- group’s epochsigner- of the sender to sign the messagesender_index- index of the sender of the proposal (in the ExternalSendersExtension array from the Group Context)
Creates an external PreSharedKey proposal.
For example for delivery services requesting to inject a pre-shared key
into the group’s key schedule (RFC 9420 §12.1.8 permits external senders
to send PSK proposals).
This proposal will have to be committed later by a group member.
The same constructor is used for both external and resumption PSKs;
the distinction is carried by the PreSharedKeyId.
§Arguments
psk_id- identifier of the pre-shared key to injectgroup_id- unique group identifier of the groupepoch- group’s epochsigner- of the sender to sign the messagesender_index- index of the sender of the proposal (in the ExternalSendersExtension array from the Group Context)
Auto Trait Implementations§
impl Freeze for ExternalProposal
impl RefUnwindSafe for ExternalProposal
impl Send for ExternalProposal
impl Sync for ExternalProposal
impl Unpin for ExternalProposal
impl UnsafeUnpin for ExternalProposal
impl UnwindSafe for ExternalProposal
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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