rustls-platform-verifier 0.4.0

rustls-platform-verifier supports verifying TLS certificates in rustls with the operating system verifier
Documentation
[package]
name = "rustls-platform-verifier"
version = "0.4.0"
authors = ["ComplexSpaces <complexspacescode@gmail.com>", "1Password"]
description = "rustls-platform-verifier supports verifying TLS certificates in rustls with the operating system verifier"
keywords = ["tls", "certificate", "verification", "os", "native"]
repository = "https://github.com/rustls/rustls-platform-verifier"
license = "MIT OR Apache-2.0"
edition = "2021"
rust-version = "1.64.0"

[lib]
name = "rustls_platform_verifier"
# Note: The `cdylib` specification is for testing only. The shared library
# is not expected to have a stable API.
crate-type = ["cdylib", "rlib"]

[features]
# Enables a C interface to use for testing where `cargo` can't be used.
# This feature is not stable, nor is the interface exported when it is enabled.
# Do not rely on this or use it in production.
ffi-testing = ["android_logger", "rustls/ring", "paste"]
# Enables APIs that expose lower-level verifier types for debugging purposes.
dbg = []
# Enables `log::debug` base64-encoded logging of all end-entity certificates processed
# by the platform's verifier.
cert-logging = ["base64"]
# Used for nicely documenting the Android-specific APIs. This feature is not stable.
docsrs = ["jni"]

[dependencies]
rustls = { version = "0.23.16", default-features = false, features = ["std"] }
log = { version = "0.4" }
base64 = { version = "0.22", optional = true } # Only used when the `cert-logging` feature is enabled.
jni = { version = "0.19", default-features = false, optional = true } # Only used during doc generation
once_cell = "1.9"
paste = { version = "1.0", default-features = false, optional = true } # Only used when `ffi-testing` feature is enabled

[target.'cfg(all(unix, not(target_os = "android"), not(target_vendor = "apple"), not(target_arch = "wasm32")))'.dependencies]
rustls-native-certs = "0.7"
webpki = { package = "rustls-webpki", version = "0.102", default-features = false }

[target.'cfg(target_os = "android")'.dependencies]
rustls-platform-verifier-android = { path = "../android-release-support", version = "0.1.0" }
jni = { version = "0.19", default-features = false }
webpki = { package = "rustls-webpki", version = "0.102", default-features = false }
android_logger = { version = "0.13", optional = true } # Only used during testing.

[target.'cfg(target_arch = "wasm32")'.dependencies]
webpki = { package = "rustls-webpki", version = "0.102", default-features = false }
webpki-root-certs = "0.26"

# BSD targets require webpki-roots-certs for the real-world verification tests.
[target.'cfg(target_os = "freebsd")'.dev-dependencies]
webpki-root-certs = "0.26"

[target.'cfg(any(target_vendor = "apple"))'.dependencies]
core-foundation = "0.9"
core-foundation-sys = "0.8"
security-framework = { version = "2.10", features = ["OSX_10_14"] }
security-framework-sys = { version = "2.10", features = ["OSX_10_14"] }

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.52", default-features = false, features = ["Win32_Foundation", "Win32_Security_Cryptography"] }

[dev-dependencies]
rustls = { version = "0.23", default-features = false, features = ["ring"] }
paste = { version = "1.0", default-features = false } # Only used when `ffi-testing` feature is enabled

[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]
features = ["dbg", "docsrs"]