# 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]
edition = "2024"
rust-version = "1.95"
name = "purecrypto"
version = "0.1.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A pure-Rust cryptography toolkit with no foreign-code dependencies, from constant-time primitives up to keys, X.509 and TLS."
readme = "README.md"
keywords = [
    "crypto",
    "cryptography",
    "no-std",
    "constant-time",
]
categories = [
    "cryptography",
    "no-std::no-alloc",
]
license = "MIT"
repository = "https://github.com/KarpelesLab/purecrypto"

[features]
alloc = []
bignum = []
cipher = []
cli = [
    "std",
    "hash",
    "rng",
    "rsa",
    "ec",
    "der",
    "x509",
    "tls",
    "dtls",
    "quic",
    "kdf",
    "cipher",
]
default = [
    "std",
    "hash",
    "cipher",
    "kdf",
    "bignum",
    "rng",
    "rsa",
    "der",
    "dh",
    "x509",
    "ec",
    "tls",
    "dtls",
    "mlkem",
    "mldsa",
    "slhdsa",
    "cli",
]
der = []
dh = [
    "bignum",
    "rng",
    "alloc",
]
dtls = ["tls"]
ec = [
    "bignum",
    "rng",
    "hash",
    "alloc",
]
ffi = [
    "std",
    "hash",
    "rng",
    "rsa",
    "ec",
    "der",
    "x509",
    "tls",
    "dtls",
    "quic",
    "mldsa",
    "slhdsa",
    "mlkem",
    "kdf",
    "cipher",
]
hash = []
kdf = [
    "hash",
    "cipher",
]
mldsa = [
    "hash",
    "rng",
    "alloc",
]
mlkem = [
    "hash",
    "rng",
]
quic = [
    "tls",
    "std",
]
rng = ["hash"]
rsa = [
    "bignum",
    "rng",
    "hash",
]
slhdsa = [
    "hash",
    "rng",
    "alloc",
]
std = ["alloc"]
tls = [
    "cipher",
    "hash",
    "kdf",
    "ec",
    "rsa",
    "x509",
    "der",
    "rng",
    "mlkem",
    "alloc",
]
x509 = [
    "der",
    "rsa",
    "hash",
    "alloc",
    "ec",
]

[lib]
name = "purecrypto"
path = "src/lib.rs"

[[bin]]
name = "purecrypto"
path = "src/bin/purecrypto/main.rs"
required-features = ["cli"]

[[example]]
name = "pss_interop"
path = "examples/pss_interop.rs"

[[example]]
name = "selfsigned_cert"
path = "examples/selfsigned_cert.rs"

[[example]]
name = "tls_get"
path = "examples/tls_get.rs"

[[example]]
name = "tls_loopback"
path = "examples/tls_loopback.rs"

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

[lints.rust]
missing_docs = "warn"
unreachable_pub = "warn"
unsafe_code = "deny"

[profile.release]
lto = "thin"
