pub struct FrankenWelcome {
pub cipher_suite: u16,
pub secrets: Vec<FrankenEncryptedGroupSecrets>,
pub encrypted_group_info: VLBytes,
}Available on (32-bit or 64-bit) and (crate features
test-utils) only.Fields§
§cipher_suite: u16§secrets: Vec<FrankenEncryptedGroupSecrets>§encrypted_group_info: VLBytesImplementations§
Source§impl FrankenWelcome
impl FrankenWelcome
Sourcepub fn open<Crypto, Storage>(
&self,
crypto: &Crypto,
storage: &Storage,
) -> Result<(Ciphersuite, FrankenGroupSecrets, FrankenGroupInfo), WelcomeError<Storage::Error>>where
Crypto: OpenMlsCrypto,
Storage: StorageProvider,
pub fn open<Crypto, Storage>(
&self,
crypto: &Crypto,
storage: &Storage,
) -> Result<(Ciphersuite, FrankenGroupSecrets, FrankenGroupInfo), WelcomeError<Storage::Error>>where
Crypto: OpenMlsCrypto,
Storage: StorageProvider,
Decrypts a FrankenWelcome using the first group secret decryptable by storage.
Performs no semantic checks.
This method is meant for tests that need to manipulate the encrypted contents.
The implementation is roughly inspired by mls_group::creation::decrypt_group_secrets, without validity checks.
Sourcepub fn seal<Crypto, Storage>(
ciphersuite: Ciphersuite,
group_secrets: &FrankenGroupSecrets,
group_info: &FrankenGroupInfo,
signer: &impl Signer,
invited_members: &[(FrankenKeyPackage, Option<FrankenPathSecret>)],
crypto: &Crypto,
storage: &Storage,
) -> Result<Self, CreateCommitError>where
Crypto: OpenMlsCrypto,
Storage: StorageProvider,
pub fn seal<Crypto, Storage>(
ciphersuite: Ciphersuite,
group_secrets: &FrankenGroupSecrets,
group_info: &FrankenGroupInfo,
signer: &impl Signer,
invited_members: &[(FrankenKeyPackage, Option<FrankenPathSecret>)],
crypto: &Crypto,
storage: &Storage,
) -> Result<Self, CreateCommitError>where
Crypto: OpenMlsCrypto,
Storage: StorageProvider,
Signs and encrypts a new FrankenWelcome message from components.
Performs no semantic checks.
This method is meant for tests that need to manipulate the encrypted contents.
Sourcepub fn with_sealed_update<F, InvitedProvider>(
&self,
signer: &impl Signer,
signer_provider: &impl OpenMlsProvider,
invited_key_package: &KeyPackage,
invited_provider: &InvitedProvider,
f: F,
) -> Selfwhere
F: FnOnce(&mut Ciphersuite, &mut FrankenGroupSecrets, &mut FrankenGroupInfo),
InvitedProvider: OpenMlsProvider,
pub fn with_sealed_update<F, InvitedProvider>(
&self,
signer: &impl Signer,
signer_provider: &impl OpenMlsProvider,
invited_key_package: &KeyPackage,
invited_provider: &InvitedProvider,
f: F,
) -> Selfwhere
F: FnOnce(&mut Ciphersuite, &mut FrankenGroupSecrets, &mut FrankenGroupInfo),
InvitedProvider: OpenMlsProvider,
Create a FrankenWelcome from self with updated, sealed content.
Equivalent to using Self::open and Self::seal.
Trait Implementations§
Source§impl Clone for FrankenWelcome
impl Clone for FrankenWelcome
Source§impl Debug for FrankenWelcome
impl Debug for FrankenWelcome
Source§impl Deserialize for FrankenWelcome
impl Deserialize for FrankenWelcome
Source§fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>
fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>
Available on crate feature
std only.This function deserializes the
bytes from the provided a std::io::Read
and returns the populated struct. Read moreSource§impl DeserializeBytes for FrankenWelcome
impl DeserializeBytes for FrankenWelcome
impl Eq for FrankenWelcome
Source§impl From<FrankenWelcome> for Welcome
impl From<FrankenWelcome> for Welcome
Source§fn from(fln: FrankenWelcome) -> Self
fn from(fln: FrankenWelcome) -> Self
Converts to this type from the input type.
Source§impl From<Welcome> for FrankenWelcome
impl From<Welcome> for FrankenWelcome
Source§impl PartialEq for FrankenWelcome
impl PartialEq for FrankenWelcome
Source§impl Serialize for FrankenWelcome
impl Serialize for FrankenWelcome
Source§impl Serialize for &FrankenWelcome
impl Serialize for &FrankenWelcome
Source§impl Size for FrankenWelcome
impl Size for FrankenWelcome
fn tls_serialized_len(&self) -> usize
Source§impl Size for &FrankenWelcome
impl Size for &FrankenWelcome
fn tls_serialized_len(&self) -> usize
impl StructuralPartialEq for FrankenWelcome
Auto Trait Implementations§
impl Freeze for FrankenWelcome
impl RefUnwindSafe for FrankenWelcome
impl Send for FrankenWelcome
impl Sync for FrankenWelcome
impl Unpin for FrankenWelcome
impl UnsafeUnpin for FrankenWelcome
impl UnwindSafe for FrankenWelcome
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
Converts
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> ⓘ
Converts
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