pub struct GroupSendEndorsementsResponse { /* private fields */ }Expand description
The response issued from the group server, containing endorsements for all of a group’s members.
The group server may cache this for a particular group as long as the group membership does not change (being careful of expiration, of course). It is the same for every requesting member.
Implementations§
Source§impl GroupSendEndorsementsResponse
impl GroupSendEndorsementsResponse
pub fn default_expiration(current_time: Timestamp) -> Timestamp
Sourcepub fn issue(
member_ciphertexts: impl IntoIterator<Item = UuidCiphertext>,
key_pair: &GroupSendDerivedKeyPair,
randomness: RandomnessBytes,
) -> Self
pub fn issue( member_ciphertexts: impl IntoIterator<Item = UuidCiphertext>, key_pair: &GroupSendDerivedKeyPair, randomness: RandomnessBytes, ) -> Self
Issues new endorsements, one for each of member_ciphertexts.
expiration must match the expiration used to derive key_pair;
Sourcepub fn expiration(&self) -> Timestamp
pub fn expiration(&self) -> Timestamp
Returns the expiration for all endorsements in the response.
Sourcepub fn receive_with_service_ids_single_threaded(
self,
user_ids: impl IntoIterator<Item = ServiceId>,
now: Timestamp,
group_params: &GroupSecretParams,
root_public_key: impl AsRef<ServerRootPublicKey>,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>
pub fn receive_with_service_ids_single_threaded( self, user_ids: impl IntoIterator<Item = ServiceId>, now: Timestamp, group_params: &GroupSecretParams, root_public_key: impl AsRef<ServerRootPublicKey>, ) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>
Same as Self::receive_with_service_ids, but without parallelizing the zkgroup-specific
parts of the operation.
Only interesting for benchmarking. The zkcredential part of the operation may still be parallelized.
Sourcepub fn receive_with_service_ids<T>(
self,
user_ids: T,
now: Timestamp,
group_params: &GroupSecretParams,
root_public_key: impl AsRef<ServerRootPublicKey>,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>where
T: IntoParallelIterator<Item = ServiceId, Iter: IndexedParallelIterator>,
pub fn receive_with_service_ids<T>(
self,
user_ids: T,
now: Timestamp,
group_params: &GroupSecretParams,
root_public_key: impl AsRef<ServerRootPublicKey>,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>where
T: IntoParallelIterator<Item = ServiceId, Iter: IndexedParallelIterator>,
Validates and returns the endorsements issued by the server.
The result will be in the same order as user_ids. user_ids should contain the current
user as well.
If you already have the member ciphertexts for the group available,
Self::receive_with_ciphertexts will be faster than this method.
Sourcepub fn receive_with_ciphertexts(
self,
member_ciphertexts: impl IntoIterator<Item = UuidCiphertext>,
now: Timestamp,
root_public_key: impl AsRef<ServerRootPublicKey>,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>
pub fn receive_with_ciphertexts( self, member_ciphertexts: impl IntoIterator<Item = UuidCiphertext>, now: Timestamp, root_public_key: impl AsRef<ServerRootPublicKey>, ) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>
Validates and returns the endorsements issued by the server.
The result will be in the same order as member_ciphertexts. member_ciphertexts should
contain the current user as well.
If you don’t already have the member ciphertexts for the group available,
Self::receive_with_service_ids will be faster than computing them separately, using
this method, and then throwing the ciphertexts away.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for GroupSendEndorsementsResponse
impl<'de> Deserialize<'de> for GroupSendEndorsementsResponse
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 PartialDefault for GroupSendEndorsementsResponse
impl PartialDefault for GroupSendEndorsementsResponse
Source§fn partial_default() -> Self
fn partial_default() -> Self
Auto Trait Implementations§
impl Freeze for GroupSendEndorsementsResponse
impl RefUnwindSafe for GroupSendEndorsementsResponse
impl Send for GroupSendEndorsementsResponse
impl Sync for GroupSendEndorsementsResponse
impl Unpin for GroupSendEndorsementsResponse
impl UnwindSafe for GroupSendEndorsementsResponse
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> 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