Crates.io | passkey-types |
lib.rs | passkey-types |
version | 0.3.0 |
source | src |
created_at | 2023-02-08 17:50:10.525507 |
updated_at | 2024-09-13 20:01:33.668769 |
description | Rust type definitions for the webauthn and CTAP specifications |
homepage | |
repository | https://github.com/1Password/passkey-rs |
max_upload_size | |
id | 780034 |
size | 243,496 |
This crate contains the types defined in both the WebAuthn Level 3 and CTAP 2.0 specifications for the operations they define. They are each separated in their own modules.
In this module the type names mirror exactly those in the specifications for ease of navigation. They are defined in a way that allows interoperability with the web types directly as well as the JSON encoding for over network communication.
By default, the Bytes
type serializes to an array of numbers for easy conversion to array buffers on the JavaScript side. However, if you are interacting with a server directly or wish to use this crate with Android's credential-manager library, you may wish this type to serialize to Base64Url. To do so, simply enable the crate feature serialize_bytes_as_base64_string
. In the future we will work on changing this behavior dynamically.
In this module, seeing as the method inputs are not given explicit names, the Request
and Response
types are defined in separate modules for each operation. These types make use of the same data structures from the WebAuthn module. In some cases though, the types have different constraits regarding required and optional fields, in which case it is re-defined in the CTAP module along with a TryFrom
implementation in either direction.