Nick Zana
4f589f4525
ctap2-proto: fix typo in Command enum variant
2 years ago
Nick Zana
de4e3c39e0
ctap2-proto: Import std::fmt::Display used for authenticator::credential::management::Error
2 years ago
Nick Zana
2bcc0699f1
chore: Derive std::marker::ConstParamTy for types used as const params
2 years ago
Nick Zana
2e6e890c52
ctap2-proto: Remove coset dependency after transition to cosey
2 years ago
Nick Zana
ed57873783
ctap2-proto: Add raw module with RawSubcommand to authenticator::credential::management
...
RawSubcommand is de/serialized as a u8 corresponding to its subCommand
number.
Also implements Display for authenticator::credential::management::Error
so that it can be used as the serde error type for RawSubcommand.
2 years ago
Nick Zana
448c8cb79b
ctap2-proto: Add client_pin::raw::RawResponse for de/serialization of client_pin::Response enum as CBOR
2 years ago
Nick Zana
2f53d730c8
ctap2-proto: Add client_pin::raw::RawRequest for de/serialization of client_pin::Request enum as CBOR
2 years ago
Nick Zana
132cd6b03f
ctap2-proto: Add ctap2-proto::authenticator::client_pin::raw::RawPermission bitflag set
...
CTAP 2 uses bitflags to represent the permissions field in client pin
requests. This adds a RawPermission type that can be represented using a
FlagSet<RawPermission> for Serialization and Deserialization.
2 years ago
Nick Zana
10bdfc1547
ctap2-proto: Add authenticator::client_pin::raw::RawSubcommand
...
This type is used for serialization and deserialization of subcommands
as raw u8s.
2 years ago
Nick Zana
df78c9e303
ctap2-proto: Add authenticator::client_pin::raw::PublicKey type for deserialization
...
The cosey::PublicKey type does not properly implement deserialize for
the general PublicKey type. the client_pin::raw::PublicKey type is used
as an intermediate to allow deserialization of COSE public keys in the
client_pin protocol.
2 years ago
Nick Zana
984e43cd18
ctap2-proto: Derive serde traits as Bytes type for authenticator::client_pin::PinUvAuthToken
...
Serializes and Deserializes as serde_as::Bytes so that the byte arrays
are serialized as bytestrings, not sequences of bytes.
2 years ago
Nick Zana
63a9be04ad
ctap2-proto: Add pin_uv_auth_token param to authenticator::client_pin::Response::GetPinToken
2 years ago
Nick Zana
7827fb82fe
ctap2-proto: Remove all fields from authenticator::client_pin::Response::SetPin
...
This response type has no fields.
2 years ago
Nick Zana
54028012a8
ctap2-proto: Derive Debug, Eq, and Ord traits for authenticator::client_pin::Permission enum
2 years ago
Nick Zana
408c4864da
ctap2-proto: Specify relying_party_id type as Cow<'a, str> in authenticator::client_pin::Request variant fields
2 years ago
Nick Zana
b1963220d8
ctap2-proto: Implement std::fmt::Display for authenticator::client_pin::Error
2 years ago
Nick Zana
3f04a35447
ctap2-proto: Change &[u8] to fixed size arrays in authenticator::client_pin::{Request, Response} fields
2 years ago
Nick Zana
128ed345d1
ctap2-proto: Change authenticator::client_pin::{Request, Response} to cosey::PublicKey
...
Replaces coset::CoseKey type, which doesn't sufficiently distinguish
between public and private keys and the parameters required for key
algorithm variants, with the cosey::PublicKey type in the Request and
Response type fields.
2 years ago
Nick Zana
848fcf43b4
ctap2-proto: Add missing version parameter to authenticator::client_pin::Request::SetPin
2 years ago
Nick Zana
795d356ab6
ctap2-proto: Simplify authenticator::client_pin::auth_protocol traits
...
Rather than use manual lifetime management for PinUvAuthProtocol session
keys, change the auth_protocol::platform::Session trait to represent a
single Session, which maintains its own platform key agreement key, and
can be managed with the lifetime of the value itself.
2 years ago
Nick Zana
941a5f3949
ctap2-proto: Enable adt_const_params feature
...
This unstable feature is used in the
authenticator::client_pin::auth_protocol module to keep track of which
version of the PinUvAuthProtocol a given Authenticator or Platform
interface implements.
2 years ago
Nick Zana
6b84fd398e
ctap2-proto: Put extensions::cred_protect::Policy serde derivation behind "serde" feature flag
2 years ago
Nick Zana
feabea834a
ctap2-proto: Formatting
2 years ago
Nick Zana
f3f2c5128c
ctap2-proto: Add authenticator::client_pin::auth_protocol::{Authenticator, Platform} trait defitions
...
Adds traits to define the Platform and Authenticator abstract
definitions for the PIN/UV Auth Protocol.
2 years ago
Nick Zana
a8a9eeb817
ctap2-proto: Move authenticator::client_pin::AuthProtocolVersion to own module
...
In preparation for adding traits for the PIN/UV Auth Protocol, this
splits the AuthProtocolVersion type into its own module and renames it
to auth_protocol::Version.
2 years ago
Nick Zana
16d11745a3
ctap2-proto: Serialize/Deserialize authenticator::client_pin::AuthProtocolVersion as u8
...
Use u8::From<AuthProtocolVersion> and AuthProtocolVersion::TryFrom<u8>
implementations instead of manually implementing Serialize/Deserialize.
2 years ago
Nick Zana
4a816e846c
ctap2-proto: Add cosey dependency for COSE PublicKey type
...
Used to manage serialization and deserialization of COSE public keys
instead of coset in order to be able to derive De/Serialize for types
that include COSE public keys as fields in CBOR messages.
coset is inadequate for the purpose because it uses a distinct
AsCborSerialize trait instead of the standard serde::{Serialize,
Deserialize} traits.
2 years ago
Nick Zana
5ea0cfeb9e
ctap2-proto: Derive common traits for extensions::cred_protect::Policy
...
Derive Clone, Copy, and serde traits for usage in CTAP messages
2 years ago
Nick Zana
67a2986167
ctap2-proto: Gate serde attributes for authenticator::assertion::get types behind serde feature
2 years ago
Nick Zana
860f574f0a
ctap2-proto: Add hex dev-dependency for CBOR debugging
2 years ago
Nick Zana
cea42642dc
ctap2-proto: Set associated raw values for extensions::cred_protect::Policy enum
2 years ago
Nick Zana
8c8984edcb
fido-common: Derive (Partial)Eq for public_key types
2 years ago
Nick Zana
b86d20f0dd
fido-common: Add TODO to de/serialize Transport::Unknown as inner String
2 years ago
Nick Zana
d09fd56842
fido-common: Add Clone, Eq traits to attestation::Statement
2 years ago
Nick Zana
e1b50351a3
Remove all clippy warning bypasses
2 years ago
Nick Zana
76089d60cb
ctap2_proto: remove extraneous client_pin::Subcommand enum
2 years ago
Nick Zana
413b55f098
ctap2-proto: Add self params to Ctap Authentictaor methods
...
Self required to access authenticator.
2 years ago
Nick Zana
0804a06f02
ctap2-proto: Uncomment temporarily disabled methods
2 years ago
Nick Zana
d5a4a03c0d
fido-common: derives comparison traits for several types
...
Derives PartialOrd and Ord for credential::public_key::Parameters
Derives PartialEq, Eq, PartialOrd and Ord for credential::public_key::UserEntity
Also derives clone and copy for some types.
2 years ago
Nick Zana
03fb2f1eb6
fido-common: Derive ordering for credential::Type
2 years ago
Nick Zana
7db826dc78
ctap2-proto: derive serde traits for authenticator::reset::Error
2 years ago
Nick Zana
b5e33f889e
ctap2-hid: All ctap commands need self reference
2 years ago
Nick Zana
7f8f97b0c3
ctap2-proto: Derive builder trait for authenticator::credential::make::Request
...
Adds typed-builder dependency to derive Builder struct.
2 years ago
Nick Zana
8bf52aa842
ctap2-proto: Derive Deserialize for authenticator::assertion::get::Response
2 years ago
Nick Zana
eb4ccf34a3
ctap2-proto: Derive Serialize for authenticator::credential::get::Request
2 years ago
Nick Zana
49dfb44ea7
ctap2-proto: Derive serde traits for authenticator::credential::get::OptionKey
2 years ago
Nick Zana
50bdffbe08
ctap2-proto: Derive Deserialize for authenticator::credential::make::Response
2 years ago
Nick Zana
9d46ecf75b
ctap2-proto: Add attestation_statement field to credential::make::Response
2 years ago
Nick Zana
54d8ffc2bf
ctap2-proto: Derive Serialize for credential::make::Request
...
Enables cfg_eval feature because serde_as does not support cfg_attr for
conditional compilation.
2 years ago
Nick Zana
ea1df60e74
ctap2-proto: Make make::Request::pin_uv_auth_param optional
...
the `pin_uv_auth_param` field is an optional field in the CTAP spec.
2 years ago