faest 0.2.2

Pure Rust implementation of the FAEST post-quantum secure digital signature scheme
Documentation
[package]
name = "faest"
description = "Pure Rust implementation of the FAEST post-quantum secure digital signature scheme"
version = "0.2.2"
authors = [
  "Sebastian Ramacher <sebastian.ramacher@ait.ac.at>",
  "Clément Naves <clement.naves@ait.ac.at>",
  "Alessandro Colombo <alessandro.colombo@ait.ac.at>",
]
homepage = "https://faest.info"
repository = "https://github.com/ait-crypto/faest-rs"
license = "Apache-2.0 OR MIT"
edition = "2024"
rust-version = "1.85"
keywords = ["signatures", "FAEST", "post-quantum"]
categories = ["cryptography"]
exclude = ["tests/data/*.json", "tests/data/PQCsignKAT_*.rsp"]

[dependencies]
aes = { version = "0.8", default-features = false }
ctr = { version = "0.9", default-features = false }
serde = { version = "1", optional = true, default-features = false, features = [
  "derive",
] }
sha3 = { version = "0.10", default-features = false, features = ["asm"] }
signature = { version = "2", default-features = false, features = ["alloc"] }
generic-array = { version = "1", default-features = false, features = [
  "alloc",
] }
rand_core = { version = "0.6", default-features = false }
rand = { version = "0.8", optional = true, default-features = false }
zeroize = { version = "1.2", optional = true, default-features = false, features = [
  "derive",
] }
pastey = "0.2"
itertools = { version = "0.14", default-features = false }
libc = { version = "0.2", optional = true, default-features = false }
bitvec = { version = "1.0.1", default-features = false, features = ["alloc"] }

[target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))'.dependencies]
cpufeatures = "0.2.17"

[dev-dependencies]
generic-tests = "0.1"
hex = { version = "0.4", default-features = false, features = ["alloc"] }
nist-pqc-seeded-rng = { version = "0.2.1", default-features = false }
rand = { version = "0.8", default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = "1"

[features]
default = ["zeroize", "randomized-signer", "opt-simd", "std"]
std = ["itertools/use_std", "ctr/std", "rand/std_rng", "rand/std"]
# zeroize secret keys
zeroize = ["dep:zeroize", "aes/zeroize", "ctr/zeroize"]
# implement randomized signer interfaces of the signature crate
randomized-signer = ["signature/rand_core"]
# provide serialization via serde
serde = ["dep:serde", "generic-array/serde"]
# enable SIMD optimization implementations
# (opt-simd currently implies an x86(-64) machine, so no_std doesn't make too much sense)
opt-simd = ["std"]
# provide C interface via cargo-c
capi = ["dep:rand", "dep:libc", "dep:zeroize", "rand/std_rng", "rand/std"]

[[example]]
name = "simple"
required-features = ["randomized-signer", "std"]

[[test]]
name = "nist"
required-features = ["randomized-signer", "std"]

[profile.dev.package."*"]
opt-level = 3

[profile.bench]
lto = "fat"

[profile.profiling]
inherits = "release"
debug = true
strip = false

[package.metadata.docs.rs]
all-features = true

[package.metadata.capi.library]
version = "1.0.0"

[workspace]
members = ["faest-benches"]