[package]
name = "clatter"
version = "2.2.0"
edition = "2021"
rust-version = "1.81.0"
license = "MIT"
description = "no_std compatible implementation of Noise protocol framework with Post-Quantum extensions"
documentation = "https://docs.rs/clatter"
repository = "https://github.com/jmlepisto/clatter"
keywords = [
"noise",
"noise-protocol",
"crypto",
"protocol",
"post-quantum",
]
categories = [
"cryptography",
"no-std",
"no-std::no-alloc",
"algorithms",
]
exclude = [
"vectors/*",
".github/*",
"tests/*",
"fuzz/*",
]
[features]
default = [
"std",
"use-aes-gcm",
"use-chacha20poly1305",
"use-sha",
"use-blake2",
"use-25519",
"use-pqclean-ml-kem",
"use-rust-crypto-ml-kem",
]
alloc = []
std = [
"alloc",
"sha2/std",
"blake2/std",
"aes-gcm/std",
"chacha20poly1305/std",
"ml-kem/std",
"zeroize/std",
"getrandom",
]
core = [
"use-aes-gcm",
"use-chacha20poly1305",
"use-sha",
"use-blake2",
"use-25519",
"use-rust-crypto-ml-kem",
]
getrandom = ["dep:getrandom"]
use-sha = ["sha2"]
use-blake2 = ["blake2"]
use-aes-gcm = ["aes-gcm"]
use-chacha20poly1305 = ["chacha20poly1305"]
use-pqclean-ml-kem = ["pqcrypto-mlkem", "pqcrypto-traits", "getrandom"]
use-rust-crypto-ml-kem = ["ml-kem"]
use-25519 = ["x25519-dalek"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
arrayvec = { version = "0.7.6", default-features = false, features = ["zeroize"] }
rand_core = "^0.6"
zeroize = { version = "1.8.1", default-features = false, features = ["zeroize_derive"] }
aes-gcm = { version = "0.10.3", default-features = false, features = ["aes"], optional = true }
blake2 = { version = "0.10.6", default-features = false, optional = true }
chacha20poly1305 = { version = "0.10.1", default-features = false, features = ["rand_core"], optional = true }
ml-kem = { version = "0.2.1", default-features = false, features = ["zeroize"], optional = true }
sha2 = { version = "0.10.9", default-features = false, optional = true }
thiserror-no-std = { version = "2.0.2", default-features = false }
x25519-dalek = { version = "2.0.1", default-features = false, features = ["static_secrets", "zeroize"], optional = true }
pqcrypto-mlkem = { version = "0.1.1", default-features = false, optional = true }
pqcrypto-traits = { version = "0.3.5", default-features = false, optional = true }
displaydoc = { version = "0.2.5", default-features = false }
getrandom = { version = "0.3.3", optional = true }
[dev-dependencies]
rand = "0.8.5"
[workspace]
members = [
"fuzz",
"vectors",
"tests",
]