zkgroup/api/auth/auth_credential_with_pni/
v0.rs

1//
2// Copyright 2024 Signal Messenger, LLC.
3// SPDX-License-Identifier: AGPL-3.0-only
4//
5
6use partial_default::PartialDefault;
7use serde::{Deserialize, Serialize};
8
9use crate::api::auth::auth_credential_with_pni::AuthCredentialWithPniVersion;
10use crate::common::serialization::VersionByte;
11use crate::common::simple_types::*;
12use crate::crypto;
13
14#[derive(Copy, Clone, Serialize, Deserialize, PartialDefault)]
15pub struct AuthCredentialWithPniV0 {
16    pub(crate) version: VersionByte<{ AuthCredentialWithPniVersion::V0 as u8 }>,
17    pub(crate) credential: crypto::credentials::AuthCredentialWithPni,
18    pub(crate) aci: crypto::uid_struct::UidStruct,
19    pub(crate) pni: crypto::uid_struct::UidStruct,
20    pub(crate) redemption_time: Timestamp,
21}
22
23#[derive(Clone, Serialize, Deserialize, PartialDefault)]
24pub struct AuthCredentialWithPniV0Response {
25    pub(crate) version: VersionByte<{ AuthCredentialWithPniVersion::V0 as u8 }>,
26    pub(crate) credential: crypto::credentials::AuthCredentialWithPni,
27    pub(crate) proof: crypto::proofs::AuthCredentialWithPniIssuanceProof,
28}