webauthn_rp

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

Cargo.toml (7236B)


      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.97.0"
     13 version = "0.4.0+spec-3"
     14 
     15 [lints.rust]
     16 deprecated-safe = { level = "deny", priority = -1 }
     17 future-incompatible = { level = "deny", priority = -1 }
     18 keyword-idents = { level = "deny", priority = -1 }
     19 let-underscore = { level = "deny", priority = -1 }
     20 nonstandard-style = { level = "deny", priority = -1 }
     21 refining-impl-trait = { level = "deny", priority = -1 }
     22 rust-2018-compatibility = { level = "deny", priority = -1 }
     23 rust-2018-idioms = { level = "deny", priority = -1 }
     24 rust-2021-compatibility = { level = "deny", priority = -1 }
     25 rust-2024-compatibility = { level = "deny", priority = -1 }
     26 unknown-or-malformed-diagnostic-attributes = { level = "deny", priority = -1 }
     27 unused = { level = "deny", priority = -1 }
     28 warnings = { level = "deny", priority = -1 }
     29 ambiguous-negative-literals = { level = "deny", priority = -1 }
     30 closure-returning-async-block = { level = "deny", priority = -1 }
     31 dead-code-pub-in-binary = { level = "deny", priority = -1 }
     32 deprecated-in-future = { level = "deny", priority = -1 }
     33 #deprecated-llvm-intrinsic = { level = "deny", priority = -1 }
     34 deref-into-dyn-supertrait = { level = "deny", priority = -1 }
     35 ffi-unwind-calls = { level = "deny", priority = -1 }
     36 #fuzzy-provenance-casts = { level = "deny", priority = -1 }
     37 impl-trait-redundant-captures = { level = "deny", priority = -1 }
     38 linker-info = { level = "deny", priority = -1 }
     39 #lossy-provenance-casts = { level = "deny", priority = -1 }
     40 macro-use-extern-crate = { level = "deny", priority = -1 }
     41 meta-variable-misuse = { level = "deny", priority = -1 }
     42 missing-copy-implementations = { level = "deny", priority = -1 }
     43 missing-debug-implementations = { level = "deny", priority = -1 }
     44 missing-docs = { level = "deny", priority = -1 }
     45 #multiple-supertrait-upcastable = { level = "deny", priority = -1 }
     46 #must-not-suspend = { level = "deny", priority = -1 }
     47 non-ascii-idents = { level = "deny", priority = -1 }
     48 #non-exhaustive-omitted-patterns = { level = "deny", priority = -1 }
     49 redundant-imports = { level = "deny", priority = -1 }
     50 redundant-lifetimes = { level = "deny", priority = -1 }
     51 #resolving-to-items-shadowing-supertrait-items = { level = "deny", priority = -1 }
     52 #shadowing-supertrait-items = { level = "deny", priority = -1 }
     53 single-use-lifetimes = { level = "deny", priority = -1 }
     54 trivial-casts = { level = "deny", priority = -1 }
     55 trivial-numeric-casts = { level = "deny", priority = -1 }
     56 unit-bindings = { level = "deny", priority = -1 }
     57 unnameable-types = { level = "deny", priority = -1 }
     58 #unqualified-local-imports = { level = "deny", priority = -1 }
     59 unreachable-pub = { level = "deny", priority = -1 }
     60 unsafe-code = { level = "deny", priority = -1 }
     61 unstable-features = { level = "deny", priority = -1 }
     62 unused-crate-dependencies = { level = "deny", priority = -1 }
     63 unused-import-braces = { level = "deny", priority = -1 }
     64 unused-lifetimes = { level = "deny", priority = -1 }
     65 unused-qualifications = { level = "deny", priority = -1 }
     66 unused-results = { level = "deny", priority = -1 }
     67 variant-size-differences = { level = "deny", priority = -1 }
     68 
     69 [lints.clippy]
     70 cargo = { level = "deny", priority = -1 }
     71 complexity = { level = "deny", priority = -1 }
     72 correctness = { level = "deny", priority = -1 }
     73 nursery = { level = "deny", priority = -1 }
     74 pedantic = { level = "deny", priority = -1 }
     75 perf = { level = "deny", priority = -1 }
     76 restriction = { level = "deny", priority = -1 }
     77 style = { level = "deny", priority = -1 }
     78 suspicious = { level = "deny", priority = -1 }
     79 # Noisy, opinionated, and likely don't prevent bugs or improve APIs.
     80 arbitrary_source_item_ordering = "allow"
     81 blanket_clippy_restriction_lints = "allow"
     82 decimal_bitwise_operands = "allow"
     83 exhaustive_enums = "allow"
     84 exhaustive_structs = "allow"
     85 implicit_return = "allow"
     86 inline_trait_bounds = "allow"
     87 min_ident_chars = "allow"
     88 missing_trait_methods = "allow"
     89 module_name_repetitions = "allow"
     90 pub_use = "allow"
     91 pub_with_shorthand = "allow"
     92 question_mark_used = "allow"
     93 redundant_pub_crate = "allow"
     94 ref_patterns = "allow"
     95 return_and_then = "allow"
     96 self_named_module_files = "allow"
     97 single_call_fn = "allow"
     98 single_char_lifetime_names = "allow"
     99 unseparated_literal_suffix = "allow"
    100 
    101 [lints.rustdoc]
    102 all = { level = "deny", priority = -1 }
    103 
    104 [package.metadata.docs.rs]
    105 all-features = true
    106 default-target = "x86_64-unknown-linux-gnu"
    107 targets = [
    108   "aarch64-apple-darwin",
    109   "aarch64-pc-windows-msvc",
    110   "aarch64-unknown-linux-gnu",
    111   "i686-pc-windows-msvc",
    112   "i686-unknown-linux-gnu",
    113   "x86_64-pc-windows-gnu",
    114   "x86_64-pc-windows-msvc",
    115   "x86_64-unknown-freebsd",
    116   "x86_64-unknown-linux-musl",
    117   "x86_64-unknown-netbsd"
    118 ]
    119 
    120 [dependencies]
    121 base64url_nopad = { version = "0.2.0", default-features = false }
    122 ed25519-dalek = { version = "3.0.0", default-features = false }
    123 hashbrown = { version = "0.17.1", default-features = false }
    124 ml-dsa = { version = "0.1.1", default-features = false }
    125 p256 = { version = "0.14.0", default-features = false, features = ["ecdsa"] }
    126 p384 = { version = "0.14.0", default-features = false, features = ["ecdsa"] }
    127 rand = { version = "0.10.2", default-features = false, features = ["thread_rng"] }
    128 rsa = { version = "0.10.0-rc.18", default-features = false, features = ["encoding", "sha2"] }
    129 serde = { version = "1.0.228", default-features = false, features = ["alloc"], optional = true }
    130 serde_json = { version = "1.0.150", default-features = false, features = ["alloc"], optional = true }
    131 url = { version = "2.5.8", default-features = false }
    132 
    133 [dev-dependencies]
    134 base64url_nopad = { version = "0.2.0", default-features = false, features = ["alloc"] }
    135 ed25519-dalek = { version = "3.0.0", default-features = false, features = ["alloc", "pkcs8"] }
    136 ml-dsa = { version = "0.1.1", default-features = false, features = ["alloc", "pkcs8"] }
    137 p256 = { version = "0.14.0", default-features = false, features = ["pem"] }
    138 p384 = { version = "0.14.0", default-features = false, features = ["pkcs8"] }
    139 serde_json = { version = "1.0.150", default-features = false, features = ["preserve_order"] }
    140 
    141 
    142 ### FEATURES #################################################################
    143 
    144 [features]
    145 default = ["bin", "serde"]
    146 
    147 # Provide binary (de)serialization for persistent data.
    148 bin = []
    149 
    150 # Provide constructors for types that ideally are constructed
    151 # indirectly via the bin and serde features.
    152 custom = []
    153 
    154 # Provide client (de)serialization based on JSON-motivated
    155 # data structures.
    156 serde = ["base64url_nopad/alloc", "dep:serde"]
    157 
    158 # Provide "relaxed" JSON deserialization implementations.
    159 serde_relaxed = ["serde", "dep:serde_json"]
    160 
    161 # Provide binary (de)serialization for RegistrationServerState 
    162 # and AuthenticationServerState to avoid the use of in-memory
    163 # collections for ceremony completion.
    164 serializable_server_state = ["bin"]