[package] name = "opaque-lattice" version = "0.1.0" edition = "2024" description = "Post-quantum OPAQUE implementation using lattice-based cryptography" license = "MIT OR Apache-2.0" [dependencies] # Native backend (C FFI - faster but not WASM compatible) pqcrypto-kyber = { version = "0.8", features = ["serialization"], optional = true } pqcrypto-dilithium = { version = "0.5", features = ["serialization"], optional = true } pqcrypto-traits = { version = "0.3", optional = true } # WASM backend (pure Rust - WASM compatible) fips203 = { version = "0.4", default-features = false, features = ["ml-kem-768", "default-rng"], optional = true } fips204 = { version = "0.4", default-features = false, features = ["ml-dsa-65", "default-rng"], optional = true } getrandom_03 = { package = "getrandom", version = "0.3", features = ["wasm_js"], optional = true } getrandom_02 = { package = "getrandom", version = "0.2", features = ["js"], optional = true } sha2 = "0.10" sha3 = "0.10" hkdf = "0.12" hmac = "0.12" argon2 = "0.5" rand = "0.9.2" serde = { version = "1.0", features = ["derive"] } hex = "0.4" thiserror = "2" zeroize = { version = "1", features = ["derive"] } subtle = "2.5" anyhow = "1.0.100" [dev-dependencies] tokio = { version = "1", features = ["full", "test-util"] } rand_chacha = "0.9.0" criterion = "0.8.1" dudect-bencher = "0.6" [[bench]] name = "oprf_benchmark" harness = false [[bench]] name = "timing_verification" harness = false [features] default = ["native"] # Native backend using pqcrypto (C FFI) - faster, not WASM compatible native = ["dep:pqcrypto-kyber", "dep:pqcrypto-dilithium", "dep:pqcrypto-traits"] # WASM backend using fips203/fips204 (pure Rust) - WASM compatible wasm = ["dep:fips203", "dep:fips204", "dep:getrandom_03", "dep:getrandom_02"] server = ["dep:axum", "dep:tokio", "dep:tower-http"] debug-trace = [] [dependencies.axum] version = "0.8" optional = true [dependencies.tokio] version = "1" features = ["full"] optional = true [dependencies.tower-http] version = "0.6" features = ["cors", "fs"] optional = true