attested-request 0.1.0

Sign and verify World App attested-key canonical requests (TFH RFC 9421 integrity profile).
Documentation
[package]
name = "attested-request"
description = "Sign and verify World App attested-key canonical requests (TFH RFC 9421 integrity profile)."
edition.workspace = true
rust-version.workspace = true
version.workspace = true
authors.workspace = true
readme.workspace = true
exclude.workspace = true
license.workspace = true
license-file.workspace = true
homepage.workspace = true
repository.workspace = true
keywords = ["rfc9421", "http-signatures", "app-attest", "attestation"]
categories = ["authentication", "cryptography", "web-programming::http-server"]

[features]
default = []
# An `IssuerKeys` implementation that fetches and caches an Attestation Gateway JWKS over HTTPS.
remote-jwks = ["dep:reqwest", "dep:tokio", "dep:arc-swap", "dep:tracing"]
# Software signers and a fake Attestation Gateway, for tests in this and downstream crates.
test-util = []

[dependencies]
arc-swap = { workspace = true, optional = true }
base64.workspace = true
ciborium.workspace = true
getrandom.workspace = true
http.workspace = true
jsonwebtoken.workspace = true
p256.workspace = true
reqwest = { workspace = true, optional = true }
serde.workspace = true
serde_bytes.workspace = true
serde_json.workspace = true
sfv.workspace = true
sha2.workspace = true
thiserror.workspace = true
tokio = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }

[dev-dependencies]
attested-request = { path = ".", features = ["remote-jwks", "test-util"] }
tokio.workspace = true
wiremock.workspace = true

[[example]]
name = "generate-vectors"
required-features = ["test-util"]

[lints]
workspace = true