rustls 0.23.15

Rustls is a modern TLS library written in Rust.
Documentation
[package]
name = "rustls"
version = "0.23.15"
edition = "2021"
rust-version = "1.63"
license = "Apache-2.0 OR ISC OR MIT"
readme = "../README.md"
description = "Rustls is a modern TLS library written in Rust."
homepage = "https://github.com/rustls/rustls"
repository = "https://github.com/rustls/rustls"
categories = ["network-programming", "cryptography"]
autobenches = false
autotests = false
exclude = ["src/testdata", "tests/**"]
build = "build.rs"

[build-dependencies]
rustversion = { version = "1.0.6", optional = true }

[dependencies]
aws-lc-rs = { version = "1.9", optional = true, default-features = false, features = ["aws-lc-sys", "prebuilt-nasm"] }
brotli = { version = "7", optional = true, default-features = false, features = ["std"] }
brotli-decompressor = { version = "4.0.1", optional = true } # 4.0.1 required for panic fix
hashbrown = { version = "0.15", optional = true, default-features = false, features = ["default-hasher", "inline-more"] }
log = { version = "0.4.8", optional = true }
# remove once our MSRV is >= 1.70
once_cell = { version = "1.16", default-features = false, features = ["alloc", "race"] }
ring = { version = "0.17", optional = true }
subtle = { version = "2.5.0", default-features = false }
webpki = { package = "rustls-webpki", version = "0.102.8", features = ["alloc"], default-features = false }
pki-types = { package = "rustls-pki-types", version = "1.10", features = ["alloc"] }
zeroize = "1.7"
zlib-rs = { version = "0.3", optional = true }

[features]
default = ["aws_lc_rs", "logging", "std", "tls12"]
std = ["webpki/std", "pki-types/std", "once_cell/std"]
logging = ["log"]
aws_lc_rs = ["dep:aws-lc-rs", "webpki/aws_lc_rs"]
aws-lc-rs = ["aws_lc_rs"] # Alias because Cargo features commonly use `-`
brotli = ["dep:brotli", "dep:brotli-decompressor", "std"]
ring = ["dep:ring", "webpki/ring"]
custom-provider = []
tls12 = []
read_buf = ["rustversion", "std"]
fips = ["aws_lc_rs", "aws-lc-rs?/fips"]
zlib = ["dep:zlib-rs"]

[dev-dependencies]
base64 = "0.22"
bencher = "0.1.5"
clap = { version = "4", features = ["derive", "env"] }
env_logger = "0.10" # 0.11 requires 1.71 MSRV even as a dev-dep (due to manifest features)
hex = "0.4"
log = "0.4.8"
num-bigint = "0.4.4"
rcgen = { version = "0.13", default-features = false, features = ["aws_lc_rs", "pem"] }
rustls-post-quantum = { path = "../rustls-post-quantum" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
time = { version = "0.3.6", default-features = false }
webpki-roots = "0.26"

[target.'cfg(not(target_env = "msvc"))'.dev-dependencies]
tikv-jemallocator = "0.6"

[[example]]
name = "bench"
path = "examples/internal/bench.rs"

[[bench]]
name = "benchmarks"
path = "benches/benchmarks.rs"
harness = false
required-features = ["ring"]

[[example]]
name = "test_ca"
path = "examples/internal/test_ca.rs"

[[test]]
name = "api"
path = "tests/runners/api.rs"

[[test]]
name = "api_ffdhe"
path = "tests/runners/api_ffdhe.rs"
required-features = ["tls12"]

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

[[test]]
name = "client_cert_verifier"
path = "tests/runners/client_cert_verifier.rs"

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

[[test]]
name = "key_log_file_env"
path = "tests/runners/key_log_file_env.rs"

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

[[test]]
name = "server_cert_verifier"
path = "tests/runners/server_cert_verifier.rs"

[[test]]
name = "unbuffered"
path = "tests/runners/unbuffered.rs"

[package.metadata.docs.rs]
# all non-default features except fips (cannot build on docs.rs environment)
features = ["read_buf", "ring"]
rustdoc-args = ["--cfg", "docsrs"]

[package.metadata.cargo_check_external_types]
allowed_external_types = [
    "rustls_pki_types",
    "rustls_pki_types::*",
]