Skip to content

OnlyF0uR/pqc-zig

Repository files navigation

pqc-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.

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:

zig build test

About

Post-Quantum Cryptography for Zig

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Languages