[workspace] members = [ "sys/hacl", "sys/libjade", "sys/platform", "sys/pqclean", "sys/lib25519", "benchmarks", "fuzz", "libcrux-ml-kem", "libcrux-sha3", "libcrux-ml-dsa", "libcrux-intrinsics", "libcrux-kem", "libcrux-hmac", "libcrux-hkdf", "libcrux-ecdh", "libcrux-psq", "cavp", ] [workspace.package] version = "0.0.2-alpha.3" authors = ["Cryspen"] license = "Apache-2.0" homepage = "https://github.com/cryspen/libcrux" edition = "2021" repository = "https://github.com/cryspen/libcrux" readme = "Readme.md" [workspace.metadata.release] allow-branch = ["main"] [package] name = "libcrux" version.workspace = true edition.workspace = true authors.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true readme.workspace = true documentation = "https://docs.rs/libcrux/" description = "The Formally Verified Cryptography Library" exclude = [ "/tests", "/specs", "/proofs", "/*.py", "/wasm-demo", "/fuzz", "/git-hooks", "/architecture", "/libcrux.fst.config.json", ] [lib] crate-type = ["staticlib", "cdylib", "lib"] [build-dependencies] libcrux-platform = { version = "=0.0.2-alpha.3", path = "sys/platform" } [dependencies] libcrux-hacl = { version = "=0.0.2-alpha.3", path = "sys/hacl" } libcrux-platform = { version = "=0.0.2-alpha.3", path = "sys/platform" } libcrux-hkdf = { version = "=0.0.2-alpha.3", path = "libcrux-hkdf" } libcrux-hmac = { version = "=0.0.2-alpha.3", path = "libcrux-hmac" } libcrux-ecdh = { version = "=0.0.2-alpha.3", path = "libcrux-ecdh" } libcrux-ml-kem = { version = "=0.0.2-alpha.3", path = "libcrux-ml-kem" } libcrux-kem = { version = "=0.0.2-alpha.3", path = "libcrux-kem" } rand = { version = "0.8" } log = { version = "0.4", optional = true } # WASM API wasm-bindgen = { version = "0.2.87", optional = true } # When using the hax toolchain, we have more dependencies. # This is only required when doing proofs. [target.'cfg(hax)'.dependencies] hax-lib-macros = { version = "0.1.0-alpha.1", git = "https://github.com/hacspec/hax", branch = "main" } hax-lib = { version = "0.1.0-alpha.1", git = "https://github.com/hacspec/hax/", branch = "main" } [dev-dependencies] libcrux = { path = ".", features = ["rand", "tests"] } pretty_env_logger = "0.5" rand = { version = "0.8" } rand_core = { version = "0.6" } quickcheck = "1" quickcheck_macros = "1" serde_json = { version = "1.0" } serde = { version = "1.0", features = ["derive"] } hex = { version = "0.4.3", features = ["serde"] } clap = { version = "4.5", features = ["derive"] } [target.'cfg(target_arch = "wasm32")'.dev-dependencies] wasm-bindgen-test = "0.3" getrandom = { version = "0.2", features = ["js"] } [features] hacspec = [] # TODO: #7 Use specs instead of efficient implementations rand = [] wasm = ["wasm-bindgen"] log = ["dep:log"] tests = [] # Expose functions for testing. experimental = [] # Expose experimental APIs. [profile.release] lto = "fat" codegen-units = 1 panic = "abort"