oqs-safe 0.1.0

Safe, minimal Rust wrapper over libOQS for PQ KEM/SIG (Kyber/ML-KEM, Dilithium/ML-DSA) with mock fallback.
Documentation

oqs-safe

Safe, minimal Rust wrapper over libOQS for post-quantum KEM/SIG:

  • Kyber / ML-KEM-768
  • Dilithium / ML-DSA-44

Works with current and legacy libOQS names and supports a mock fallback for CI without libOQS.

Features

  • liboqs — enable real liboqs FFI (default: off)
  • KEM: kyber768 (alias: ml_kem_768)
  • SIG: dilithium2 (alias: ml_dsa_44)

Quickstart

# Install/build liboqs (if not using your system package):
git clone https://github.com/open-quantum-safe/liboqs
cd liboqs && mkdir build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DOQS_DIST_BUILD=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="$HOME/.local/liboqs" ..
ninja && ninja install

export PKG_CONFIG_PATH="$HOME/.local/liboqs/lib/pkgconfig:$PKG_CONFIG_PATH"
export DYLD_LIBRARY_PATH="$HOME/.local/liboqs/lib:$DYLD_LIBRARY_PATH"  # macOS

# KEM
cargo run --example kem_roundtrip --no-default-features --features liboqs,kyber768

# SIG
cargo run --example dsa_sign_verify --no-default-features --features liboqs,dilithium2

# Mock mode (no liboqs)
cargo test --features kyber768,dilithium2

# MSRV
Rust 1.70+.

# License
Dual-licensed under MIT or Apache-2.0.