bitwarden_api_api/models/
assertion_response.rs1use serde::{Deserialize, Serialize};
12use serde_with::serde_as;
13
14use crate::models;
15
16#[serde_as]
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
18pub struct AssertionResponse {
19 #[serde_as(
20 as = "Option<serde_with::base64::Base64<serde_with::base64::UrlSafe, serde_with::formats::Unpadded>>"
21 )]
22 #[serde(rename = "authenticatorData", alias = "AuthenticatorData")]
23 pub authenticator_data: Option<Vec<u8>>,
24 #[serde_as(
25 as = "Option<serde_with::base64::Base64<serde_with::base64::UrlSafe, serde_with::formats::Unpadded>>"
26 )]
27 #[serde(rename = "signature", alias = "Signature")]
28 pub signature: Option<Vec<u8>>,
29 #[serde_as(
30 as = "Option<serde_with::base64::Base64<serde_with::base64::UrlSafe, serde_with::formats::Unpadded>>"
31 )]
32 #[serde(rename = "clientDataJSON", alias = "ClientDataJson")]
33 pub client_data_json: Option<Vec<u8>>,
34 #[serde_as(
35 as = "Option<serde_with::base64::Base64<serde_with::base64::UrlSafe, serde_with::formats::Unpadded>>"
36 )]
37 #[serde(
38 rename = "userHandle",
39 alias = "UserHandle",
40 skip_serializing_if = "Option::is_none"
41 )]
42 pub user_handle: Option<Vec<u8>>,
43}
44
45impl AssertionResponse {
46 pub fn new(
47 authenticator_data: Option<Vec<u8>>,
48 signature: Option<Vec<u8>>,
49 client_data_json: Option<Vec<u8>>,
50 ) -> AssertionResponse {
51 AssertionResponse {
52 authenticator_data,
53 signature,
54 client_data_json,
55 user_handle: None,
56 }
57 }
58}