zeekayandHanzo Dev e16365c5bd license: MIT OR Apache-2.0 per HIP-0137
This repo shipped with no LICENSE, which makes it legally ambiguous the moment
it is public: absent an explicit grant, default copyright reserves all rights,
so a reader may look but not use — the opposite of what publishing it is for.

Original Hanzo work (single initial commit, no upstream lineage), so the terms
are ours to set, and the fleet already has one answer: the HIP-0137 dual offer
carried verbatim from the canonical files rather than retyped.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-05 00:53:32 -07:00

Hanzo Crypto

Modern post-quantum cryptography library with NIST-standardized algorithms, optimized for ARM compatibility including Apple Silicon (M1/M2/M3).

Features

Post-Quantum Cryptography

  • ML-KEM (FIPS 203): Module Lattice Key Encapsulation (formerly Kyber)
    • Pure Rust implementation - no AVX2 assembly issues!
    • ML-KEM-512, ML-KEM-768, ML-KEM-1024
  • ML-DSA (FIPS 204): Module Lattice Digital Signatures (formerly Dilithium)
    • Pure Rust implementation
    • ML-DSA-44, ML-DSA-65, ML-DSA-87
  • HQC: Hamming Quasi-Cyclic code-based cryptography
    • HQC-128, HQC-192, HQC-256

Symmetric Cryptography

  • BLAKE3: Fast cryptographic hashing
  • ChaCha20-Poly1305: Authenticated encryption
  • AES-256-GCM: Authenticated encryption with associated data
  • Argon2: Password hashing

Additional Algorithms

  • X25519: Elliptic curve key exchange (transitional)
  • Ed25519: Elliptic curve signatures (transitional)
  • SHA-3: SHA3-256, SHA3-384, SHA3-512

Installation

[dependencies]
hanzo-crypto = "0.1.0"

Quick Start

use hanzo_crypto::prelude::*;
use hanzo_crypto::{ml_kem, ml_dsa, blake3};

fn main() -> Result<()> {
    // Post-quantum key encapsulation
    use ml_kem::{MlKem768, Encapsulate, Decapsulate};
    let mut rng = rand::thread_rng();
    let (dk, ek) = MlKem768::generate(&mut rng);
    let (ct, ss_sender) = ek.encapsulate(&mut rng)?;
    let ss_receiver = dk.decapsulate(&ct)?;
    assert_eq!(ss_sender, ss_receiver);

    // Post-quantum signatures
    use ml_dsa::{Ml_Dsa65, SigningKey};
    let signing_key = SigningKey::generate(&mut rng)?;
    let message = b"Hello, quantum world!";
    let signature = signing_key.try_sign_with_rng(&mut rng, message)?;
    signing_key.verification_key().verify(message, &signature)?;

    // BLAKE3 hashing
    let hash = blake3::hash(b"Fast hashing with BLAKE3");
    println!("Hash: {}", hash.to_hex());

    Ok(())
}

ARM Compatibility

This library uses pure Rust implementations of ML-KEM and ML-DSA, ensuring full compatibility with ARM processors including Apple Silicon. No AVX2 assembly issues!

Testing

# Run all tests
cargo test

# Run examples
cargo run --example basic

# Run benchmarks
cargo bench

Security Levels

  • Level 1: 128-bit classical security
  • Level 3: 192-bit classical security (recommended)
  • Level 5: 256-bit classical security

License

MIT OR Apache-2.0

S
Description
hanzo-crypto — post-quantum cryptography (ML-KEM, ML-DSA, HQC)
Readme
164 KiB
Languages
Rust 100%