Download the PHP package guycalledseven/php-ext-oqs without Composer
On this page you can find all versions of the php package guycalledseven/php-ext-oqs. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download guycalledseven/php-ext-oqs
More information about guycalledseven/php-ext-oqs
Files in guycalledseven/php-ext-oqs
Package php-ext-oqs
Short Description Native PHP extension for post-quantum key encapsulation (ML-KEM) and signatures (ML-DSA, SLH-DSA), with liboqs built in
License MIT
Homepage https://github.com/guycalledseven/php-ext-oqs
Informations about the package php-ext-oqs
php-ext-oqs: post-quantum cryptography for PHP
Native PHP extension for post-quantum key encapsulation (ML-KEM) and signatures (ML-DSA, SLH-DSA), with liboqs built in.
php-ext-oqs is a native extension (no FFI) built on the C library liboqs from the Open Quantum Safe (OQS) project. The prebuilt binaries contain liboqs, so there is no system library to install.
Status: experimental. liboqs states that it is meant for research and prototyping and is not currently recommended for production use or for protecting sensitive data. The same applies to this extension, which has not been independently audited.
It provides an object-oriented API for the NIST-standardized PQC algorithms ML-KEM (Kyber), ML-DSA (Dilithium), SLH-DSA (SPHINCS+), and other algorithms supported by liboqs.
Influenced and inspired by great DEF CON 33 - Post Quantum Panic talk by K Karagiannis.
Features
- Key Encapsulation Mechanisms (KEMs): Securely generate and exchange shared secrets using algorithms like ML-KEM.
- Digital Signature Schemes (SIGs): Create and verify signatures with algorithms like ML-DSA.
- Modern API: A clean, object-oriented interface (Oqs\Kem, Oqs\Sig).
- Type Safe: Exposes algorithm identifiers as class constants (e.g., Oqs\Kem::ALG_ML_KEM_768) for safe, typo-free code and IDE autocompletion.
- Exception-based Error Handling: Throws Oqs\Exception for clear error handling.
Requirements
- PHP 8.1+ (prebuilt binaries: PHP 8.1 - 8.5, non-thread-safe, Linux glibc x86_64/arm64 and macOS arm64)
- Nothing else for the prebuilt binaries: liboqs is linked statically into
oqs.so. - Only when building from source: PHP development headers (php-dev, phpize), a C compiler, make, cmake, and liboqs.
Project files
- config.m4 - contains the code that will go into the configure script. checks for the oqs/oqs.h header and uses pkg-config to find the liboqs library, fallback to a hardcoded prefix
- php_oqs.h - header file containing C declarations and macro definitionsto be shared between several source files. defines the necessary object structs (php_oqs_kem_obj, php_oqs_sig_obj) and utility functions for fetching these objects
- oqs.c (module init + class registration) sets up the module entry, defines the custom object handlers, and registers the Oqs\Kem and Oqs\Sig classes with their respective methods
- sig.c (module init + class registration)
- kem.c (module init + class registration)
- tests - unit tests
Roadmap
- [x] Expose Algorithm Details
- [ ] Implement Dedicated Key Objects?
- [x] Expose Algorithm Names as Constants
- [x] Add Documentation on KDFs
Development Notes
- Safety: The extension has no module globals and no per-request state; the only state is the liboqs handle owned by each
Oqs\Kem/Oqs\Sigobject. - Input validation: keys and ciphertexts of the wrong length are rejected with
Oqs\Exceptionbefore they reach liboqs.Sig::verify()returnsfalsefor a signature of impossible length. - Output Format: All cryptographic outputs (keys, ciphertexts, signatures) are returned as raw binary strings.
- liboqs Version: release 0.2.0 bundles liboqs 0.16.0 (each release names its bundled liboqs in CHANGELOG.md;
php --ri oqsshows it at runtime). Because liboqs is linked statically, a liboqs security fix reaches you through a new release of this extension, not through a system update. The set ofALG_*constants follows whatever the linked liboqs enables, so it changes between liboqs releases (0.16.0 dropped theSPHINCS+-*names in favour ofSLH-DSA, and added HQC, eFrodoKEM and MQOM).
Installation
Every release ships prebuilt binaries. They contain liboqs, so there is nothing to compile and no library to install.
| Platform | PHP | Asset |
|---|---|---|
Linux x86_64 (glibc 2.34+: Debian 12+, Ubuntu 22.04+, RHEL 9+, official php Docker images) |
8.1 - 8.5 NTS | php_oqs-<version>_php<X.Y>-x86_64-linux-glibc.zip |
| Linux arm64 (same) | 8.1 - 8.5 NTS | php_oqs-<version>_php<X.Y>-arm64-linux-glibc.zip |
| macOS 13+ Apple Silicon | 8.1 - 8.5 NTS | php_oqs-<version>_php<X.Y>-arm64-darwin-bsdlibc.zip |
Not covered yet: Alpine (musl), thread-safe (ZTS) PHP, Intel Macs, Windows. On those, build from source (below).
With PIE
PIE picks the right binary for your PHP, installs it and enables it:
If there is no binary for your platform, PIE falls back to a source build. That needs liboqs on the system and its location: pie install guycalledseven/php-ext-oqs --with-oqs=/usr/local.
Manual download
Then enable it by adding extension=oqs to a php.ini (php --ini lists the files in use), and check:
macOS only: a file downloaded with a browser is quarantined, clear that once with xattr -d com.apple.quarantine "$(php -r 'echo ini_get("extension_dir");')/oqs.so".
In a Dockerfile
Building from source
The release binaries are produced by ci/build.sh, which builds liboqs and the extension in a scratch directory, runs the tests and writes the zip to dist/:
The manual steps follow.
Debian:
macOS:
Build liboqs for static linking
Install liboqs into a prefix outside this directory. make clean deletes every *.a below the extension directory, which would silently remove a liboqs installed inside it.
build php extension
An explicit --with-oqs=DIR always wins over pkg-config. If DIR/lib/liboqs.a exists it is linked statically (-force_load on macOS, --whole-archive on Linux); configure fails if DIR contains no liboqs at all.
confirm if static
Check which liboqs actually got linked (headers and library versions must agree):
Build the extension with dynamically linked liboqs (optional)
Build liboqs
Build extension
Test and use
php -q --info
test in browser with phpinfo
macOS config after setup
A Stub & Docs Generator Script
Generate the IDE stub file:
Generate the Markdown file: (This command is unchanged)
Test if working
Debugging
macOS:
linux:
Important Security Point - clarification of the role of a KDF
KEM implementation returns a raw shared secret. In practice, this shared secret should almost never be used directly as an encryption key. It should be used as input to a Key Derivation Function (KDF) like HKDF to produce keys of the desired length and properties.
It is strongly recommended to use PHP's built-in hash_hkdf() function.
Quick start
3. Algorithm Details
You can retrieve detailed metadata about an algorithm using the details() method.
PHP API test
Comparation with similar php extension php-liboqs:
- Object-oriented API design vs static.
- Error handling with a custom
Oqs\Exception. - Complete function signatures (
arginfo) for better IDE/static analysis support. - An extra useful method (
Kem::sizes()).
Global Constants
These constants provide version information for the underlying liboqs C library that the extension was compiled against.
| Constant Name | Value |
|---|---|
Oqs\VERSION_MAJOR |
0 |
Oqs\VERSION_MINOR |
16 |
Oqs\VERSION_PATCH |
0 |
Oqs\VERSION_TEXT |
0.16.0 |
Oqs\Kem Constants
| Constant Name | Algorithm Value |
|---|---|
ALG_BIKE_L1 |
BIKE-L1 |
ALG_BIKE_L3 |
BIKE-L3 |
ALG_BIKE_L5 |
BIKE-L5 |
ALG_CLASSIC_MCELIECE_348864 |
Classic-McEliece-348864 |
ALG_CLASSIC_MCELIECE_348864F |
Classic-McEliece-348864f |
ALG_CLASSIC_MCELIECE_460896 |
Classic-McEliece-460896 |
ALG_CLASSIC_MCELIECE_460896F |
Classic-McEliece-460896f |
ALG_CLASSIC_MCELIECE_6688128 |
Classic-McEliece-6688128 |
ALG_CLASSIC_MCELIECE_6688128F |
Classic-McEliece-6688128f |
ALG_CLASSIC_MCELIECE_6960119 |
Classic-McEliece-6960119 |
ALG_CLASSIC_MCELIECE_6960119F |
Classic-McEliece-6960119f |
ALG_CLASSIC_MCELIECE_8192128 |
Classic-McEliece-8192128 |
ALG_CLASSIC_MCELIECE_8192128F |
Classic-McEliece-8192128f |
ALG_EFRODOKEM_1344_AES |
eFrodoKEM-1344-AES |
ALG_EFRODOKEM_1344_SHAKE |
eFrodoKEM-1344-SHAKE |
ALG_EFRODOKEM_640_AES |
eFrodoKEM-640-AES |
ALG_EFRODOKEM_640_SHAKE |
eFrodoKEM-640-SHAKE |
ALG_EFRODOKEM_976_AES |
eFrodoKEM-976-AES |
ALG_EFRODOKEM_976_SHAKE |
eFrodoKEM-976-SHAKE |
ALG_FRODOKEM_1344_AES |
FrodoKEM-1344-AES |
ALG_FRODOKEM_1344_SHAKE |
FrodoKEM-1344-SHAKE |
ALG_FRODOKEM_640_AES |
FrodoKEM-640-AES |
ALG_FRODOKEM_640_SHAKE |
FrodoKEM-640-SHAKE |
ALG_FRODOKEM_976_AES |
FrodoKEM-976-AES |
ALG_FRODOKEM_976_SHAKE |
FrodoKEM-976-SHAKE |
ALG_HQC_1 |
HQC-1 |
ALG_HQC_3 |
HQC-3 |
ALG_HQC_5 |
HQC-5 |
ALG_KYBER1024 |
Kyber1024 |
ALG_KYBER512 |
Kyber512 |
ALG_KYBER768 |
Kyber768 |
ALG_ML_KEM_1024 |
ML-KEM-1024 |
ALG_ML_KEM_512 |
ML-KEM-512 |
ALG_ML_KEM_768 |
ML-KEM-768 |
ALG_NTRU_HPS_2048_509 |
NTRU-HPS-2048-509 |
ALG_NTRU_HPS_2048_677 |
NTRU-HPS-2048-677 |
ALG_NTRU_HPS_4096_1229 |
NTRU-HPS-4096-1229 |
ALG_NTRU_HPS_4096_821 |
NTRU-HPS-4096-821 |
ALG_NTRU_HRSS_1373 |
NTRU-HRSS-1373 |
ALG_NTRU_HRSS_701 |
NTRU-HRSS-701 |
ALG_SNTRUP761 |
sntrup761 |
Oqs\Sig Constants
| Constant Name | Algorithm Value |
|---|---|
ALG_CROSS_RSDPG_128_BALANCED |
cross-rsdpg-128-balanced |
ALG_CROSS_RSDPG_128_FAST |
cross-rsdpg-128-fast |
ALG_CROSS_RSDPG_128_SMALL |
cross-rsdpg-128-small |
ALG_CROSS_RSDPG_192_BALANCED |
cross-rsdpg-192-balanced |
ALG_CROSS_RSDPG_192_FAST |
cross-rsdpg-192-fast |
ALG_CROSS_RSDPG_192_SMALL |
cross-rsdpg-192-small |
ALG_CROSS_RSDPG_256_BALANCED |
cross-rsdpg-256-balanced |
ALG_CROSS_RSDPG_256_FAST |
cross-rsdpg-256-fast |
ALG_CROSS_RSDPG_256_SMALL |
cross-rsdpg-256-small |
ALG_CROSS_RSDP_128_BALANCED |
cross-rsdp-128-balanced |
ALG_CROSS_RSDP_128_FAST |
cross-rsdp-128-fast |
ALG_CROSS_RSDP_128_SMALL |
cross-rsdp-128-small |
ALG_CROSS_RSDP_192_BALANCED |
cross-rsdp-192-balanced |
ALG_CROSS_RSDP_192_FAST |
cross-rsdp-192-fast |
ALG_CROSS_RSDP_192_SMALL |
cross-rsdp-192-small |
ALG_CROSS_RSDP_256_BALANCED |
cross-rsdp-256-balanced |
ALG_CROSS_RSDP_256_FAST |
cross-rsdp-256-fast |
ALG_CROSS_RSDP_256_SMALL |
cross-rsdp-256-small |
ALG_FALCON_1024 |
Falcon-1024 |
ALG_FALCON_512 |
Falcon-512 |
ALG_FALCON_PADDED_1024 |
Falcon-padded-1024 |
ALG_FALCON_PADDED_512 |
Falcon-padded-512 |
ALG_MAYO_1 |
MAYO-1 |
ALG_MAYO_2 |
MAYO-2 |
ALG_MAYO_3 |
MAYO-3 |
ALG_MAYO_5 |
MAYO-5 |
ALG_ML_DSA_44 |
ML-DSA-44 |
ALG_ML_DSA_65 |
ML-DSA-65 |
ALG_ML_DSA_87 |
ML-DSA-87 |
ALG_MQOM2_CAT1_GF16_FAST_R3 |
mqom2_cat1_gf16_fast_r3 |
ALG_MQOM2_CAT1_GF16_FAST_R5 |
mqom2_cat1_gf16_fast_r5 |
ALG_MQOM2_CAT1_GF16_SHORT_R3 |
mqom2_cat1_gf16_short_r3 |
ALG_MQOM2_CAT1_GF16_SHORT_R5 |
mqom2_cat1_gf16_short_r5 |
ALG_MQOM2_CAT3_GF16_FAST_R3 |
mqom2_cat3_gf16_fast_r3 |
ALG_MQOM2_CAT3_GF16_FAST_R5 |
mqom2_cat3_gf16_fast_r5 |
ALG_MQOM2_CAT3_GF16_SHORT_R3 |
mqom2_cat3_gf16_short_r3 |
ALG_MQOM2_CAT3_GF16_SHORT_R5 |
mqom2_cat3_gf16_short_r5 |
ALG_MQOM2_CAT5_GF16_FAST_R3 |
mqom2_cat5_gf16_fast_r3 |
ALG_MQOM2_CAT5_GF16_FAST_R5 |
mqom2_cat5_gf16_fast_r5 |
ALG_MQOM2_CAT5_GF16_SHORT_R3 |
mqom2_cat5_gf16_short_r3 |
ALG_MQOM2_CAT5_GF16_SHORT_R5 |
mqom2_cat5_gf16_short_r5 |
ALG_OV_III |
OV-III |
ALG_OV_III_PKC |
OV-III-pkc |
ALG_OV_III_PKC_SKC |
OV-III-pkc-skc |
ALG_OV_IP |
OV-Ip |
ALG_OV_IP_PKC |
OV-Ip-pkc |
ALG_OV_IP_PKC_SKC |
OV-Ip-pkc-skc |
ALG_OV_IS |
OV-Is |
ALG_OV_IS_PKC |
OV-Is-pkc |
ALG_OV_IS_PKC_SKC |
OV-Is-pkc-skc |
ALG_OV_V |
OV-V |
ALG_OV_V_PKC |
OV-V-pkc |
ALG_OV_V_PKC_SKC |
OV-V-pkc-skc |
ALG_SLH_DSA_PURE_SHA2_128F |
SLH_DSA_PURE_SHA2_128F |
ALG_SLH_DSA_PURE_SHA2_128S |
SLH_DSA_PURE_SHA2_128S |
ALG_SLH_DSA_PURE_SHA2_192F |
SLH_DSA_PURE_SHA2_192F |
ALG_SLH_DSA_PURE_SHA2_192S |
SLH_DSA_PURE_SHA2_192S |
ALG_SLH_DSA_PURE_SHA2_256F |
SLH_DSA_PURE_SHA2_256F |
ALG_SLH_DSA_PURE_SHA2_256S |
SLH_DSA_PURE_SHA2_256S |
ALG_SLH_DSA_PURE_SHAKE_128F |
SLH_DSA_PURE_SHAKE_128F |
ALG_SLH_DSA_PURE_SHAKE_128S |
SLH_DSA_PURE_SHAKE_128S |
ALG_SLH_DSA_PURE_SHAKE_192F |
SLH_DSA_PURE_SHAKE_192F |
ALG_SLH_DSA_PURE_SHAKE_192S |
SLH_DSA_PURE_SHAKE_192S |
ALG_SLH_DSA_PURE_SHAKE_256F |
SLH_DSA_PURE_SHAKE_256F |
ALG_SLH_DSA_PURE_SHAKE_256S |
SLH_DSA_PURE_SHAKE_256S |
ALG_SLH_DSA_SHA2_224_PREHASH_SHA2_128F |
SLH_DSA_SHA2_224_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA2_224_PREHASH_SHA2_128S |
SLH_DSA_SHA2_224_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA2_224_PREHASH_SHA2_192F |
SLH_DSA_SHA2_224_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA2_224_PREHASH_SHA2_192S |
SLH_DSA_SHA2_224_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA2_224_PREHASH_SHA2_256F |
SLH_DSA_SHA2_224_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA2_224_PREHASH_SHA2_256S |
SLH_DSA_SHA2_224_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA2_224_PREHASH_SHAKE_128F |
SLH_DSA_SHA2_224_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA2_224_PREHASH_SHAKE_128S |
SLH_DSA_SHA2_224_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA2_224_PREHASH_SHAKE_192F |
SLH_DSA_SHA2_224_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA2_224_PREHASH_SHAKE_192S |
SLH_DSA_SHA2_224_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA2_224_PREHASH_SHAKE_256F |
SLH_DSA_SHA2_224_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA2_224_PREHASH_SHAKE_256S |
SLH_DSA_SHA2_224_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA2_256_PREHASH_SHA2_128F |
SLH_DSA_SHA2_256_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA2_256_PREHASH_SHA2_128S |
SLH_DSA_SHA2_256_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA2_256_PREHASH_SHA2_192F |
SLH_DSA_SHA2_256_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA2_256_PREHASH_SHA2_192S |
SLH_DSA_SHA2_256_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA2_256_PREHASH_SHA2_256F |
SLH_DSA_SHA2_256_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA2_256_PREHASH_SHA2_256S |
SLH_DSA_SHA2_256_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA2_256_PREHASH_SHAKE_128F |
SLH_DSA_SHA2_256_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA2_256_PREHASH_SHAKE_128S |
SLH_DSA_SHA2_256_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA2_256_PREHASH_SHAKE_192F |
SLH_DSA_SHA2_256_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA2_256_PREHASH_SHAKE_192S |
SLH_DSA_SHA2_256_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA2_256_PREHASH_SHAKE_256F |
SLH_DSA_SHA2_256_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA2_256_PREHASH_SHAKE_256S |
SLH_DSA_SHA2_256_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA2_384_PREHASH_SHA2_128F |
SLH_DSA_SHA2_384_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA2_384_PREHASH_SHA2_128S |
SLH_DSA_SHA2_384_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA2_384_PREHASH_SHA2_192F |
SLH_DSA_SHA2_384_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA2_384_PREHASH_SHA2_192S |
SLH_DSA_SHA2_384_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA2_384_PREHASH_SHA2_256F |
SLH_DSA_SHA2_384_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA2_384_PREHASH_SHA2_256S |
SLH_DSA_SHA2_384_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA2_384_PREHASH_SHAKE_128F |
SLH_DSA_SHA2_384_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA2_384_PREHASH_SHAKE_128S |
SLH_DSA_SHA2_384_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA2_384_PREHASH_SHAKE_192F |
SLH_DSA_SHA2_384_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA2_384_PREHASH_SHAKE_192S |
SLH_DSA_SHA2_384_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA2_384_PREHASH_SHAKE_256F |
SLH_DSA_SHA2_384_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA2_384_PREHASH_SHAKE_256S |
SLH_DSA_SHA2_384_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHA2_128F |
SLH_DSA_SHA2_512_224_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHA2_128S |
SLH_DSA_SHA2_512_224_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHA2_192F |
SLH_DSA_SHA2_512_224_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHA2_192S |
SLH_DSA_SHA2_512_224_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHA2_256F |
SLH_DSA_SHA2_512_224_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHA2_256S |
SLH_DSA_SHA2_512_224_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128F |
SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128S |
SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192F |
SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192S |
SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256F |
SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256S |
SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHA2_128F |
SLH_DSA_SHA2_512_256_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHA2_128S |
SLH_DSA_SHA2_512_256_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHA2_192F |
SLH_DSA_SHA2_512_256_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHA2_192S |
SLH_DSA_SHA2_512_256_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHA2_256F |
SLH_DSA_SHA2_512_256_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHA2_256S |
SLH_DSA_SHA2_512_256_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128F |
SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128S |
SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192F |
SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192S |
SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256F |
SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256S |
SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA2_512_PREHASH_SHA2_128F |
SLH_DSA_SHA2_512_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA2_512_PREHASH_SHA2_128S |
SLH_DSA_SHA2_512_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA2_512_PREHASH_SHA2_192F |
SLH_DSA_SHA2_512_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA2_512_PREHASH_SHA2_192S |
SLH_DSA_SHA2_512_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA2_512_PREHASH_SHA2_256F |
SLH_DSA_SHA2_512_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA2_512_PREHASH_SHA2_256S |
SLH_DSA_SHA2_512_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA2_512_PREHASH_SHAKE_128F |
SLH_DSA_SHA2_512_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA2_512_PREHASH_SHAKE_128S |
SLH_DSA_SHA2_512_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA2_512_PREHASH_SHAKE_192F |
SLH_DSA_SHA2_512_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA2_512_PREHASH_SHAKE_192S |
SLH_DSA_SHA2_512_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA2_512_PREHASH_SHAKE_256F |
SLH_DSA_SHA2_512_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA2_512_PREHASH_SHAKE_256S |
SLH_DSA_SHA2_512_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA3_224_PREHASH_SHA2_128F |
SLH_DSA_SHA3_224_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA3_224_PREHASH_SHA2_128S |
SLH_DSA_SHA3_224_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA3_224_PREHASH_SHA2_192F |
SLH_DSA_SHA3_224_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA3_224_PREHASH_SHA2_192S |
SLH_DSA_SHA3_224_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA3_224_PREHASH_SHA2_256F |
SLH_DSA_SHA3_224_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA3_224_PREHASH_SHA2_256S |
SLH_DSA_SHA3_224_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA3_224_PREHASH_SHAKE_128F |
SLH_DSA_SHA3_224_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA3_224_PREHASH_SHAKE_128S |
SLH_DSA_SHA3_224_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA3_224_PREHASH_SHAKE_192F |
SLH_DSA_SHA3_224_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA3_224_PREHASH_SHAKE_192S |
SLH_DSA_SHA3_224_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA3_224_PREHASH_SHAKE_256F |
SLH_DSA_SHA3_224_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA3_224_PREHASH_SHAKE_256S |
SLH_DSA_SHA3_224_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA3_256_PREHASH_SHA2_128F |
SLH_DSA_SHA3_256_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA3_256_PREHASH_SHA2_128S |
SLH_DSA_SHA3_256_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA3_256_PREHASH_SHA2_192F |
SLH_DSA_SHA3_256_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA3_256_PREHASH_SHA2_192S |
SLH_DSA_SHA3_256_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA3_256_PREHASH_SHA2_256F |
SLH_DSA_SHA3_256_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA3_256_PREHASH_SHA2_256S |
SLH_DSA_SHA3_256_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA3_256_PREHASH_SHAKE_128F |
SLH_DSA_SHA3_256_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA3_256_PREHASH_SHAKE_128S |
SLH_DSA_SHA3_256_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA3_256_PREHASH_SHAKE_192F |
SLH_DSA_SHA3_256_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA3_256_PREHASH_SHAKE_192S |
SLH_DSA_SHA3_256_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA3_256_PREHASH_SHAKE_256F |
SLH_DSA_SHA3_256_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA3_256_PREHASH_SHAKE_256S |
SLH_DSA_SHA3_256_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA3_384_PREHASH_SHA2_128F |
SLH_DSA_SHA3_384_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA3_384_PREHASH_SHA2_128S |
SLH_DSA_SHA3_384_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA3_384_PREHASH_SHA2_192F |
SLH_DSA_SHA3_384_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA3_384_PREHASH_SHA2_192S |
SLH_DSA_SHA3_384_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA3_384_PREHASH_SHA2_256F |
SLH_DSA_SHA3_384_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA3_384_PREHASH_SHA2_256S |
SLH_DSA_SHA3_384_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA3_384_PREHASH_SHAKE_128F |
SLH_DSA_SHA3_384_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA3_384_PREHASH_SHAKE_128S |
SLH_DSA_SHA3_384_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA3_384_PREHASH_SHAKE_192F |
SLH_DSA_SHA3_384_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA3_384_PREHASH_SHAKE_192S |
SLH_DSA_SHA3_384_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA3_384_PREHASH_SHAKE_256F |
SLH_DSA_SHA3_384_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA3_384_PREHASH_SHAKE_256S |
SLH_DSA_SHA3_384_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHA3_512_PREHASH_SHA2_128F |
SLH_DSA_SHA3_512_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHA3_512_PREHASH_SHA2_128S |
SLH_DSA_SHA3_512_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHA3_512_PREHASH_SHA2_192F |
SLH_DSA_SHA3_512_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHA3_512_PREHASH_SHA2_192S |
SLH_DSA_SHA3_512_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHA3_512_PREHASH_SHA2_256F |
SLH_DSA_SHA3_512_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHA3_512_PREHASH_SHA2_256S |
SLH_DSA_SHA3_512_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHA3_512_PREHASH_SHAKE_128F |
SLH_DSA_SHA3_512_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHA3_512_PREHASH_SHAKE_128S |
SLH_DSA_SHA3_512_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHA3_512_PREHASH_SHAKE_192F |
SLH_DSA_SHA3_512_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHA3_512_PREHASH_SHAKE_192S |
SLH_DSA_SHA3_512_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHA3_512_PREHASH_SHAKE_256F |
SLH_DSA_SHA3_512_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHA3_512_PREHASH_SHAKE_256S |
SLH_DSA_SHA3_512_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHA2_128F |
SLH_DSA_SHAKE_128_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHA2_128S |
SLH_DSA_SHAKE_128_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHA2_192F |
SLH_DSA_SHAKE_128_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHA2_192S |
SLH_DSA_SHAKE_128_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHA2_256F |
SLH_DSA_SHAKE_128_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHA2_256S |
SLH_DSA_SHAKE_128_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHAKE_128F |
SLH_DSA_SHAKE_128_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHAKE_128S |
SLH_DSA_SHAKE_128_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHAKE_192F |
SLH_DSA_SHAKE_128_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHAKE_192S |
SLH_DSA_SHAKE_128_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHAKE_256F |
SLH_DSA_SHAKE_128_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHAKE_128_PREHASH_SHAKE_256S |
SLH_DSA_SHAKE_128_PREHASH_SHAKE_256S |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHA2_128F |
SLH_DSA_SHAKE_256_PREHASH_SHA2_128F |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHA2_128S |
SLH_DSA_SHAKE_256_PREHASH_SHA2_128S |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHA2_192F |
SLH_DSA_SHAKE_256_PREHASH_SHA2_192F |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHA2_192S |
SLH_DSA_SHAKE_256_PREHASH_SHA2_192S |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHA2_256F |
SLH_DSA_SHAKE_256_PREHASH_SHA2_256F |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHA2_256S |
SLH_DSA_SHAKE_256_PREHASH_SHA2_256S |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHAKE_128F |
SLH_DSA_SHAKE_256_PREHASH_SHAKE_128F |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHAKE_128S |
SLH_DSA_SHAKE_256_PREHASH_SHAKE_128S |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHAKE_192F |
SLH_DSA_SHAKE_256_PREHASH_SHAKE_192F |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHAKE_192S |
SLH_DSA_SHAKE_256_PREHASH_SHAKE_192S |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHAKE_256F |
SLH_DSA_SHAKE_256_PREHASH_SHAKE_256F |
ALG_SLH_DSA_SHAKE_256_PREHASH_SHAKE_256S |
SLH_DSA_SHAKE_256_PREHASH_SHAKE_256S |
ALG_SNOVA_24_5_4 |
SNOVA_24_5_4 |
ALG_SNOVA_24_5_4_ESK |
SNOVA_24_5_4_esk |
ALG_SNOVA_24_5_4_SHAKE |
SNOVA_24_5_4_SHAKE |
ALG_SNOVA_24_5_4_SHAKE_ESK |
SNOVA_24_5_4_SHAKE_esk |
ALG_SNOVA_24_5_5 |
SNOVA_24_5_5 |
ALG_SNOVA_25_8_3 |
SNOVA_25_8_3 |
ALG_SNOVA_29_6_5 |
SNOVA_29_6_5 |
ALG_SNOVA_37_17_2 |
SNOVA_37_17_2 |
ALG_SNOVA_37_8_4 |
SNOVA_37_8_4 |
ALG_SNOVA_49_11_3 |
SNOVA_49_11_3 |
ALG_SNOVA_56_25_2 |
SNOVA_56_25_2 |
ALG_SNOVA_60_10_4 |
SNOVA_60_10_4 |