Zig bindings to the PQClean C implementations of cryptographic algorithms proposed during the NIST Post-Quantum Cryptography Competition. Additionally, there are light abstractions for convenient use present in the crypto.zig files.
- Make
- GCC
- Zig 0.15+
- hqc-128 (Clean)
- hqc-192 (Clean)
- hqc-256 (Clean)
- ml-kem-1024 (Clean, AVX2, AARCH64)
- ml-kem-512 (Clean, AVX2, AARCH64)
- ml-kem-768 (Clean, AVX2, AARCH64)
- falcon-1024 (Clean, AVX2, AARCH64)
- falcon-512 (Clean, AVX2, AARCH64)
- falcon-padded-1024 (Clean, AVX2, AARCH64)
- falcon-padded-512 (Clean, AVX2, AARCH64)
- ml-dsa-44 (Clean, AVX2, AARCH64)
- ml-dsa-65 (Clean, AVX2, AARCH64)
- ml-dsa-87 (Clean, AVX2, AARCH64)
- sphincs-sha2-128s-simple (Clean, AVX2)
- sphincs-sha2-192f-simple (Clean, AVX2)
- sphincs-sha2-192s-simple (Clean, AVX2)
- sphincs-sha2-256f-simple (Clean, AVX2)
- sphincs-sha2-256s-simple (Clean, AVX2)
- sphincs-shake-128f-simple (Clean, AVX2, AARCH64)
- sphincs-shake-128s-simple (Clean, AVX2, AARCH64)
- sphincs-shake-192f-simple (Clean, AVX2, AARCH64)
- sphincs-shake-192s-simple (Clean, AVX2, AARCH64)
- sphincs-shake-256f-simple (Clean, AVX2, AARCH64)
- sphincs-shake-256s-simple (Clean, AVX2, AARCH64)
While more rigorous testing is to be implemented, you can run tests by navigating to the desired module and using:
zig build test