# 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]
name = "native-tls"
version = "0.2.11"
authors = ["Steven Fackler <sfackler@gmail.com>"]
description = "A wrapper over a platform's native TLS implementation"
readme = "README.md"
license = "MIT/Apache-2.0"
repository = "https://github.com/sfackler/rust-native-tls"

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

[dev-dependencies.tempfile]
version = "3.0"

[dev-dependencies.test-cert-gen]
version = "0.7"

[features]
alpn = ["security-framework/alpn"]
vendored = ["openssl/vendored"]

[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.lazy_static]
version = "1.4.0"

[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.libc]
version = "0.2"

[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.security-framework]
version = "2.0.0"

[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.security-framework-sys]
version = "2.0.0"

[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.tempfile]
version = "3.1.0"

[target."cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))".dependencies.log]
version = "0.4.5"

[target."cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))".dependencies.openssl]
version = "0.10.29"

[target."cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))".dependencies.openssl-probe]
version = "0.1"

[target."cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))".dependencies.openssl-sys]
version = "0.9.55"

[target."cfg(target_os = \"windows\")".dependencies.schannel]
version = "0.1.17"
