Skip to content

AlphaRNG Software Kit v3.0 — AlphaRNG PQ support

Latest

Choose a tag to compare

@tectrolabs tectrolabs released this 07 Nov 01:10
5feea50

This release adds support for the new AlphaRNG PQ device, which sets up its secure session with
post-quantum key exchange. Stock AlphaRNG devices keep working exactly as before.

New

  • AlphaRNG PQ device support on Linux, FreeBSD, macOS and Windows, including device discovery
    (USB product ID 0x0006, and the new udev rule for non-root access on Linux).
  • ML-KEM-1024 key exchange (FIPS 203) for secure sessions, using the bundled
    mlkem-native library. No newer OpenSSL is required.
    Session keys are sent AES-256-GCM encrypted with the ML-KEM shared secret; -c and -m still select
    how commands and data are protected after that.
  • Automatic device detection: the API identifies AlphaRNG and AlphaRNG PQ before any key exchange.
    AlphaRNG PQ devices always use ML-KEM-1024; requesting ML-KEM-1024 on a stock AlphaRNG gives a clear error.
  • -p MLKEM1024 option in alrng, alseqgen and entropy-server (Windows).
  • -k FILE accepts ML-KEM-1024 public keys as well as RSA keys, as do the C API's pub_key_file
    and the OpenSSL provider's key_file setting.
  • alrng -l now shows the reason when a device can't be connected.
  • alperftest reports ML-KEM-1024 on AlphaRNG PQ devices and picks the RSA key size by device version.

Fixes and hardening

  • Constant-time MAC comparison, initialized API members and checks on the session layout (#48).
  • C API: device ID and model strings are now always null-terminated.
  • API classes that own device or crypto resources can no longer be copied by mistake.
  • bitgrps rejects directories, pipes and other non-regular files instead of hanging.

Windows

  • windows-x64 sources are synced with the Linux/macOS sources; the ML-KEM sources are part of the api project.

Build, tests and documentation

  • CMake, Makefile and Makefile.bsd build the ML-KEM sources (C99).
  • make test target for the unit tests (no device needed).
  • README: new section on RSA and ML-KEM-1024 sessions, and a note on setting OPENSSL_CONF per command
    when using the OpenSSL provider.
  • New THIRD-PARTY-NOTICES.txt (mlkem-native, OpenSSL); LICENSE updated.
  • Utility versions: alrng 2.6, alseqgen 1.4, bitgrps 1.2, entropy-server 1.10.
  • Comment, Doxygen and version-tag cleanups throughout.

Compatibility

  • C API: unchanged.
  • C++ API: AlphaRngConfig has a new last field, e_key_exchange. Code that creates it with braces and
    leaves the field out still compiles and gets RSA, which the API switches to ML-KEM-1024 automatically on
    AlphaRNG PQ devices. Code that declares an AlphaRngConfig and assigns its fields one by one must also set
    e_key_exchange (for example to KeyExchange::rsa).

Software kit content description can be found at this address.

AlphaRNG quick start guide can be found at this location.

Full Changelog: v2.15...v3.0