1#[allow(unused_imports)]
3use super::types::*;
4#[allow(unused_imports)]
5use serde::{Deserialize, Serialize};
6#[allow(unused_imports)]
7use serde_json::Value as Json;
8pub type AuthenticatorId = String;
9#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
10pub enum AuthenticatorProtocol {
11 #[serde(rename = "u2f")]
12 U2F,
13 #[serde(rename = "ctap2")]
14 Ctap2,
15}
16#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
17pub enum Ctap2Version {
18 #[serde(rename = "ctap2_0")]
19 Ctap20,
20 #[serde(rename = "ctap2_1")]
21 Ctap21,
22}
23#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
24pub enum AuthenticatorTransport {
25 #[serde(rename = "usb")]
26 Usb,
27 #[serde(rename = "nfc")]
28 Nfc,
29 #[serde(rename = "ble")]
30 Ble,
31 #[serde(rename = "cable")]
32 Cable,
33 #[serde(rename = "internal")]
34 Internal,
35}
36#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
37pub struct VirtualAuthenticatorOptions {
38 #[serde(rename = "protocol")]
39 pub protocol: AuthenticatorProtocol,
40 #[serde(skip_serializing_if = "Option::is_none")]
41 #[serde(rename = "ctap2Version")]
42 pub ctap_2_version: Option<Ctap2Version>,
43 #[serde(rename = "transport")]
44 pub transport: AuthenticatorTransport,
45 #[serde(skip_serializing_if = "Option::is_none")]
46 #[serde(default)]
47 #[serde(rename = "hasResidentKey")]
48 pub has_resident_key: Option<bool>,
49 #[serde(skip_serializing_if = "Option::is_none")]
50 #[serde(default)]
51 #[serde(rename = "hasUserVerification")]
52 pub has_user_verification: Option<bool>,
53 #[serde(skip_serializing_if = "Option::is_none")]
54 #[serde(default)]
55 #[serde(rename = "hasLargeBlob")]
56 pub has_large_blob: Option<bool>,
57 #[serde(skip_serializing_if = "Option::is_none")]
58 #[serde(default)]
59 #[serde(rename = "hasCredBlob")]
60 pub has_cred_blob: Option<bool>,
61 #[serde(skip_serializing_if = "Option::is_none")]
62 #[serde(default)]
63 #[serde(rename = "hasMinPinLength")]
64 pub has_min_pin_length: Option<bool>,
65 #[serde(skip_serializing_if = "Option::is_none")]
66 #[serde(default)]
67 #[serde(rename = "hasPrf")]
68 pub has_prf: Option<bool>,
69 #[serde(skip_serializing_if = "Option::is_none")]
70 #[serde(default)]
71 #[serde(rename = "automaticPresenceSimulation")]
72 pub automatic_presence_simulation: Option<bool>,
73 #[serde(skip_serializing_if = "Option::is_none")]
74 #[serde(default)]
75 #[serde(rename = "isUserVerified")]
76 pub is_user_verified: Option<bool>,
77 #[serde(skip_serializing_if = "Option::is_none")]
78 #[serde(default)]
79 #[serde(rename = "defaultBackupEligibility")]
80 pub default_backup_eligibility: Option<bool>,
81 #[serde(skip_serializing_if = "Option::is_none")]
82 #[serde(default)]
83 #[serde(rename = "defaultBackupState")]
84 pub default_backup_state: Option<bool>,
85}
86#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
87pub struct Credential {
88 #[serde(rename = "credentialId")]
89 pub credential_id: Vec<u8>,
90 #[serde(default)]
91 #[serde(rename = "isResidentCredential")]
92 pub is_resident_credential: bool,
93 #[serde(skip_serializing_if = "Option::is_none")]
94 #[serde(default)]
95 #[serde(rename = "rpId")]
96 pub rp_id: Option<String>,
97 #[serde(rename = "privateKey")]
98 pub private_key: Vec<u8>,
99 #[serde(skip_serializing_if = "Option::is_none")]
100 #[serde(rename = "userHandle")]
101 pub user_handle: Option<Vec<u8>>,
102 #[serde(default)]
103 #[serde(rename = "signCount")]
104 pub sign_count: JsUInt,
105 #[serde(skip_serializing_if = "Option::is_none")]
106 #[serde(rename = "largeBlob")]
107 pub large_blob: Option<Vec<u8>>,
108 #[serde(skip_serializing_if = "Option::is_none")]
109 #[serde(default)]
110 #[serde(rename = "backupEligibility")]
111 pub backup_eligibility: Option<bool>,
112 #[serde(skip_serializing_if = "Option::is_none")]
113 #[serde(default)]
114 #[serde(rename = "backupState")]
115 pub backup_state: Option<bool>,
116 #[serde(skip_serializing_if = "Option::is_none")]
117 #[serde(default)]
118 #[serde(rename = "userName")]
119 pub user_name: Option<String>,
120 #[serde(skip_serializing_if = "Option::is_none")]
121 #[serde(default)]
122 #[serde(rename = "userDisplayName")]
123 pub user_display_name: Option<String>,
124}
125#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
126pub struct Enable {
127 #[serde(skip_serializing_if = "Option::is_none")]
128 #[serde(default)]
129 #[serde(rename = "enableUI")]
130 pub enable_ui: Option<bool>,
131}
132#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
133#[serde(rename_all = "camelCase")]
134pub struct Disable(pub Option<serde_json::Value>);
135#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
136pub struct AddVirtualAuthenticator {
137 #[serde(rename = "options")]
138 pub options: VirtualAuthenticatorOptions,
139}
140#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
141pub struct SetResponseOverrideBits {
142 #[serde(rename = "authenticatorId")]
143 pub authenticator_id: AuthenticatorId,
144 #[serde(skip_serializing_if = "Option::is_none")]
145 #[serde(default)]
146 #[serde(rename = "isBogusSignature")]
147 pub is_bogus_signature: Option<bool>,
148 #[serde(skip_serializing_if = "Option::is_none")]
149 #[serde(default)]
150 #[serde(rename = "isBadUV")]
151 pub is_bad_uv: Option<bool>,
152 #[serde(skip_serializing_if = "Option::is_none")]
153 #[serde(default)]
154 #[serde(rename = "isBadUP")]
155 pub is_bad_up: Option<bool>,
156}
157#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
158pub struct RemoveVirtualAuthenticator {
159 #[serde(rename = "authenticatorId")]
160 pub authenticator_id: AuthenticatorId,
161}
162#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
163pub struct AddCredential {
164 #[serde(rename = "authenticatorId")]
165 pub authenticator_id: AuthenticatorId,
166 #[serde(rename = "credential")]
167 pub credential: Credential,
168}
169#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
170pub struct GetCredential {
171 #[serde(rename = "authenticatorId")]
172 pub authenticator_id: AuthenticatorId,
173 #[serde(rename = "credentialId")]
174 pub credential_id: Vec<u8>,
175}
176#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
177pub struct GetCredentials {
178 #[serde(rename = "authenticatorId")]
179 pub authenticator_id: AuthenticatorId,
180}
181#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
182pub struct RemoveCredential {
183 #[serde(rename = "authenticatorId")]
184 pub authenticator_id: AuthenticatorId,
185 #[serde(rename = "credentialId")]
186 pub credential_id: Vec<u8>,
187}
188#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
189pub struct ClearCredentials {
190 #[serde(rename = "authenticatorId")]
191 pub authenticator_id: AuthenticatorId,
192}
193#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
194pub struct SetUserVerified {
195 #[serde(rename = "authenticatorId")]
196 pub authenticator_id: AuthenticatorId,
197 #[serde(default)]
198 #[serde(rename = "isUserVerified")]
199 pub is_user_verified: bool,
200}
201#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
202pub struct SetAutomaticPresenceSimulation {
203 #[serde(rename = "authenticatorId")]
204 pub authenticator_id: AuthenticatorId,
205 #[serde(default)]
206 #[serde(rename = "enabled")]
207 pub enabled: bool,
208}
209#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
210pub struct SetCredentialProperties {
211 #[serde(rename = "authenticatorId")]
212 pub authenticator_id: AuthenticatorId,
213 #[serde(rename = "credentialId")]
214 pub credential_id: Vec<u8>,
215 #[serde(skip_serializing_if = "Option::is_none")]
216 #[serde(default)]
217 #[serde(rename = "backupEligibility")]
218 pub backup_eligibility: Option<bool>,
219 #[serde(skip_serializing_if = "Option::is_none")]
220 #[serde(default)]
221 #[serde(rename = "backupState")]
222 pub backup_state: Option<bool>,
223}
224#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
225#[serde(rename_all = "camelCase")]
226pub struct EnableReturnObject {}
227#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
228#[serde(rename_all = "camelCase")]
229pub struct DisableReturnObject {}
230#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
231pub struct AddVirtualAuthenticatorReturnObject {
232 #[serde(rename = "authenticatorId")]
233 pub authenticator_id: AuthenticatorId,
234}
235#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
236#[serde(rename_all = "camelCase")]
237pub struct SetResponseOverrideBitsReturnObject {}
238#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
239#[serde(rename_all = "camelCase")]
240pub struct RemoveVirtualAuthenticatorReturnObject {}
241#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
242#[serde(rename_all = "camelCase")]
243pub struct AddCredentialReturnObject {}
244#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
245pub struct GetCredentialReturnObject {
246 #[serde(rename = "credential")]
247 pub credential: Credential,
248}
249#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
250pub struct GetCredentialsReturnObject {
251 #[serde(rename = "credentials")]
252 pub credentials: Vec<Credential>,
253}
254#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
255#[serde(rename_all = "camelCase")]
256pub struct RemoveCredentialReturnObject {}
257#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
258#[serde(rename_all = "camelCase")]
259pub struct ClearCredentialsReturnObject {}
260#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
261#[serde(rename_all = "camelCase")]
262pub struct SetUserVerifiedReturnObject {}
263#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
264#[serde(rename_all = "camelCase")]
265pub struct SetAutomaticPresenceSimulationReturnObject {}
266#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
267#[serde(rename_all = "camelCase")]
268pub struct SetCredentialPropertiesReturnObject {}
269impl Method for Enable {
270 const NAME: &'static str = "WebAuthn.enable";
271 type ReturnObject = EnableReturnObject;
272}
273impl Method for Disable {
274 const NAME: &'static str = "WebAuthn.disable";
275 type ReturnObject = DisableReturnObject;
276}
277impl Method for AddVirtualAuthenticator {
278 const NAME: &'static str = "WebAuthn.addVirtualAuthenticator";
279 type ReturnObject = AddVirtualAuthenticatorReturnObject;
280}
281impl Method for SetResponseOverrideBits {
282 const NAME: &'static str = "WebAuthn.setResponseOverrideBits";
283 type ReturnObject = SetResponseOverrideBitsReturnObject;
284}
285impl Method for RemoveVirtualAuthenticator {
286 const NAME: &'static str = "WebAuthn.removeVirtualAuthenticator";
287 type ReturnObject = RemoveVirtualAuthenticatorReturnObject;
288}
289impl Method for AddCredential {
290 const NAME: &'static str = "WebAuthn.addCredential";
291 type ReturnObject = AddCredentialReturnObject;
292}
293impl Method for GetCredential {
294 const NAME: &'static str = "WebAuthn.getCredential";
295 type ReturnObject = GetCredentialReturnObject;
296}
297impl Method for GetCredentials {
298 const NAME: &'static str = "WebAuthn.getCredentials";
299 type ReturnObject = GetCredentialsReturnObject;
300}
301impl Method for RemoveCredential {
302 const NAME: &'static str = "WebAuthn.removeCredential";
303 type ReturnObject = RemoveCredentialReturnObject;
304}
305impl Method for ClearCredentials {
306 const NAME: &'static str = "WebAuthn.clearCredentials";
307 type ReturnObject = ClearCredentialsReturnObject;
308}
309impl Method for SetUserVerified {
310 const NAME: &'static str = "WebAuthn.setUserVerified";
311 type ReturnObject = SetUserVerifiedReturnObject;
312}
313impl Method for SetAutomaticPresenceSimulation {
314 const NAME: &'static str = "WebAuthn.setAutomaticPresenceSimulation";
315 type ReturnObject = SetAutomaticPresenceSimulationReturnObject;
316}
317impl Method for SetCredentialProperties {
318 const NAME: &'static str = "WebAuthn.setCredentialProperties";
319 type ReturnObject = SetCredentialPropertiesReturnObject;
320}
321pub mod events {
322 #[allow(unused_imports)]
323 use super::super::types::*;
324 #[allow(unused_imports)]
325 use serde::{Deserialize, Serialize};
326 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
327 pub struct CredentialAddedEvent {
328 pub params: CredentialAddedEventParams,
329 }
330 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
331 pub struct CredentialAddedEventParams {
332 #[serde(rename = "authenticatorId")]
333 pub authenticator_id: super::AuthenticatorId,
334 #[serde(rename = "credential")]
335 pub credential: super::Credential,
336 }
337 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
338 pub struct CredentialDeletedEvent {
339 pub params: CredentialDeletedEventParams,
340 }
341 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
342 pub struct CredentialDeletedEventParams {
343 #[serde(rename = "authenticatorId")]
344 pub authenticator_id: super::AuthenticatorId,
345 #[serde(default)]
346 #[serde(rename = "credentialId")]
347 pub credential_id: u8,
348 }
349 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
350 pub struct CredentialUpdatedEvent {
351 pub params: CredentialUpdatedEventParams,
352 }
353 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
354 pub struct CredentialUpdatedEventParams {
355 #[serde(rename = "authenticatorId")]
356 pub authenticator_id: super::AuthenticatorId,
357 #[serde(rename = "credential")]
358 pub credential: super::Credential,
359 }
360 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
361 pub struct CredentialAssertedEvent {
362 pub params: CredentialAssertedEventParams,
363 }
364 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
365 pub struct CredentialAssertedEventParams {
366 #[serde(rename = "authenticatorId")]
367 pub authenticator_id: super::AuthenticatorId,
368 #[serde(rename = "credential")]
369 pub credential: super::Credential,
370 }
371}