[][src]Crate webauthn_rs

Webauthn-rs - Webauthn for Rust Server Applications

Webauthn is a standard allowing communication between servers, browsers and authenticators to allow strong, passwordless, cryptographic authentication to be performed. Webauthn is able to operate with many authenticator types, such as U2F.

This library aims to provide a secure Webauthn implementation that you can plug into your application, so that you can provide Webauthn to your users.

For examples, see our examples folder.

To use this library yourself, you will want to reference the WebauthnConfig trait to develop site specific policy and configuration, and the Webauthn struct for Webauthn interactions.

Modules

attestation

Attestation information and verifications procedures. This contains a transparent type allowing callbacks to make attestation decisions. See the WebauthnConfig trait for more details.

base64_data
crypto

Cryptographic operation wrapper for Webauthn. This module exists to allow ease of auditing, safe operation wrappers for the webauthn library, and cryptographic provider abstraction. This module currently uses OpenSSL as the cryptographic primitive provider.

ephemeral

An implementation of an Ephemeral (in-memory) webauthn configuration provider This stores all challenges and credentials in memory - IE they are lost on service restart. It's only really useful for demo-sites, testing and as an example/reference implementation of the WebauthnConfig trait.

error

Possible errors that may occur during Webauthn Operation processing

proto

JSON Protocol Structs and representations for communication with authenticators and clients.

Structs

AuthenticationState

The in progress state of an authentication attempt. You must persist this associated to the UserID requesting the registration.

RegistrationState

The in progress state of a credential registration attempt. You must persist this associated to the UserID requesting the registration.

Webauthn

This is the core of the Webauthn operations. It provides 4 interfaces that you will likely use the most:

Traits

WebauthnConfig

The WebauthnConfig type allows site-specific customisation of the Webauthn library. This provides a set of callbacks which are used to supply data to various structures and calls, as well as callbacks to manage data persistence and retrieval.