[package]
authors = ["Brenden Matthews <brenden@brndn.io>"]
categories = ["cryptography", "algorithms"]
description = "Don't Roll Your Own Crypto: pure-Rust, hard to misuse cryptography library"
documentation = "https://docs.rs/dryoc"
edition = "2021"
keywords = ["cryptography", "nacl", "libsodium", "curve25519", "crypto_box"]
license = "MIT"
name = "dryoc"
readme = "README.md"
repository = "https://github.com/brndnmtthws/dryoc"
rust-version = "1.56"
version = "0.7.1"

[dependencies]
base64 = { version = "0.21", optional = true }
bitflags = "2.3"
chacha20 = { version = "0.9", features = ["zeroize"] }
curve25519-dalek = "4.1.3"
generic-array = "0.14"
lazy_static = "1"
rand_core = { version = "0.9", features = ["os_rng"] }
salsa20 = { version = "0.10", features = ["zeroize"] }
serde = { version = "1.0", optional = true, features = ["derive"] }
sha2 = "0.10"
subtle = "2.4"
zeroize = { version = "1.6", features = ["zeroize_derive"] }

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = [
  "impl-default",
  "memoryapi",
  "minwindef",
  "std",
  "sysinfoapi",
  "winnt",
] }

[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
base64 = "0.21"
bincode = "1"
hex = "0.4"
libc = "0.2"
libsodium-sys = "0.2"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1"
sodiumoxide = "0.2"
static_assertions = "1.1"
num-bigint = { version = "0.4", features = ["rand"] }
rand = "0.9"

[features]
default = ["u64_backend"]
nightly = []
simd_backend = ["sha2/asm"]
u64_backend = []

[package.metadata.docs.rs]
# docs.rs uses nightly, enable feature flag to get all the juicy docs
features = ["nightly", "serde", "base64"]
