skyauth 0.3.4

High-assurance, formally verified OAuth 2.1 and RFC 9449 DPoP authentication engine for the AT Protocol (Bluesky)
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.88"
name = "skyauth"
version = "0.3.4"
authors = ["Mike <mike@example.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-assurance, formally verified OAuth 2.1 and RFC 9449 DPoP authentication engine for the AT Protocol (Bluesky)"
homepage = "https://github.com/mike10010100/skyauth"
documentation = "https://docs.rs/skyauth"
readme = "README.md"
keywords = [
    "atproto",
    "bluesky",
    "oauth",
    "dpop",
    "pkce",
]
categories = [
    "authentication",
    "cryptography",
    "web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/mike10010100/skyauth"

[features]
actix = ["dep:actix-web"]
axum = ["dep:axum"]
default = []
tower = [
    "dep:tower",
    "dep:tower-service",
    "dep:tower-layer",
]

[lib]
name = "skyauth"
path = "src/lib.rs"

[[test]]
name = "dpop_rfc9449_vectors"
path = "tests/dpop_rfc9449_vectors.rs"

[[test]]
name = "formal_verification_tests"
path = "tests/formal_verification_tests.rs"

[[test]]
name = "framework_integration_tests"
path = "tests/framework_integration_tests.rs"

[[test]]
name = "identity_discovery_ssrf_tests"
path = "tests/identity_discovery_ssrf_tests.rs"

[[test]]
name = "m2_challenger_ssrf_dns_stress_tests"
path = "tests/m2_challenger_ssrf_dns_stress_tests.rs"

[[test]]
name = "m3_challenger_auto_nonce_and_par_stress_tests"
path = "tests/m3_challenger_auto_nonce_and_par_stress_tests.rs"

[[test]]
name = "m3_challenger_token_rotation_stress_tests"
path = "tests/m3_challenger_token_rotation_stress_tests.rs"

[[test]]
name = "m4_adversarial_challenge_tests"
path = "tests/m4_adversarial_challenge_tests.rs"

[[test]]
name = "m4_challenger_sharded_store_stress_tests"
path = "tests/m4_challenger_sharded_store_stress_tests.rs"

[[test]]
name = "m5_challenger_ast_and_roundtrip_stress_tests"
path = "tests/m5_challenger_ast_and_roundtrip_stress_tests.rs"

[[test]]
name = "m5_challenger_spec_drift_stress_tests"
path = "tests/m5_challenger_spec_drift_stress_tests.rs"

[[test]]
name = "m6_challenger_anti_vacuity_and_concurrency_stress_tests"
path = "tests/m6_challenger_anti_vacuity_and_concurrency_stress_tests.rs"

[[test]]
name = "m6_challenger_formal_verification_and_race_stress_tests"
path = "tests/m6_challenger_formal_verification_and_race_stress_tests.rs"

[[test]]
name = "m7_challenger2_e2e_fuzzing_and_concurrency_stress_tests"
path = "tests/m7_challenger2_e2e_fuzzing_and_concurrency_stress_tests.rs"

[[test]]
name = "par_and_token_exchange_tests"
path = "tests/par_and_token_exchange_tests.rs"

[[test]]
name = "pkce_rfc7636_vectors"
path = "tests/pkce_rfc7636_vectors.rs"

[[test]]
name = "schema_compliance_tests"
path = "tests/schema_compliance_tests.rs"

[[test]]
name = "sealed_box_tests"
path = "tests/sealed_box_tests.rs"

[[test]]
name = "secret_redaction_and_zeroization_tests"
path = "tests/secret_redaction_and_zeroization_tests.rs"

[[test]]
name = "sharded_store_tests"
path = "tests/sharded_store_tests.rs"

[[test]]
name = "tier1_feature_tests"
path = "tests/tier1_feature_tests.rs"

[[test]]
name = "tier2_boundary_tests"
path = "tests/tier2_boundary_tests.rs"

[[test]]
name = "tier3_pairwise_tests"
path = "tests/tier3_pairwise_tests.rs"

[[test]]
name = "tier4_workload_tests"
path = "tests/tier4_workload_tests.rs"

[[test]]
name = "tier5_adversarial_tests"
path = "tests/tier5_adversarial_tests.rs"

[[test]]
name = "verification_tag_inventory_tests"
path = "tests/verification_tag_inventory_tests.rs"

[dependencies.actix-web]
version = "4.9"
optional = true
default-features = false

[dependencies.aes-gcm]
version = "0.10"
features = [
    "aes",
    "alloc",
    "getrandom",
]
default-features = false

[dependencies.ahash]
version = "0.8"

[dependencies.axum]
version = "0.7"
features = [
    "json",
    "query",
    "tokio",
]
optional = true
default-features = false

[dependencies.base64]
version = "0.22"
features = ["std"]
default-features = false

[dependencies.hmac]
version = "0.12"
default-features = false

[dependencies.http]
version = "1.1"

[dependencies.p256]
version = "0.13"
features = [
    "ecdsa",
    "std",
    "pkcs8",
    "pem",
]
default-features = false

[dependencies.parking_lot]
version = "0.12"

[dependencies.rand]
version = "0.8"
features = [
    "std",
    "std_rng",
]
default-features = false

[dependencies.rand_core]
version = "0.6"
features = ["std"]
default-features = false

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "rustls-tls",
]
default-features = false

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_urlencoded]
version = "0.7"

[dependencies.sha2]
version = "0.10"
default-features = false

[dependencies.subtle]
version = "2.6"
default-features = false

[dependencies.thiserror]
version = "1.0"

[dependencies.tokio]
version = "1.40"
features = [
    "rt-multi-thread",
    "net",
    "time",
    "sync",
    "macros",
]
default-features = false

[dependencies.tokio-util]
version = "0.7"

[dependencies.tower]
version = "0.5"
features = ["util"]
optional = true
default-features = false

[dependencies.tower-layer]
version = "0.3"
optional = true

[dependencies.tower-service]
version = "0.3"
optional = true

[dependencies.tracing]
version = "0.1"

[dependencies.url]
version = "2.5"
features = ["serde"]

[dependencies.zeroize]
version = "1.8"
features = ["derive"]

[dev-dependencies.hex]
version = "0.4"

[dev-dependencies.http-body-util]
version = "0.1"

[dev-dependencies.jsonschema]
version = "0.26"

[dev-dependencies.proptest]
version = "1.5"

[dev-dependencies.reqwest]
version = "0.12"
features = ["json"]
default-features = false

[dev-dependencies.serde_urlencoded]
version = "0.7"

[dev-dependencies.wiremock]
version = "0.6"

[lints.clippy.all]
level = "deny"
priority = -1

[lints.rust]
missing_docs = "deny"
unsafe_code = "forbid"

[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
    "cfg(kani)",
    "cfg(verus)",
    "cfg(verus_keep_ghost)",
]