[dependencies.arc-swap]
optional = true
version = "1"
[dependencies.base64ct]
features = ["alloc"]
optional = true
version = "1.8"
[dependencies.fastrand]
optional = true
version = "2"
[dependencies.hyper-util]
features = ["tokio"]
optional = true
version = "0.1"
[dependencies.jsonwebtoken]
default-features = false
optional = true
version = "10"
[dependencies.log]
optional = true
version = "0.4"
[dependencies.pkcs8]
optional = true
version = "0.10"
[dependencies.prost]
optional = true
version = "0.14"
[dependencies.prost-types]
optional = true
version = "0.14"
[dependencies.serde]
features = ["derive"]
optional = true
version = "1"
[dependencies.serde_json]
optional = true
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.time]
optional = true
version = "0.3"
[dependencies.tokio]
default-features = false
features = ["rt", "net", "time", "sync"]
optional = true
version = "1"
[dependencies.tokio-stream]
optional = true
version = "0.1"
[dependencies.tokio-util]
optional = true
version = "0.7"
[dependencies.tonic]
default-features = false
features = ["transport", "codegen"]
optional = true
version = "0.14"
[dependencies.tonic-prost]
optional = true
version = "0.14"
[dependencies.tower]
features = ["util"]
optional = true
version = "0.5"
[dependencies.tracing]
optional = true
version = "0.1"
[dependencies.url]
optional = true
version = "2"
[dependencies.x509-parser]
optional = true
version = "0.18"
[dependencies.zeroize]
features = ["zeroize_derive"]
optional = true
version = "1"
[dev-dependencies.base64ct]
version = "1"
[dev-dependencies.once_cell]
version = "1"
[dev-dependencies.openssl]
features = ["vendored"]
version = "0.10"
[dev-dependencies.p256]
features = ["pkcs8"]
version = "0.13"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
features = ["macros", "rt", "rt-multi-thread"]
version = "1"
[features]
default = []
jwt = ["dep:serde", "dep:serde_json", "dep:time", "dep:base64ct", "dep:zeroize"]
jwt-source = ["workload-api", "jwt"]
jwt-verify-aws-lc-rs = ["jwt", "dep:jsonwebtoken", "jsonwebtoken/aws_lc_rs"]
jwt-verify-rust-crypto = ["jwt", "dep:jsonwebtoken", "jsonwebtoken/rust_crypto"]
logging = ["dep:log"]
tracing = ["dep:tracing", "logging"]
transport = ["dep:url"]
transport-grpc = ["transport", "dep:tokio", "dep:tonic", "dep:tower", "dep:hyper-util"]
workload-api = ["workload-api-full"]
workload-api-core = ["transport-grpc", "dep:tokio", "dep:tokio-stream", "dep:tokio-util", "dep:arc-swap", "dep:fastrand", "dep:tonic-prost", "dep:prost", "dep:prost-types"]
workload-api-full = ["workload-api-x509", "workload-api-jwt"]
workload-api-jwt = ["workload-api-core", "jwt"]
workload-api-x509 = ["workload-api-core", "x509"]
x509 = ["dep:x509-parser", "dep:pkcs8", "dep:zeroize"]
x509-source = ["workload-api"]
[lib]
name = "spiffe"
path = "src/lib.rs"
[package]
authors = ["Max Lambrecht <maxlambrecht@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["authentication", "network-programming"]
description = "SPIFFE identity types and sources for Rust"
documentation = "https://docs.rs/spiffe"
edition = "2021"
keywords = ["spiffe", "identity", "authentication", "x509", "jwt"]
license = "Apache-2.0"
name = "spiffe"
readme = "README.md"
repository = "https://github.com/maxlambrecht/rust-spiffe"
rust-version = "1.85"
version = "0.11.1"
[package.metadata.docs.rs]
features = ["x509-source", "jwt-source", "jwt-verify-rust-crypto"]
no-default-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[test]]
name = "jwt_source"
path = "tests/jwt_source.rs"
[[test]]
name = "workload_api_client"
path = "tests/workload_api_client.rs"
[[test]]
name = "x509_bundle"
path = "tests/x509_bundle.rs"
[[test]]
name = "x509_source"
path = "tests/x509_source.rs"
[[test]]
name = "x509_svid"
path = "tests/x509_svid.rs"