Struct zkgroup::api::groups::GroupSendEndorsementsResponse
source · 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,
server_params: &ServerPublicParams,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>
pub fn receive_with_service_ids_single_threaded( self, user_ids: impl IntoIterator<Item = ServiceId>, now: Timestamp, group_params: &GroupSecretParams, server_params: &ServerPublicParams, ) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>
Same as [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,
server_params: &ServerPublicParams,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>where
T: IntoParallelIterator<Item = ServiceId>,
T::Iter: IndexedParallelIterator,
pub fn receive_with_service_ids<T>(
self,
user_ids: T,
now: Timestamp,
group_params: &GroupSecretParams,
server_params: &ServerPublicParams,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>where
T: IntoParallelIterator<Item = ServiceId>,
T::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,
[receive_with_ciphertexts
] will be faster than this method.
sourcepub fn receive_with_ciphertexts(
self,
member_ciphertexts: impl IntoIterator<Item = UuidCiphertext>,
now: Timestamp,
server_params: &ServerPublicParams,
) -> Result<Vec<ReceivedEndorsement>, ZkGroupVerificationFailure>
pub fn receive_with_ciphertexts( self, member_ciphertexts: impl IntoIterator<Item = UuidCiphertext>, now: Timestamp, server_params: &ServerPublicParams, ) -> 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,
[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