1use crate::{artifacts::SigningKeyExt, identity::Attribute};
4use alloc::vec::Vec;
5use irma::{ProofStatus, SessionStatus};
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Serialize, Deserialize)]
10#[serde(rename_all = "camelCase")]
11pub struct Parameters<T> {
12 pub format_version: u8,
14
15 pub public_key: T,
17}
18
19#[derive(Debug, Serialize, Deserialize)]
21pub struct IrmaAuthRequest {
22 pub con: Vec<Attribute>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub validity: Option<u64>,
27}
28
29#[derive(Debug, Serialize, Deserialize)]
31#[serde(rename_all = "camelCase")]
32pub struct KeyResponse<T> {
33 pub status: SessionStatus,
35
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub proof_status: Option<ProofStatus>,
39
40 #[serde(skip_serializing_if = "Option::is_none")]
42 pub key: Option<T>,
43}
44
45#[derive(Debug, Serialize, Deserialize)]
47#[serde(rename_all = "camelCase")]
48pub struct SigningKeyRequest {
49 pub pub_sign_id: Vec<Attribute>,
51
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub priv_sign_id: Option<Vec<Attribute>>,
55}
56
57#[derive(Debug, Serialize, Deserialize)]
59#[serde(rename_all = "camelCase")]
60pub struct SigningKeyResponse {
61 pub status: SessionStatus,
63
64 #[serde(skip_serializing_if = "Option::is_none")]
66 pub proof_status: Option<ProofStatus>,
67
68 #[serde(skip_serializing_if = "Option::is_none")]
71 pub pub_sign_key: Option<SigningKeyExt>,
72
73 #[serde(skip_serializing_if = "Option::is_none")]
75 pub priv_sign_key: Option<SigningKeyExt>,
76}