webauthn_rp

WebAuthn Level 3 RP library.
git clone https://git.philomathiclife.com/repos/webauthn_rp
Log | Files | Refs | README

Cargo.toml (6837B)


      1 [package]
      2 authors = ["Zack Newman <zack@philomathiclife.com>"]
      3 categories = ["api-bindings", "authentication", "web-programming"]
      4 description = "Server-side Web Authentication (WebAuthn) Relying Party (RP) API."
      5 documentation = "https://docs.rs/webauthn_rp/latest/webauthn_rp/"
      6 edition = "2024"
      7 keywords = ["authentication", "fido2", "passkey", "rp", "webauthn"]
      8 license = "MIT OR Apache-2.0"
      9 name = "webauthn_rp"
     10 readme = "README.md"
     11 repository = "https://git.philomathiclife.com/repos/webauthn_rp/"
     12 rust-version = "1.89.0"
     13 version = "0.4.0+spec-3"
     14 
     15 [lints.rust]
     16 ambiguous_negative_literals = { level = "deny", priority = -1 }
     17 closure_returning_async_block = { level = "deny", priority = -1 }
     18 deprecated_safe = { level = "deny", priority = -1 }
     19 deref_into_dyn_supertrait = { level = "deny", priority = -1 }
     20 ffi_unwind_calls = { level = "deny", priority = -1 }
     21 future_incompatible = { level = "deny", priority = -1 }
     22 #fuzzy_provenance_casts = { level = "deny", priority = -1 }
     23 impl_trait_redundant_captures = { level = "deny", priority = -1 }
     24 keyword_idents = { level = "deny", priority = -1 }
     25 let_underscore = { level = "deny", priority = -1 }
     26 linker_messages = { level = "deny", priority = -1 }
     27 #lossy_provenance_casts = { level = "deny", priority = -1 }
     28 macro_use_extern_crate = { level = "deny", priority = -1 }
     29 meta_variable_misuse = { level = "deny", priority = -1 }
     30 missing_copy_implementations = { level = "deny", priority = -1 }
     31 missing_debug_implementations = { level = "deny", priority = -1 }
     32 missing_docs = { level = "deny", priority = -1 }
     33 #multiple_supertrait_upcastable = { level = "deny", priority = -1 }
     34 #must_not_suspend = { level = "deny", priority = -1 }
     35 non_ascii_idents = { level = "deny", priority = -1 }
     36 #non_exhaustive_omitted_patterns = { level = "deny", priority = -1 }
     37 nonstandard_style = { level = "deny", priority = -1 }
     38 redundant_imports = { level = "deny", priority = -1 }
     39 redundant_lifetimes = { level = "deny", priority = -1 }
     40 refining_impl_trait = { level = "deny", priority = -1 }
     41 rust_2018_compatibility = { level = "deny", priority = -1 }
     42 rust_2018_idioms = { level = "deny", priority = -1 }
     43 rust_2021_compatibility = { level = "deny", priority = -1 }
     44 rust_2024_compatibility = { level = "deny", priority = -1 }
     45 single_use_lifetimes = { level = "deny", priority = -1 }
     46 #supertrait_item_shadowing_definition = { level = "deny", priority = -1 }
     47 #supertrait_item_shadowing_usage = { level = "deny", priority = -1 }
     48 trivial_casts = { level = "deny", priority = -1 }
     49 trivial_numeric_casts = { level = "deny", priority = -1 }
     50 unit_bindings = { level = "deny", priority = -1 }
     51 unknown_or_malformed_diagnostic_attributes = { level = "deny", priority = -1 }
     52 unnameable_types = { level = "deny", priority = -1 }
     53 #unqualified_local_imports = { level = "deny", priority = -1 }
     54 unreachable_pub = { level = "deny", priority = -1 }
     55 unsafe_code = { level = "deny", priority = -1 }
     56 unstable_features = { level = "deny", priority = -1 }
     57 unused = { level = "deny", priority = -1 }
     58 unused_crate_dependencies = { level = "deny", priority = -1 }
     59 unused_import_braces = { level = "deny", priority = -1 }
     60 unused_lifetimes = { level = "deny", priority = -1 }
     61 unused_qualifications = { level = "deny", priority = -1 }
     62 unused_results = { level = "deny", priority = -1 }
     63 variant_size_differences = { level = "deny", priority = -1 }
     64 warnings = { level = "deny", priority = -1 }
     65 
     66 [lints.clippy]
     67 cargo = { level = "deny", priority = -1 }
     68 complexity = { level = "deny", priority = -1 }
     69 correctness = { level = "deny", priority = -1 }
     70 nursery = { level = "deny", priority = -1 }
     71 pedantic = { level = "deny", priority = -1 }
     72 perf = { level = "deny", priority = -1 }
     73 restriction = { level = "deny", priority = -1 }
     74 style = { level = "deny", priority = -1 }
     75 suspicious = { level = "deny", priority = -1 }
     76 # Noisy, opinionated, and likely don't prevent bugs or improve APIs.
     77 arbitrary_source_item_ordering = "allow"
     78 blanket_clippy_restriction_lints = "allow"
     79 exhaustive_enums = "allow"
     80 exhaustive_structs = "allow"
     81 implicit_return = "allow"
     82 min_ident_chars = "allow"
     83 missing_trait_methods = "allow"
     84 module_name_repetitions = "allow"
     85 pub_use = "allow"
     86 pub_with_shorthand = "allow"
     87 question_mark_used = "allow"
     88 redundant_pub_crate = "allow"
     89 ref_patterns = "allow"
     90 return_and_then = "allow"
     91 self_named_module_files = "allow"
     92 single_call_fn = "allow"
     93 single_char_lifetime_names = "allow"
     94 unseparated_literal_suffix = "allow"
     95 
     96 [package.metadata.docs.rs]
     97 all-features = true
     98 default-target = "x86_64-unknown-linux-gnu"
     99 targets = [
    100   "aarch64-apple-darwin",
    101   "aarch64-pc-windows-msvc",
    102   "aarch64-unknown-linux-gnu",
    103   "i686-pc-windows-msvc",
    104   "i686-unknown-linux-gnu",
    105   "x86_64-pc-windows-gnu",
    106   "x86_64-pc-windows-msvc",
    107   "x86_64-unknown-freebsd",
    108   "x86_64-unknown-linux-musl",
    109   "x86_64-unknown-netbsd"
    110 ]
    111 
    112 [dependencies]
    113 base64url_nopad = { version = "0.1.2", default-features = false }
    114 ed25519-dalek = { version = "2.2.0", default-features = false }
    115 hashbrown = { version = "0.16.1", default-features = false }
    116 p256 = { version = "0.13.2", default-features = false, features = ["ecdsa"] }
    117 p384 = { version = "0.13.1", default-features = false, features = ["ecdsa"] }
    118 precis-profiles = { version = "0.1.13", default-features = false }
    119 rand = { version = "0.9.2", default-features = false, features = ["thread_rng"] }
    120 rsa = { version = "0.9.10", default-features = false, features = ["sha2"] }
    121 serde = { version = "1.0.228", default-features = false, features = ["alloc"], optional = true }
    122 serde_json = { version = "1.0.149", default-features = false, features = ["alloc"], optional = true }
    123 url = { version = "2.5.8", default-features = false }
    124 
    125 [dev-dependencies]
    126 base64url_nopad = { version = "0.1.2", default-features = false, features = ["alloc"] }
    127 ed25519-dalek = { version = "2.2.0", default-features = false, features = ["alloc", "pkcs8"] }
    128 p256 = { version = "0.13.2", default-features = false, features = ["pem"] }
    129 p384 = { version = "0.13.1", default-features = false, features = ["pkcs8"] }
    130 serde_json = { version = "1.0.149", default-features = false, features = ["preserve_order"] }
    131 
    132 
    133 ### FEATURES #################################################################
    134 
    135 [features]
    136 default = ["bin", "serde"]
    137 
    138 # Provide binary (de)serialization for persistent data.
    139 bin = []
    140 
    141 # Provide constructors for types that ideally are constructed
    142 # indirectly via the bin and serde features.
    143 custom = []
    144 
    145 # Provide client (de)serialization based on JSON-motivated
    146 # data structures.
    147 serde = ["base64url_nopad/alloc", "dep:serde"]
    148 
    149 # Provide "relaxed" JSON deserialization implementations.
    150 serde_relaxed = ["serde", "dep:serde_json"]
    151 
    152 # Provide binary (de)serialization for RegistrationServerState 
    153 # and AuthenticationServerState to avoid the use of in-memory
    154 # collections for ceremony completion.
    155 serializable_server_state = ["bin"]