webauthn_rs_core/lib.rs
1//! Webauthn-rs - Webauthn for Rust Server Applications
2//!
3//! Webauthn is a standard allowing communication between servers, browsers and authenticators
4//! to allow strong, passwordless, cryptographic authentication to be performed. Webauthn
5//! is able to operate with many authenticator types, such as U2F.
6//!
7//! ⚠️ ⚠️ ⚠️ THIS IS UNSAFE. AVOID USING THIS DIRECTLY ⚠️ ⚠️ ⚠️
8//!
9//! If possible, use the `webauthn-rs` crate, and it's safe wrapper instead!
10//!
11//! Webauthn as a standard has many traps that in the worst cases, may lead to
12//! bypasses and full account compromises. Many of the features of webauthn are
13//! NOT security policy, but user interface hints. Many options can NOT be
14//! enforced. `webauthn-rs` handles these correctly. USE `webauthn-rs` INSTEAD.
15
16#![cfg_attr(docsrs, feature(doc_cfg))]
17#![deny(warnings)]
18#![warn(unused_extern_crates)]
19#![warn(missing_docs)]
20#![deny(clippy::todo)]
21#![deny(clippy::unimplemented)]
22#![deny(clippy::unwrap_used)]
23// #![deny(clippy::expect_used)]
24#![deny(clippy::panic)]
25#![deny(clippy::unreachable)]
26#![deny(clippy::await_holding_lock)]
27#![deny(clippy::needless_pass_by_value)]
28#![deny(clippy::trivially_copy_pass_by_ref)]
29
30#[macro_use]
31extern crate tracing;
32
33#[macro_use]
34mod macros;
35
36mod constants;
37
38pub mod attestation;
39pub mod crypto;
40pub mod fake;
41
42mod core;
43pub mod error;
44mod interface;
45pub mod internals;
46
47/// Protocol bindings
48pub mod proto {
49 pub use crate::interface::*;
50 pub use base64urlsafedata::Base64UrlSafeData;
51 pub use webauthn_rs_proto::*;
52}
53
54pub use crate::core::*;