zkgroup/api/profiles/
profile_key_credential_request_context.rs1use partial_default::PartialDefault;
7use serde::{Deserialize, Serialize};
8
9use crate::common::serialization::ReservedByte;
10use crate::common::simple_types::*;
11use crate::{api, crypto};
12
13#[derive(Serialize, Deserialize, PartialDefault)]
14pub struct ProfileKeyCredentialRequestContext {
15 pub(crate) reserved: ReservedByte,
16 pub(crate) aci_bytes: UidBytes,
17 pub(crate) profile_key_bytes: ProfileKeyBytes,
18 pub(crate) key_pair: crypto::profile_key_credential_request::KeyPair,
19 pub(crate) ciphertext_with_secret_nonce:
20 crypto::profile_key_credential_request::CiphertextWithSecretNonce,
21 pub(crate) proof: crypto::proofs::ProfileKeyCredentialRequestProof,
22}
23
24impl ProfileKeyCredentialRequestContext {
25 pub fn get_request(&self) -> api::profiles::ProfileKeyCredentialRequest {
26 let ciphertext = self.ciphertext_with_secret_nonce.get_ciphertext();
27 let public_key = self.key_pair.get_public_key();
28 api::profiles::ProfileKeyCredentialRequest {
29 reserved: Default::default(),
30 public_key,
31 ciphertext,
32 proof: self.proof.clone(),
33 }
34 }
35}