[package]
name = "ed25519-dalek"
version = "3.0.0-pre.2"
edition = "2024"
authors = [
    "isis lovecruft <isis@patternsinthevoid.net>",
    "Tony Arcieri <bascule@gmail.com>",
    "Michael Rosenberg <michael@mrosenberg.pub>",
]
readme = "README.md"
license = "BSD-3-Clause"
repository = "https://github.com/dalek-cryptography/curve25519-dalek/tree/main/ed25519-dalek"
homepage = "https://github.com/dalek-cryptography/curve25519-dalek"
documentation = "https://docs.rs/ed25519-dalek"
keywords = ["cryptography", "ed25519", "curve25519", "signature", "ECC"]
categories = ["cryptography", "no-std"]
description = "Fast and efficient ed25519 EdDSA key generations, signing, and verification in pure Rust."
exclude = [".gitignore", "TESTVECTORS", "VALIDATIONVECTORS", "res/*"]
rust-version = "1.85"

[package.metadata.docs.rs]
rustdoc-args = [
    "--html-in-header",
    "docs/assets/rustdoc-include-katex-header.html",
    "--cfg",
    "docsrs",
]
features = ["batch", "digest", "hazmat", "pem", "serde"]

[dependencies]
curve25519-dalek = { version = "=5.0.0-pre.2", default-features = false, features = [
    "digest",
] }
ed25519 = { version = "3.0.0-rc.2", default-features = false }
signature = { version = "3.0.0-rc.5", optional = true, default-features = false }
sha2 = { version = "0.11.0-rc.3", default-features = false }
subtle = { version = "2.3.0", default-features = false }

# optional features
keccak = { version = "0.2.0-rc.0", default-features = false, optional = true }
rand_core = { version = "0.10.0-rc-2", default-features = false, optional = true }
serde = { version = "1.0", default-features = false, optional = true }
zeroize = { version = "1.5", default-features = false, optional = true }

[dev-dependencies]
curve25519-dalek = { version = "=5.0.0-pre.2", default-features = false, features = [
    "digest",
    "rand_core",
] }
x25519-dalek = { version = "=3.0.0-pre.2", default-features = false, features = [
    "static_secrets",
] }
blake2 = "0.11.0-rc.3"
sha3 = "0.11.0-rc.3"
hex = "0.4"
bincode = "1.0"
serde_json = "1.0"
criterion = { version = "0.5", features = ["html_reports"] }
hex-literal = "0.4"
rand = { version = "0.10.0-rc.5", features = ["chacha"] }
serde = { version = "1.0", features = ["derive"] }
strobe-rs = "0.5"
toml = { version = "0.9" }

[[bench]]
name = "ed25519_benchmarks"
harness = false
required-features = ["rand_core"]

[features]
default = ["fast", "zeroize"]
alloc = [
    "curve25519-dalek/alloc",
    "ed25519/alloc",
    "signature/alloc",
    "serde?/alloc",
    "zeroize?/alloc",
]

batch = ["alloc", "dep:keccak", "rand_core"]
fast = ["curve25519-dalek/precomputed-tables"]
digest = ["signature/digest"]
# Exposes the hazmat module
hazmat = []
# Turns off stricter checking for scalar malleability in signatures
legacy_compatibility = ["curve25519-dalek/legacy_compatibility"]
pkcs8 = ["ed25519/pkcs8"]
pem = ["alloc", "ed25519/pem", "pkcs8"]
rand_core = ["dep:rand_core"]
serde = ["dep:serde", "ed25519/serde"]
zeroize = ["dep:zeroize", "curve25519-dalek/zeroize"]
