You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Requirements
Make
GCC
Zig 0.15+
Supported schemes (KEM, and signature)
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)
Tests
While more rigorous testing is to be implemented, you can run tests by navigating to the desired module and using: