krypteia-quantica 0.1.0

Pure-Rust post-quantum cryptography: FIPS 203 ML-KEM, FIPS 204 ML-DSA, and FIPS 205 SLH-DSA. First-order arithmetic masking, shuffled NTT, FORS recompute-and-compare redundancy, constant-time rejection sampling. Targets embedded (no_std), STM32 M0/M4/M33, ESP32-C3 RISC-V. Zero runtime dependencies.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85"
name = "krypteia-quantica"
version = "0.1.0"
authors = ["Cédric Mesnil <cslashm@pm.me>"]
build = false
exclude = [
    "doc/papers/**",
    "doc/specs/**",
    "doc/_build/**",
    "tests/vectors/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure-Rust post-quantum cryptography: FIPS 203 ML-KEM, FIPS 204 ML-DSA, and FIPS 205 SLH-DSA. First-order arithmetic masking, shuffled NTT, FORS recompute-and-compare redundancy, constant-time rejection sampling. Targets embedded (no_std), STM32 M0/M4/M33, ESP32-C3 RISC-V. Zero runtime dependencies."
homepage = "https://codeberg.org/cslashm/krypteia"
documentation = "https://docs.rs/krypteia-quantica"
readme = "README.md"
keywords = [
    "post-quantum",
    "ml-kem",
    "ml-dsa",
    "slh-dsa",
    "no-std",
]
categories = [
    "cryptography",
    "no-std",
    "embedded",
]
license = "Apache-2.0"
repository = "https://codeberg.org/cslashm/krypteia"
resolver = "2"

[features]
asm-x86_64 = ["silentops/asm-x86_64"]
compressed-challenge = []
compressed-poly = []
default = [
    "std",
    "ml-kem",
    "ml-dsa",
    "slh-dsa",
    "sca-protected",
]
indexed-sk = []
low-mem = []
low-stack = []
ml-dsa = []
ml-kem = []
sca-ct-rejection = ["sca-protected"]
sca-fors-dummy-siblings = []
sca-fors-indices-check = []
sca-fors-redundancy = []
sca-masked-y = ["sca-protected"]
sca-protected = []
slh-dsa = []
small-secret = ["ml-kem"]
std = []
union-buffer = []

[lib]
name = "quantica"
path = "src/lib.rs"

[[example]]
name = "ml_dsa_sign_verify"
path = "examples/ml_dsa_sign_verify.rs"
required-features = ["ml-dsa"]

[[example]]
name = "ml_kem_roundtrip"
path = "examples/ml_kem_roundtrip.rs"
required-features = ["ml-kem"]

[[example]]
name = "slh_dsa_sign_verify"
path = "examples/slh_dsa_sign_verify.rs"
required-features = ["slh-dsa"]

[[test]]
name = "kat_extra"
path = "tests/kat_extra.rs"
required-features = [
    "ml-kem",
    "ml-dsa",
]

[[test]]
name = "ml_dsa_kat"
path = "tests/ml_dsa_kat.rs"
required-features = ["ml-dsa"]

[[test]]
name = "ml_kem_kat"
path = "tests/ml_kem_kat.rs"
required-features = ["ml-kem"]

[[test]]
name = "negative"
path = "tests/negative.rs"
required-features = [
    "ml-kem",
    "ml-dsa",
    "slh-dsa",
    "std",
]

[[test]]
name = "slh_dsa_kat"
path = "tests/slh_dsa_kat.rs"
required-features = ["slh-dsa"]

[[test]]
name = "wycheproof"
path = "tests/wycheproof.rs"
required-features = [
    "ml-kem",
    "ml-dsa",
]

[dependencies.silentops]
version = "0.1.0"
package = "krypteia-silentops"