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
4#[derive(Serialize)]
5#[serde(rename_all = "camelCase")]
6pub struct U2fRegisterRequest {
7    pub app_id: String,
8    pub register_requests: Vec<RegisterRequest>,
9    pub registered_keys: Vec<RegisteredKey>,
10}
11
12#[derive(Serialize)]
13pub struct RegisterRequest {
14    pub version: String,
15    pub challenge: String
16}
17
18#[derive(Serialize)]
19#[serde(rename_all = "camelCase")]
20pub struct RegisteredKey {
21    pub version: String,
22    pub key_handle: Option<String>,
23    pub app_id: String
24}
25
26#[derive(Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub struct RegisterResponse {
29    pub registration_data: String,
30    pub version: String,
31    pub client_data: String
32}
33
34#[derive(Serialize)]
35#[serde(rename_all = "camelCase")]
36pub struct U2fSignRequest {
37    pub app_id: String,
38    pub challenge: String,
39    pub registered_keys: Vec<RegisteredKey>
40}
41
42#[derive(Clone, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct SignResponse {
45    pub key_handle: String,
46    pub signature_data: String,
47    pub client_data: String
48}