webauthn_rp

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

Cargo.toml (6442B)


      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"
     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 trivial_casts = { level = "deny", priority = -1 }
     48 trivial_numeric_casts = { level = "deny", priority = -1 }
     49 unit_bindings = { level = "deny", priority = -1 }
     50 unnameable_types = { level = "deny", priority = -1 }
     51 #unqualified_local_imports = { level = "deny", priority = -1 }
     52 unreachable_pub = { level = "deny", priority = -1 }
     53 unsafe_code = { level = "deny", priority = -1 }
     54 unstable_features = { level = "deny", priority = -1 }
     55 unused = { level = "deny", priority = -1 }
     56 unused_crate_dependencies = { level = "deny", priority = -1 }
     57 unused_import_braces = { level = "deny", priority = -1 }
     58 unused_lifetimes = { level = "deny", priority = -1 }
     59 unused_qualifications = { level = "deny", priority = -1 }
     60 unused_results = { level = "deny", priority = -1 }
     61 variant_size_differences = { level = "deny", priority = -1 }
     62 warnings = { level = "deny", priority = -1 }
     63 
     64 [lints.clippy]
     65 all = { level = "deny", priority = -1 }
     66 cargo = { level = "deny", priority = -1 }
     67 complexity = { level = "deny", priority = -1 }
     68 correctness = { level = "deny", priority = -1 }
     69 nursery = { level = "deny", priority = -1 }
     70 pedantic = { level = "deny", priority = -1 }
     71 perf = { level = "deny", priority = -1 }
     72 restriction = { level = "deny", priority = -1 }
     73 style = { level = "deny", priority = -1 }
     74 suspicious = { level = "deny", priority = -1 }
     75 # Noisy, opinionated, and likely don't prevent bugs or improve APIs.
     76 arbitrary_source_item_ordering = "allow"
     77 blanket_clippy_restriction_lints = "allow"
     78 exhaustive_enums = "allow"
     79 exhaustive_structs = "allow"
     80 implicit_return = "allow"
     81 min_ident_chars = "allow"
     82 missing_trait_methods = "allow"
     83 module_name_repetitions = "allow"
     84 option_option = "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 rustdoc-args = ["--cfg", "docsrs"]
     99 
    100 [dependencies]
    101 base64url_nopad = { version = "0.1.0", default-features = false }
    102 ed25519-dalek = { version = "2.2.0", default-features = false }
    103 hashbrown = { version = "0.15.4", default-features = false }
    104 p256 = { version = "0.13.2", default-features = false, features = ["ecdsa"] }
    105 p384 = { version = "0.13.1", default-features = false, features = ["ecdsa"] }
    106 precis-profiles = { version = "0.1.12", default-features = false }
    107 rand = { version = "0.9.2", default-features = false, features = ["thread_rng"] }
    108 rsa = { version = "0.9.8", default-features = false, features = ["sha2"] }
    109 serde = { version = "1.0.219", default-features = false, features = ["alloc"], optional = true }
    110 serde_json = { version = "1.0.141", default-features = false, features = ["alloc"], optional = true }
    111 url = { version = "2.5.4", default-features = false }
    112 
    113 [dev-dependencies]
    114 base64url_nopad = { version = "0.1.0", default-features = false, features = ["alloc"] }
    115 ed25519-dalek = { version = "2.2.0", default-features = false, features = ["alloc", "pkcs8"] }
    116 p256 = { version = "0.13.2", default-features = false, features = ["pem"] }
    117 p384 = { version = "0.13.1", default-features = false, features = ["pkcs8"] }
    118 serde_json = { version = "1.0.141", default-features = false, features = ["preserve_order"] }
    119 
    120 
    121 ### FEATURES #################################################################
    122 
    123 [features]
    124 default = ["bin", "serde"]
    125 
    126 # Provide binary (de)serialization for persistent data.
    127 bin = []
    128 
    129 # Provide constructors for types that ideally are constructed
    130 # indirectly via the bin and serde features.
    131 custom = []
    132 
    133 # Provide client (de)serialization based on JSON-motivated
    134 # data structures.
    135 serde = ["base64url_nopad/alloc", "dep:serde"]
    136 
    137 # Provide "relaxed" JSON deserialization implementations.
    138 serde_relaxed = ["serde", "dep:serde_json"]
    139 
    140 # Provide binary (de)serialization for RegistrationServerState 
    141 # and AuthenticationServerState to avoid the use of in-memory
    142 # collections for ceremony completion.
    143 serializable_server_state = ["bin"]