[package] name = "hanzo-crypto" version = "0.1.0" edition = "2021" authors = ["Hanzo Team"] description = "Modern post-quantum cryptography library with NIST-standardized algorithms" license = "MIT OR Apache-2.0" repository = "https://github.com/hanzo/crypto" keywords = ["crypto", "post-quantum", "ml-kem", "ml-dsa", "pqc"] categories = ["cryptography", "no-std"] [dependencies] # NIST-standardized post-quantum algorithms (Pure Rust - ARM compatible!) ml-kem = { workspace = true } # ML-KEM (FIPS 203) - formerly Kyber ml-dsa = { workspace = true } # ML-DSA (FIPS 204) - formerly Dilithium pqcrypto-hqc = { workspace = true } # HQC code-based cryptography pqcrypto-traits = { workspace = true } # Common traits for PQC # Symmetric cryptography blake3 = { workspace = true } # BLAKE3 hashing chacha20poly1305 = { workspace = true } # ChaCha20-Poly1305 AEAD aes-gcm = { workspace = true } # AES-256-GCM # Additional cryptographic primitives sha3 = { workspace = true } # SHA-3 family x25519-dalek = { workspace = true } # X25519 key exchange (transitional) ed25519-dalek = { workspace = true } # Ed25519 signatures (transitional) argon2 = { workspace = true } # Password hashing # Utilities rand = { workspace = true } rand_core = { workspace = true } zeroize = { workspace = true } subtle = { workspace = true } hex = { workspace = true } base64 = { workspace = true } # Serialization serde = { workspace = true, optional = true } serde_json = { workspace = true, optional = true } bincode = { workspace = true, optional = true } # Error handling thiserror = { workspace = true } anyhow = { workspace = true } [dev-dependencies] criterion = { workspace = true } proptest = { workspace = true } quickcheck = { workspace = true } rand_chacha = "0.3" [features] default = ["std", "serialization"] std = [] serialization = ["serde", "serde_json", "bincode"] no-std = [] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] # This crate is its own workspace root. Every dependency below is declared # `workspace = true`, which only resolves against a [workspace.dependencies] # table — and there was none, so cargo could not read the manifest at all: # # error inheriting `aes-gcm` from workspace root manifest's # workspace.dependencies.aes-gcm: failed to find a workspace root # # The versions are the ones Cargo.lock already resolved, so this records what # the crate was building against rather than choosing anything new. [workspace] [workspace.dependencies] ml-kem = "0.3.0-pre" ml-dsa = "0.1.0-rc.0" pqcrypto-hqc = "0.2.2" pqcrypto-traits = "0.3.5" blake3 = "1.8.2" chacha20poly1305 = "0.10.1" aes-gcm = "0.10.3" sha3 = "0.10.8" x25519-dalek = "2.0.1" ed25519-dalek = "2.2.0" argon2 = "0.5.3" rand = "0.8.5" rand_core = "0.6.4" zeroize = "1.8.1" subtle = "2.6.1" hex = "0.4.3" base64 = "0.22.1" serde = "1.0.226" serde_json = "1.0.145" bincode = "1.3.3" thiserror = "1.0.69" anyhow = "1.0.100" criterion = "0.5.1" proptest = "1.8.0" quickcheck = "1.0.3"