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"]