Skip to content

Full Post Quantum Crypto Support

Choose a tag to compare

@tmcqueen-materials tmcqueen-materials released this 26 Nov 00:31
· 27 commits to master since this release

This release adds initial NIST FIPS post quantum support, by adding a new key exchange type based on a Curve25519+ML-KEM-1024 hybrid, and a new signature type based on a Ed25519+SLH-DSA-SHAKE-128f hybrid. This also includes a new public controller test, to ensure pq signing works in all operating modes.

Compatibility Notes

  1. Adding full pq support required a change to the CryptoKey API, so alternative implementations will need to be modified to support the additional functions required for multi-signature chain support: limit_spk, get_id_spk, get_num_spk.
  2. The CryptoKey API changes mean that once updated to this version, you cannot roll back to older versions without manually downgrading the file storage format for the file-backed CryptoKey (if used), and without moving the entry in the KafkaCryptoConfig file from the new chains section back to its original location.
  3. There should be full compatibility between producers/consumers/controllers/chain-servers running different versions, but of course key exchange is only possible if they share at least one signature and one key exchange type.
  4. The liboqs-java dependency can be painful. See notes in readme.