Skip to main content

u2f/
messages.rs

1// As defined by FIDO U2F Javascript API.
2// https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-javascript-api.html#registration
3
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize)]
7#[serde(rename_all = "camelCase")]
8pub struct U2fRegisterRequest {
9  pub app_id: String,
10  pub register_requests: Vec<RegisterRequest>,
11  pub registered_keys: Vec<RegisteredKey>,
12}
13
14#[derive(Serialize)]
15pub struct RegisterRequest {
16  pub version: String,
17  pub challenge: String,
18}
19
20#[derive(Serialize)]
21#[serde(rename_all = "camelCase")]
22pub struct RegisteredKey {
23  pub version: String,
24  pub key_handle: Option<String>,
25  pub app_id: String,
26}
27
28#[derive(Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct RegisterResponse {
31  pub registration_data: String,
32  pub version: String,
33  pub client_data: String,
34}
35
36#[derive(Serialize)]
37#[serde(rename_all = "camelCase")]
38pub struct U2fSignRequest {
39  pub app_id: String,
40  pub challenge: String,
41  pub registered_keys: Vec<RegisteredKey>,
42}
43
44#[derive(Clone, Deserialize)]
45#[serde(rename_all = "camelCase")]
46pub struct SignResponse {
47  pub key_handle: String,
48  pub signature_data: String,
49  pub client_data: String,
50}