lib-q 0.0.2

Post-quantum cryptography library
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.94.1"
name = "lib-q"
version = "0.0.2"
authors = [
    "Enkom Tech",
    "Nexlab-One",
]
build = "build.rs"
exclude = ["/target"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Post-quantum cryptography library"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/Enkom-Tech/libQ"

[package.metadata.wasm-pack.profile.release]
wasm-opt = [
    "-Oz",
    "--enable-bulk-memory",
]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
all-algorithms = [
    "ml-kem",
    "ml-dsa",
    "mldsa44",
    "mldsa65",
    "mldsa87",
    "slh-dsa",
    "cb-kem",
    "hqc",
    "fn-dsa",
    "saturnin",
    "duplex-sponge-aead",
    "tweak-aead",
    "romulus",
    "zkp",
]
alloc = []
cb-kem = [
    "dep:lib-q-cb-kem",
    "lib-q-cb-kem/alloc",
    "lib-q-cb-kem/zeroize",
    "lib-q-cb-kem/cbkem348864",
    "lib-q-cb-kem/getrandom",
    "lib-q-cb-kem/rand",
]
default = ["std"]
dev = [
    "experimental",
    "tests",
]
duplex-sponge-aead = ["lib-q-aead/duplex-sponge-aead"]
experimental = []
fn-dsa = [
    "dep:lib-q-fn-dsa",
    "lib-q-sig/fn-dsa",
]
full = [
    "std",
    "wasm",
    "rand",
    "log",
    "all-algorithms",
]
getrandom = ["lib-q-core/getrandom"]
hpke = [
    "dep:lib-q-hpke",
    "lib-q-hpke/std",
]
hpke-duplex-aead = [
    "hpke",
    "lib-q-hpke/duplex-sponge-aead",
]
hqc = [
    "dep:lib-q-hqc",
    "lib-q-hqc/hqc",
    "lib-q-kem/hqc",
]
log = []
ml-dsa = ["lib-q-sig/ml-dsa"]
ml-kem = ["lib-q-kem/ml-kem"]
mldsa44 = ["lib-q-ml-dsa/mldsa44"]
mldsa65 = ["lib-q-ml-dsa/mldsa65"]
mldsa87 = ["lib-q-ml-dsa/mldsa87"]
no_std = []
pilot-insecure-prf-transcript = [
    "ring-sig",
    "prf",
    "lib-q-ring-sig/pilot-insecure-prf-transcript",
]
prf = ["dep:lib-q-prf"]
rand = []
random = [
    "dep:lib-q-random",
    "lib-q-random/std",
]
random-custom-entropy = [
    "dep:lib-q-random",
    "lib-q-random/custom-entropy",
]
relaxed_entropy_validation = ["lib-q-core/relaxed_entropy_validation"]
ring-sig = [
    "dep:lib-q-ring-sig",
    "lib-q-ring-sig/std",
]
romulus = ["lib-q-aead/romulus"]
saturnin = ["lib-q-aead/saturnin"]
security-hardened = [
    "zeroize",
    "all-algorithms",
]
simd128 = ["lib-q-ml-dsa/simd128"]
simd256 = ["lib-q-ml-dsa/simd256"]
slh-dsa = [
    "lib-q-sig/slh-dsa",
    "lib-q-core/slh-dsa",
]
slh-dsa-std = [
    "lib-q-sig/slh-dsa-std",
    "lib-q-core/slh-dsa",
]
std = [
    "alloc",
    "lib-q-sig/std",
    "lib-q-zkp/std",
]
tests = []
tweak-aead = ["lib-q-aead/tweak-aead"]
wasm = [
    "alloc",
    "wasm-bindgen",
    "js-sys",
    "web-sys",
    "lib-q-hash/wasm_js",
    "lib-q-core/wasm",
    "lib-q-core/wasm_getrandom",
    "lib-q-core/slh-dsa",
    "lib-q-utils/wasm_js",
    "lib-q-sig/wasm",
    "lib-q-sig/slh-dsa-wasm",
    "lib-q-zkp/wasm",
    "lib-q-aead/wasm",
    "lib-q-hpke?/wasm",
    "lib-q-hqc?/wasm",
    "lib-q-cb-kem?/wasm",
    "lib-q-ring-sig?/wasm",
    "lib-q-prf?/wasm",
    "lib-q-random?/wasm",
]
wasm_js = [
    "wasm",
    "lib-q-hash/wasm_js",
    "lib-q-core/wasm_getrandom",
    "lib-q-utils/wasm_js",
]
zeroize = ["lib-q-hash/zeroize"]
zkp = ["lib-q-zkp/zkp"]
zkp-parallel = [
    "zkp",
    "lib-q-zkp/parallel",
]
zkp-plonky = [
    "zkp",
    "lib-q-zkp/plonky",
]
zkp-plonky-batch-stark = [
    "zkp",
    "lib-q-zkp/plonky-batch-stark",
]
zkp-plonky-keccak-air = [
    "zkp",
    "lib-q-zkp/plonky-keccak-air",
]
zkp-plonky-lookup = [
    "zkp",
    "lib-q-zkp/plonky-lookup",
]
zkp-plonky-uni-stark = [
    "zkp",
    "lib-q-zkp/plonky-uni-stark",
]
zkp-recursive-experimental = [
    "zkp",
    "lib-q-zkp/recursive-proofs-experimental",
]

[lib]
name = "libq"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[[test]]
name = "api_surface_tests"
path = "tests/api_surface_tests.rs"
required-features = ["all-algorithms"]

[[test]]
name = "hash_integration_tests"
path = "tests/hash_integration_tests.rs"

[[test]]
name = "privacy_protocol_integration_tests"
path = "tests/privacy_protocol_integration_tests.rs"

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

[[test]]
name = "zkp_plonky_umbrella_tests"
path = "tests/zkp_plonky_umbrella_tests.rs"
required-features = ["zkp-plonky"]

[dependencies.js-sys]
version = "0.3.98"
optional = true

[dependencies.lib-q-aead]
version = "0.0.2"

[dependencies.lib-q-cb-kem]
version = "0.0.2"
optional = true

[dependencies.lib-q-core]
version = "0.0.2"
features = ["rand"]

[dependencies.lib-q-fn-dsa]
version = "0.0.2"
optional = true

[dependencies.lib-q-hash]
version = "0.0.2"

[dependencies.lib-q-hpke]
version = "0.0.2"
optional = true

[dependencies.lib-q-hqc]
version = "0.0.2"
optional = true
default-features = false

[dependencies.lib-q-keccak]
version = "0.0.2"
default-features = false

[dependencies.lib-q-kem]
version = "0.0.2"

[dependencies.lib-q-ml-dsa]
version = "0.0.2"

[dependencies.lib-q-prf]
version = "0.0.2"
optional = true

[dependencies.lib-q-random]
version = "0.0.3"
optional = true

[dependencies.lib-q-ring-sig]
version = "0.0.2"
optional = true
default-features = false

[dependencies.lib-q-sig]
version = "0.0.2"
features = [
    "alloc",
    "ml-dsa",
    "slh-dsa",
]
default-features = false

[dependencies.lib-q-utils]
version = "0.0.2"

[dependencies.lib-q-zkp]
version = "0.0.2"
features = [
    "alloc",
    "zkp",
]
default-features = false

[dependencies.wasm-bindgen]
version = "0.2.121"
optional = true

[dependencies.web-sys]
version = "0.3.98"
features = ["console"]
optional = true

[dev-dependencies.lib-q-lattice-zkp]
version = "0.0.2"

[dev-dependencies.lib-q-ml-kem]
version = "0.0.2"
features = [
    "std",
    "random",
]
default-features = false

[dev-dependencies.lib-q-ring]
version = "0.0.2"

[dev-dependencies.lib-q-ring-sig]
version = "0.0.2"

[dev-dependencies.rand_chacha]
version = "0.10.0"
default-features = false

[dev-dependencies.rand_core]
version = "0.10.1"
default-features = false

[dev-dependencies.wasm-bindgen-test]
version = "0.3.71"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
version = "0.8.2"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.proptest]
version = "1.11.0"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
    "cfg(hax)",
    "cfg(eurydice)",
    "cfg(doc_cfg)",
    "cfg(simd128)",
    "cfg(simd256)",
    "cfg(aarch64)",
    "cfg(x86_64)",
    'cfg(feature, values("cb-kem"))',
    'cfg(feature, values("zkp-plonky", "zkp-plonky-keccak-air", "zkp-plonky-lookup", "zkp-plonky-uni-stark", "zkp-plonky-batch-stark"))',
]