Crate passkey_authenticator

Source
Expand description

§Passkey Authenticator

github version documentation

This crate defines an Authenticator type along with a basic implementation of the CTAP 2.0 specification. The Authenticator struct is designed in such a way that storage and user interaction are defined through traits, allowing only the parts that vary between vendors, but keeping the specification compliant implementation regardless of vendor. This is why the Ctap2Api trait is sealed, to prevent external implementations.

§Why RustCrypto?

For targeting WASM, yes there are other cryptographic libraries out there that allow targeting WASM, but none of them are as easy to compile to wasm than the pure rust implementations of the RustCrypto libraries. Now this does come with limitations, so there are plans to provide a similar backing trait to “plug-in” the desired cryptography from a vendor. Work is ongoing for this.

Modules§

extensions
The authenticator extensions as defined in CTAP2 Defined Extensions or in WebAuthn Defined Extensions.

Structs§

Authenticator
A virtual authenticator with all the necessary state and information.
CredentialIdLength
The length of credentialId that should be randomly generated during a credential creation operation.
StoreInfo
A struct that defines the capabilities of a store.
UserCheck
The result of a user validation check.

Enums§

DiscoverabilitySupport
Enum to define how the store handles discoverability. Note that this is does not say anything about which storage mode will be used.

Traits§

CredentialStore
Use this on a type that enables storage and fetching of credentials
Ctap2Api
Methods defined as being required for a CTAP 2.0 compliant authenticator to implement.
U2fApi
Provides the U2F Authenticator API
UserValidationMethod
Pluggable trait for the Authenticator to do user interaction and verification.

Functions§

public_key_der_from_cose_key
Convert a Cose Key to a X.509 SubjectPublicKeyInfo formatted byte array.

Type Aliases§

MemoryStore
In-memory store for Passkeys