pub struct KeyPackageUpload {
pub epoch_id: EpochId,
pub leaf_index: LeafNodeIndex,
pub generation: u32,
pub key_package_info: Vec<KeyPackageInfo>,
}extensions-draft and crate feature virtual-clients-draft and (32-bit or 64-bit) only.Expand description
Wire struct a virtual client uploads to a sibling so the sibling learns about the KeyPackages the virtual client published for an emulation epoch (mls-virtual-clients draft):
struct {
opaque epoch_id<V>;
uint32 leaf_index;
uint32 generation;
KeyPackageInfo key_package_info<V>;
} KeyPackageUploadepoch_id identifies the emulation epoch the KeyPackages belong to.
leaf_index is the uploading client’s emulation-group leaf index at that
epoch. The receiver stores this leaf index: the KeyPackage operation
secret was allocated from the uploader’s per-leaf ratchet, so a sibling
rederiving the KeyPackage material must walk that same leaf’s ratchet, not
its own. generation is the single key_package operation generation
consumed for the whole batch. key_package_info carries one
KeyPackageInfo per uploaded KeyPackage, each with its index within the
batch.
Fields§
§epoch_id: EpochIdEmulation epoch the uploaded KeyPackages belong to.
leaf_index: LeafNodeIndexUploading client’s emulation-group leaf index at that epoch.
generation: u32Operation-ratchet generation consumed for the whole batch.
key_package_info: Vec<KeyPackageInfo>One entry per uploaded KeyPackage.
Trait Implementations§
Source§impl Debug for KeyPackageUpload
impl Debug for KeyPackageUpload
Source§impl DeserializeBytes for KeyPackageUpload
impl DeserializeBytes for KeyPackageUpload
Source§impl Serialize for KeyPackageUpload
impl Serialize for KeyPackageUpload
Source§impl Serialize for &KeyPackageUpload
impl Serialize for &KeyPackageUpload
Source§impl Size for KeyPackageUpload
impl Size for KeyPackageUpload
fn tls_serialized_len(&self) -> usize
Source§impl Size for &KeyPackageUpload
impl Size for &KeyPackageUpload
fn tls_serialized_len(&self) -> usize
Auto Trait Implementations§
impl Freeze for KeyPackageUpload
impl RefUnwindSafe for KeyPackageUpload
impl Send for KeyPackageUpload
impl Sync for KeyPackageUpload
impl Unpin for KeyPackageUpload
impl UnsafeUnpin for KeyPackageUpload
impl UnwindSafe for KeyPackageUpload
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
§impl<T> Classify for T
impl<T> Classify for T
type Classified = T
fn classify(self) -> T
§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
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