[package]
name = "dcrypt"
version.workspace = true
edition.workspace = true
authors.workspace = true
description.workspace = true
repository.workspace = true
license.workspace = true
readme.workspace = true
categories.workspace = true
keywords.workspace = true
[dependencies]
dcrypt-api = { version = "=1.2.3", path = "crates/api" }
dcrypt-common = { version = "=1.2.3", path = "crates/common" }
dcrypt-internal = { version = "=1.2.3", path = "crates/internal" }
dcrypt-params = { version = "=1.2.3", path = "crates/params" }
dcrypt-algorithms = { version = "=1.2.3", path = "crates/algorithms", optional = true }
dcrypt-symmetric = { version = "=1.2.3", path = "crates/symmetric", optional = true }
dcrypt-kem = { version = "=1.2.3", path = "crates/kem", optional = true }
dcrypt-sign = { version = "=1.2.3", path = "crates/sign", optional = true }
dcrypt-pke = { version = "=1.2.3", path = "crates/pke", optional = true }
dcrypt-hybrid = { version = "=1.2.3", path = "crates/hybrid", optional = true }
rand = { workspace = true, optional = true }
zeroize = { workspace = true }
subtle = { workspace = true }
serde = { workspace = true, optional = true }
thiserror = { workspace = true, optional = true }
[features]
default = ["std", "traditional"]
std = [
"rand?/std",
"dcrypt-api/std",
"dcrypt-common/std",
"dcrypt-internal/std",
"dcrypt-algorithms?/std",
"dcrypt-symmetric?/std",
"dcrypt-kem?/std",
"dcrypt-sign?/std",
"dcrypt-pke?/std",
"dcrypt-hybrid?/std"
]
traditional = ["dep:dcrypt-algorithms", "dep:dcrypt-symmetric", "dcrypt-kem?/traditional", "dcrypt-sign?/traditional", "dep:dcrypt-pke"]
post-quantum = ["dcrypt-kem?/post-quantum", "dcrypt-sign?/post-quantum"]
hybrid = ["dep:dcrypt-hybrid", "traditional", "post-quantum"]
algorithms = ["dep:dcrypt-algorithms"]
symmetric = ["dep:dcrypt-symmetric"]
kem = ["dep:dcrypt-kem"]
sign = ["dep:dcrypt-sign"]
pke = ["dep:dcrypt-pke"]
alloc = []
serde = ["dep:serde", "dep:thiserror"]
full = ["std", "alloc", "serde", "traditional", "post-quantum", "hybrid", "algorithms", "symmetric", "kem", "sign", "pke"]
[workspace]
members = [
"crates/api",
"crates/common",
"crates/internal",
"crates/params",
"crates/algorithms",
"crates/symmetric",
"crates/kem",
"crates/sign",
"crates/hybrid",
"crates/pke",
"crates/utils",
"tests"
]
resolver = "2"
[workspace.package]
version = "1.2.3"
edition = "2021"
authors = ["Heath Ledger"]
description = "dcrypt is a pure-Rust, software-only cryptography library providing both classical and post-quantum primitives with a focus on security, hybrid KEMs/signatures, and memory-safe, no-FFI design."
repository = "https://github.com/ioi-foundation/dcrypt"
license = "Apache-2.0"
readme = "README.md"
categories = ["cryptography", "no-std"]
keywords = ["cryptography", "post-quantum", "crypto"]
[workspace.dependencies]
rand = { version = "0.8.5", default-features = false }
rand_chacha = "0.3.1"
zeroize = { version = "1.8.1", features = ["zeroize_derive"] }
subtle = { version = "2.6.1", default-features = false }
serde = { version = "1.0.219", features = ["derive"] }
thiserror = { version = "1.0.69" }
[dev-dependencies]
criterion = "0.5"
proptest = "1.0"
[workspace.metadata.release]
shared-version = true
dependent-version = "upgrade"
push = false
tag = false
publish = false
consolidate-commits = true
pre-release-commit-message = "chore: release version {{version}}"
sign-commit = false
sign-tag = false
[package.metadata.release]
publish = true