u2f 0.1.2

Rust FIDO U2F Library
Documentation
// As defined by FIDO U2F Javascript API.
// https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-javascript-api.html#registration

#[derive(Serialize)]
#[serde(rename_all = "camelCase")]
pub struct U2fRegisterRequest {
    pub app_id: String,
    pub register_requests: Vec<RegisterRequest>,
    pub registered_keys: Vec<RegisteredKey>,
}

#[derive(Serialize)]
pub struct RegisterRequest {
    pub version: String,
    pub challenge: String
}

#[derive(Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RegisteredKey {
    pub version: String,
    pub key_handle: Option<String>,
    pub app_id: String
}

#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RegisterResponse {
    pub registration_data: String,
    pub version: String,
    pub challenge: String,
    pub client_data: String
}

#[derive(Serialize)]
#[serde(rename_all = "camelCase")]
pub struct U2fSignRequest {
    pub app_id: String,
    pub challenge: String,
    pub registered_keys: Vec<RegisteredKey>
}

#[derive(Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SignResponse {
    pub key_handle: String,
    pub signature_data: String,
    pub client_data: String
}