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