[package] name = "pqc_kyber_kyberslash" version = "0.7.1" authors = ["Mitchell Berry "] edition = "2018" license = "MIT/Apache-2.0" repository = "https://github.com/Argyle-Software/kyber" documentation = "https://docs.rs/crate/pqc_kyber/" categories = ["algorithms", "cryptography", "wasm", "no-std"] description = "A rust implementation of the post-quantum Kyber KEM algorithm" keywords = ["kyber", "kem", "key-exchange", "kex", "post-quantum"] readme = "readme.md" [dependencies] rand_core = { version = "0.6.4", default-features = false } wasm-bindgen = { version = "0.2.87", optional = true } sha2 = { version = "0.10.7", optional = true , default-features = false } getrandom = {version = "0.2.10", features = ["js"], optional = true } zeroize = { version = "1.6.0", features = ["derive"], optional = true } aes = { version = "0.8.3", optional = true } ctr = { version = "0.9.2", optional = true } # Optional dev-deps, see https://github.com/rust-lang/cargo/issues/1596 criterion = { version = "0.4.0", features = ["html_reports"], optional = true } [dependencies.rand] version = "0.8.5" default-features = false features = ["getrandom"] optional = true [dev-dependencies] rand = "0.8.5" [build-dependencies] cc = {version = "1.0.73", optional = true } nasm-rs = {version = "0.2.4", optional = true } [lib] crate-type = ["cdylib", "rlib"] [[bench]] name = "api" harness = false [features] ### Security Levels ### # Defaults to "kyber768" if none selected # Will throw a compile-time error if more than one level is chosen kyber512 = [] kyber768 = [] kyber1024 = [] ### Export IND-CPA primitives # **WARNING** use with caution hazmat = [] ### Additional features ### # 90s mode uses AES256-CTR and SHA2 as primitives instead # Uses a bitslice implementation 90s = ["sha2"] # Fixslice RustCrypto AES implementation offers some additional sidechannel # attack resistance. Suggest benchmarking for comparison. 90s-fixslice = ["90s", "aes", "ctr"] # Use avx2 intrinsics on x86 architectures # Wont compile if the platform doesn't support it avx2 = ["cc"] # For compiling to wasm targets wasm = ["wasm-bindgen", "getrandom", "rand"] # Uses Netwide Assembler avx2 code instead of GAS, this offers increased # portability, you will need a nasm compiler installed. # Can be downloaded from https://www.nasm.us/ nasm = ["nasm-rs", "avx2"] # Enable std library support std = [] # For benchmarking benchmarking = ["criterion"] # Prevents leak sanitiser failing in tests [profile.test] opt-level = 2 [profile.test.package."*"] opt-level = 0 [profile.test.build-override] opt-level = 0