add 2.1 features to GetInfo
This commit is contained in:
@@ -13,8 +13,8 @@
|
||||
// limitations under the License.
|
||||
|
||||
use super::data_formats::{
|
||||
CoseKey, PackedAttestationStatement, PublicKeyCredentialDescriptor,
|
||||
PublicKeyCredentialUserEntity,
|
||||
AuthenticatorTransport, CoseKey, PackedAttestationStatement, PublicKeyCredentialDescriptor,
|
||||
PublicKeyCredentialParameter, PublicKeyCredentialUserEntity,
|
||||
};
|
||||
use alloc::collections::BTreeMap;
|
||||
use alloc::string::String;
|
||||
@@ -109,6 +109,11 @@ pub struct AuthenticatorGetInfoResponse {
|
||||
pub options: Option<BTreeMap<String, bool>>,
|
||||
pub max_msg_size: Option<u64>,
|
||||
pub pin_protocols: Option<Vec<u64>>,
|
||||
pub max_credential_count_in_list: Option<u64>,
|
||||
pub max_credential_id_length: Option<u64>,
|
||||
pub transports: Option<Vec<AuthenticatorTransport>>,
|
||||
pub algorithms: Option<Vec<PublicKeyCredentialParameter>>,
|
||||
pub firmware_version: Option<u64>,
|
||||
}
|
||||
|
||||
impl From<AuthenticatorGetInfoResponse> for cbor::Value {
|
||||
@@ -120,6 +125,11 @@ impl From<AuthenticatorGetInfoResponse> for cbor::Value {
|
||||
options,
|
||||
max_msg_size,
|
||||
pin_protocols,
|
||||
max_credential_count_in_list,
|
||||
max_credential_id_length,
|
||||
transports,
|
||||
algorithms,
|
||||
firmware_version,
|
||||
} = get_info_response;
|
||||
|
||||
let options_cbor: Option<cbor::Value> = options.map(|options| {
|
||||
@@ -131,12 +141,17 @@ impl From<AuthenticatorGetInfoResponse> for cbor::Value {
|
||||
});
|
||||
|
||||
cbor_map_options! {
|
||||
1 => cbor_array_vec!(versions),
|
||||
2 => extensions.map(|vec| cbor_array_vec!(vec)),
|
||||
3 => &aaguid,
|
||||
4 => options_cbor,
|
||||
5 => max_msg_size,
|
||||
6 => pin_protocols.map(|vec| cbor_array_vec!(vec)),
|
||||
0x01 => cbor_array_vec!(versions),
|
||||
0x02 => extensions.map(|vec| cbor_array_vec!(vec)),
|
||||
0x03 => &aaguid,
|
||||
0x04 => options_cbor,
|
||||
0x05 => max_msg_size,
|
||||
0x06 => pin_protocols.map(|vec| cbor_array_vec!(vec)),
|
||||
0x07 => max_credential_count_in_list,
|
||||
0x08 => max_credential_id_length,
|
||||
0x09 => transports.map(|vec| cbor_array_vec!(vec)),
|
||||
0x0A => algorithms.map(|vec| cbor_array_vec!(vec)),
|
||||
0x0E => firmware_version,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -228,6 +243,11 @@ mod test {
|
||||
options: None,
|
||||
max_msg_size: None,
|
||||
pin_protocols: None,
|
||||
max_credential_count_in_list: None,
|
||||
max_credential_id_length: None,
|
||||
transports: None,
|
||||
algorithms: None,
|
||||
firmware_version: None,
|
||||
};
|
||||
let response_cbor: Option<cbor::Value> =
|
||||
ResponseData::AuthenticatorGetInfo(get_info_response).into();
|
||||
|
||||
Reference in New Issue
Block a user