OnlyF0uR/pqc-zig
Post-Quantum Cryptography for Zig
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.
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