zkgroup/api/receipts/
receipt_credential_request_context.rs

1//
2// Copyright 2021 Signal Messenger, LLC.
3// SPDX-License-Identifier: AGPL-3.0-only
4//
5
6use 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 ReceiptCredentialRequestContext {
15    pub(crate) reserved: ReservedByte,
16    pub(crate) receipt_serial_bytes: ReceiptSerialBytes,
17    pub(crate) key_pair: crypto::receipt_credential_request::KeyPair,
18    pub(crate) ciphertext_with_secret_nonce:
19        crypto::receipt_credential_request::CiphertextWithSecretNonce,
20}
21
22impl ReceiptCredentialRequestContext {
23    pub fn get_request(&self) -> api::receipts::ReceiptCredentialRequest {
24        let ciphertext = self.ciphertext_with_secret_nonce.get_ciphertext();
25        let public_key = self.key_pair.get_public_key();
26        api::receipts::ReceiptCredentialRequest {
27            reserved: Default::default(),
28            public_key,
29            ciphertext,
30        }
31    }
32}