99 Commits (984e43cd18239290704d2dd78a34af3574ef987e)
 

Author SHA1 Message Date
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.
1 year ago
Nick Zana 63a9be04ad ctap2-proto: Add pin_uv_auth_token param to authenticator::client_pin::Response::GetPinToken 1 year ago
Nick Zana 7827fb82fe ctap2-proto: Remove all fields from authenticator::client_pin::Response::SetPin
This response type has no fields.
1 year ago
Nick Zana 54028012a8 ctap2-proto: Derive Debug, Eq, and Ord traits for authenticator::client_pin::Permission enum 1 year ago
Nick Zana 408c4864da ctap2-proto: Specify relying_party_id type as Cow<'a, str> in authenticator::client_pin::Request variant fields 1 year ago
Nick Zana b1963220d8 ctap2-proto: Implement std::fmt::Display for authenticator::client_pin::Error 1 year ago
Nick Zana 3f04a35447 ctap2-proto: Change &[u8] to fixed size arrays in authenticator::client_pin::{Request, Response} fields 1 year 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.
1 year ago
Nick Zana 848fcf43b4 ctap2-proto: Add missing version parameter to authenticator::client_pin::Request::SetPin 1 year 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.
1 year 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.
1 year ago
Nick Zana 6b84fd398e ctap2-proto: Put extensions::cred_protect::Policy serde derivation behind "serde" feature flag 1 year ago
Nick Zana feabea834a ctap2-proto: Formatting 1 year 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.
1 year 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.
1 year 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.
1 year 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.
1 year 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
1 year ago
Nick Zana 67a2986167 ctap2-proto: Gate serde attributes for authenticator::assertion::get types behind serde feature 1 year ago
Nick Zana 860f574f0a ctap2-proto: Add hex dev-dependency for CBOR debugging 1 year ago
Nick Zana cea42642dc ctap2-proto: Set associated raw values for extensions::cred_protect::Policy enum 1 year ago
Nick Zana 8c8984edcb fido-common: Derive (Partial)Eq for public_key types 1 year ago
Nick Zana b86d20f0dd fido-common: Add TODO to de/serialize Transport::Unknown as inner String 1 year ago
Nick Zana d09fd56842 fido-common: Add Clone, Eq traits to attestation::Statement 1 year ago
Nick Zana e1b50351a3 Remove all clippy warning bypasses 2 years ago
Nick Zana 04ff08c14f chore: update Cargo.lock 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 cc837a8641 chore: update Cargo.lock 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
Nick Zana 573069afad ctap2-proto: Derive serde traits for credential::make::OptionKey 2 years ago
Nick Zana 12d6f7fe51 ctap2-proto: Derive common traits for credential::{make, get}
Derives Debug and other common traits for the credential::{make, get}
types.
2 years ago
Nick Zana 754fc51510 ctap2-proto: Include all of fido-common in prelude 2 years ago
Nick Zana 166fe1bca6 ctap2-proto: Add serde_with
Required for serializing and deserializing Vec<u8>s as byte strings
instead of sequences of bytes in CTAP request/response types.
2 years ago
Nick Zana 7f98c2779a fido-common: Fix serde_with version to support serde fork 2 years ago
Nick Zana cfc7856894 Patch serde to github.com/AndrewScull/serde fork
serde_derive does not currently support using integer values as map
keys. CTAP uses integer values for various CBOR map keys. In order to
properly serialize and deserialize types for the CTAP protocol, a forked
version of serde from a pull request that adds support for renaming
field keys as integer types is used.

Tracked in <https://github.com/serde-rs/serde/pull/2209>
2 years ago
Nick Zana d4a94b83af ctap2-proto: Derive serde for device::Info
Serde renames are integers because CTAP uses integer keys in CBOR maps
2 years ago
Nick Zana 76cec18d0a ctap2-proto: Add missing device::Option CredentialManagementPreview 2 years ago