1use serde::{Deserialize, Serialize};
5use trussed_core::types::{KeyId, Message};
6
7use super::AuthRequest;
8use crate::{Pin, PinId};
9
10#[derive(Debug, Deserialize, Serialize)]
11pub struct HasPin {
12 pub id: PinId,
13}
14
15impl From<HasPin> for AuthRequest {
16 fn from(request: HasPin) -> Self {
17 Self::HasPin(request)
18 }
19}
20
21#[derive(Debug, Deserialize, Serialize)]
22pub struct CheckPin {
23 pub id: PinId,
24 pub pin: Pin,
25}
26
27impl From<CheckPin> for AuthRequest {
28 fn from(request: CheckPin) -> Self {
29 Self::CheckPin(request)
30 }
31}
32
33#[derive(Debug, Deserialize, Serialize)]
34pub struct GetPinKey {
35 pub id: PinId,
36 pub pin: Pin,
37}
38
39impl From<GetPinKey> for AuthRequest {
40 fn from(request: GetPinKey) -> Self {
41 Self::GetPinKey(request)
42 }
43}
44
45#[derive(Debug, Deserialize, Serialize)]
46pub struct GetApplicationKey {
47 pub info: Message,
48}
49
50impl From<GetApplicationKey> for AuthRequest {
51 fn from(request: GetApplicationKey) -> Self {
52 Self::GetApplicationKey(request)
53 }
54}
55
56#[derive(Debug, Deserialize, Serialize)]
57pub struct SetPin {
58 pub id: PinId,
59 pub pin: Pin,
60 pub retries: Option<u8>,
61 pub derive_key: bool,
63}
64
65impl From<SetPin> for AuthRequest {
66 fn from(request: SetPin) -> Self {
67 Self::SetPin(request)
68 }
69}
70
71#[derive(Debug, Deserialize, Serialize)]
72pub struct SetPinWithKey {
73 pub id: PinId,
74 pub pin: Pin,
75 pub retries: Option<u8>,
76 pub key: KeyId,
78}
79
80impl From<SetPinWithKey> for AuthRequest {
81 fn from(request: SetPinWithKey) -> Self {
82 Self::SetPinWithKey(request)
83 }
84}
85
86#[derive(Debug, Deserialize, Serialize)]
87pub struct ChangePin {
88 pub id: PinId,
89 pub old_pin: Pin,
90 pub new_pin: Pin,
91}
92
93impl From<ChangePin> for AuthRequest {
94 fn from(request: ChangePin) -> Self {
95 Self::ChangePin(request)
96 }
97}
98
99#[derive(Debug, Deserialize, Serialize)]
100pub struct DeletePin {
101 pub id: PinId,
102}
103
104impl From<DeletePin> for AuthRequest {
105 fn from(request: DeletePin) -> Self {
106 Self::DeletePin(request)
107 }
108}
109
110#[derive(Debug, Deserialize, Serialize)]
111pub struct DeleteAllPins;
112
113impl From<DeleteAllPins> for AuthRequest {
114 fn from(request: DeleteAllPins) -> Self {
115 Self::DeleteAllPins(request)
116 }
117}
118
119#[derive(Debug, Deserialize, Serialize)]
120pub struct PinRetries {
121 pub id: PinId,
122}
123
124impl From<PinRetries> for AuthRequest {
125 fn from(request: PinRetries) -> Self {
126 Self::PinRetries(request)
127 }
128}
129
130#[derive(Debug, Deserialize, Serialize)]
131pub struct ResetAppKeys;
132
133impl From<ResetAppKeys> for AuthRequest {
134 fn from(request: ResetAppKeys) -> Self {
135 Self::ResetAppKeys(request)
136 }
137}
138
139#[derive(Debug, Deserialize, Serialize)]
140pub struct ResetAuthData;
141
142impl From<ResetAuthData> for AuthRequest {
143 fn from(request: ResetAuthData) -> Self {
144 Self::ResetAuthData(request)
145 }
146}