guycalledseven / php-ext-oqs
Native PHP extension for post-quantum key encapsulation (ML-KEM) and signatures (ML-DSA, SLH-DSA), with liboqs built in
Package info
github.com/guycalledseven/php-ext-oqs
Type:php-ext
Ext name:ext-oqs
pkg:composer/guycalledseven/php-ext-oqs
Requires
- php: >=8.1
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
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
- Expose Algorithm Details
- Implement Dedicated Key Objects?
- Expose Algorithm Names as Constants
- 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:
pie install guycalledseven/php-ext-oqs
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
VERSION=0.2.0 PHP_MM=$(php -r 'echo PHP_MAJOR_VERSION, ".", PHP_MINOR_VERSION;') ASSET="php_oqs-${VERSION}_php${PHP_MM}-x86_64-linux-glibc.zip" # pick the asset for your platform curl -fsSLO "https://github.com/guycalledseven/php-ext-oqs/releases/download/$VERSION/$ASSET" unzip -o "$ASSET" oqs.so -d "$(php -r 'echo ini_get("extension_dir");')"
Then enable it by adding extension=oqs to a php.ini (php --ini lists the files in use), and check:
php --ri oqs
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
FROM php:8.4-cli ARG OQS_VERSION=0.2.0 RUN set -eux; \ arch="$(uname -m | sed 's/aarch64/arm64/')"; \ curl -fsSL -o /tmp/oqs.zip "https://github.com/guycalledseven/php-ext-oqs/releases/download/${OQS_VERSION}/php_oqs-${OQS_VERSION}_php${PHP_VERSION%.*}-${arch}-linux-glibc.zip"; \ php -r '$z = new PharData("/tmp/oqs.zip"); $z->extractTo(ini_get("extension_dir"), "oqs.so", true);'; \ rm /tmp/oqs.zip; \ docker-php-ext-enable oqs
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/:
ci/build.sh # for the PHP on your PATH ci/docker-build.sh 8.4 # Linux binary, inside the official php:8.4-cli-bookworm image
The manual steps follow.
Debian:
sudo apt install cmake libssl-dev php-dev
macOS:
brew install cmake
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.
git clone --depth=1 --branch 0.16.0 https://github.com/open-quantum-safe/liboqs OQS_PREFIX="$(cd .. && pwd)/deps/liboqs-0.16.0" # or /usr/local (then install with sudo) cmake -S liboqs -B liboqs/build \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=OFF \ -DOQS_BUILD_ONLY_LIB=ON \ -DOQS_USE_OPENSSL=OFF \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_INSTALL_PREFIX="$OQS_PREFIX" cmake --build liboqs/build --parallel cmake --install liboqs/build
build php extension
phpize --clean; phpize OQS_COMMIT=$(git -C liboqs rev-parse --short HEAD) ./configure --with-oqs="$OQS_PREFIX" make clean && make -j
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
otool -L modules/oqs.so
# Expected: does NOT list liboqs.*dylib. Only /usr/lib/libSystem.B.dylib.
Check which liboqs actually got linked (headers and library versions must agree):
php -d extension=$PWD/modules/oqs.so --ri oqs | grep liboqs
Build the extension with dynamically linked liboqs (optional)
Build liboqs
git clone --depth=1 https://github.com/open-quantum-safe/liboqs cmake -S liboqs -B liboqs/build -DBUILD_SHARED_LIBS=ON -DOQS_DIST_BUILD=ON cmake --build liboqs/build --parallel sudo cmake --build liboqs/build --target install sudo ldconfig || true
Build extension
rm -rf build/* run-tests.php phpize # macOS ./configure --with-php-config=/opt/homebrew/opt/php/bin/php-config # Debian # ./configure --enable-oqs phpize OQS_COMMIT=$(git -C /path/to/liboqs rev-parse --short HEAD) \ ./configure --with-oqs=/usr/local make clean && make -j
Test and use
NO_INTERACTION=1 make test # all tests NO_INTERACTION=1 make test TESTS=tests/001-basic.phpt # a single test cp modules/oqs.so "$(php -r 'echo ini_get("extension_dir") . "\n";')" # enable macOS xattr -dr com.apple.quarantine /opt/homebrew/lib/php/pecl/20240924/oqs.so install_name_tool -add_rpath /opt/homebrew/lib "$(php -i | awk -F'=> ' '/^extension_dir/ {print $2}')/oqs.so" # enable on linux php -i | grep extension_dir echo "extension=oqs.so" | sudo tee /etc/php/$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')/mods-available/oqs.ini sudo phpenmod oqs 2>/dev/null || true # php -r '$f = php_ini_scanned_files(); echo $f ? dirname(explode(",", $f)[0]) . "\n" : "none\n";'
php -q --info
test in browser with phpinfo
php -S localhost:8000 -t www open http://localhost:8000
macOS config after setup
/opt/homebrew/etc/php/8.4/conf.d/oqs.ini
extension=oqs
A Stub & Docs Generator Script
Generate the IDE stub file:
php generate-docs.php --format=stub > oqs.stub.php
Generate the Markdown file: (This command is unchanged)
php generate-docs.php --format=markdown > OQS_CONSTANTS.md
Test if working
php -m | grep oqs php -r '[$k]=[new Oqs\Kem("ML-KEM-768")]; var_dump($k->sizes());'
Debugging
macOS:
otool -L oqs.so oqs.so: @rpath/liboqs.8.dylib (compatibility version 8.0.0, current version 0.14.1) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1356.0.0) nm -gU oqs.so 00000000000009dc T _get_module 00000000000081d8 S _oqs_ce_kem 00000000000081e0 S _oqs_ce_sig 0000000000008128 D _oqs_module_entry 00000000000009e8 T _zim_Kem___construct 0000000000000f58 T _zim_Kem_algorithms 0000000000000d9c T _zim_Kem_decap 0000000000000cec T _zim_Kem_encap 0000000000000b78 T _zim_Kem_keypair 0000000000000ac0 T _zim_Kem_sizes 0000000000000fe8 T _zim_Sig___construct 0000000000001658 T _zim_Sig_algorithms 00000000000010c0 T _zim_Sig_keypair 0000000000001234 T _zim_Sig_sign 00000000000014d8 T _zim_Sig_verify 00000000000009a4 T _zm_info_oqs 00000000000006d0 T _zm_startup_oqs
linux:
ldd modules/oqs.so linux-vdso.so.1 (0x0000f8f78ca51000) liboqs.so.8 => /usr/local/lib/liboqs.so.8 (0x0000f8f78c430000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000f8f78c270000) /lib/ld-linux-aarch64.so.1 (0x0000f8f78ca14000) libcrypto.so.3 => /lib/aarch64-linux-gnu/libcrypto.so.3 (0x0000f8f78bdf0000) nm -gU modules/oqs.so 0000000000001f30 T get_module 0000000000020398 B oqs_ce_kem 0000000000020390 B oqs_ce_sig 0000000000020150 D oqs_module_entry 00000000000027a4 T zim_Kem_algorithms 0000000000001f40 T zim_Kem___construct 0000000000002570 T zim_Kem_decap 0000000000002320 T zim_Kem_encap 0000000000002190 T zim_Kem_keypair 00000000000020c0 T zim_Kem_sizes 0000000000003050 T zim_Sig_algorithms 0000000000002830 T zim_Sig___construct 00000000000029b0 T zim_Sig_keypair 0000000000002b40 T zim_Sig_sign 0000000000002e50 T zim_Sig_verify 0000000000001ab0 T zm_info_oqs 0000000000001d30 T zm_startup_oqs objdump --disassemble-all modules/oqs.so
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.
// Example of best practice [$ct, $shared_secret] = $kem->encap($pk); // Now, derive a 32-byte AES key and a 16-byte IV from the shared secret $keying_material = hash_hkdf('sha256', $shared_secret, 48, 'my-app-encryption', 'some-salt'); $aes_key = substr($keying_material, 0, 32); $iv = substr($keying_material, 32, 16);
Quick start
<?php use Oqs\Kem; use Oqs\Sig; // 1. Key Encapsulation (KEM) Example with ML-KEM $kem = new Kem(Kem::ALG_ML_KEM_768); // Generate a public/private key pair [$publicKey, $secretKey] = $kem->keypair(); // A client encapsulates a secret against the public key, // generating a ciphertext and a shared secret. [$ciphertext, $sharedSecretA] = $kem->encap($publicKey); // The server decapsulates the ciphertext with the secret key // to derive the same shared secret. $sharedSecretB = $kem->decap($ciphertext, $secretKey); assert($sharedSecretA === $sharedSecretB); echo "KEM shared secrets match!\n"; // IMPORTANT: The raw shared secret should be passed through a KDF // like HKDF before being used as an encryption key. $encryption_key = hash_hkdf('sha256', $sharedSecretA, 32, 'my-app-aes-key'); // 2. Digital Signature (SIG) Example with ML-DSA $sig = new Sig(Sig::ALG_ML_DSA_65); // Generate a signing key pair [$signingPublicKey, $signingSecretKey] = $sig->keypair(); $message = "This is the message to sign."; // Sign the message with the secret key $signature = $sig->sign($message, $signingSecretKey); // Verify the signature against the message and public key $isValid = $sig->verify($message, $signature, $signingPublicKey); assert($isValid === true); echo "Signature is valid!\n";
3. Algorithm Details
You can retrieve detailed metadata about an algorithm using the details() method.
$kem = new Oqs\Kem('Kyber512'); $details = $kem->details(); print_r($details); /* Output: Array ( [name] => Kyber512 [version] => ... [claimed_nist_level] => 1 [ind_cca] => 1 [length_public_key] => 800 [length_secret_key] => 1632 [length_ciphertext] => 768 [length_shared_secret] => 32 ) */
PHP API test
use Oqs\Kem; use Oqs\Sig; use Oqs\Exception as OqsException; $kem = new Kem('ML-KEM-768'); $s = $kem->sizes(); // ['pk'=>..,'sk'=>..,'ct'=>..,'ss'=>..] [$pk,$sk] = $kem->keypair(); // returns [pk, sk] as binary strings [$ct,$ssA] = $kem->encap($pk); // encaps → [ciphertext, shared_secret] $ssB = $kem->decap($ct, $sk); // decaps → shared_secret assert($ssA === $ssB); $sig = new Sig('ML-DSA-65'); [$spk,$ssk] = $sig->keypair(); $signature = $sig->sign("hello", $ssk); $ok = $sig->verify("hello", $signature, $spk); // bool Kem::algorithms(); // list enabled KEM names Sig::algorithms(); // list enabled SIG names try { // This will now throw an Oqs\Exception $kem = new Kem('Some-Invalid-Algorithm'); } catch (OqsException $e) { // This block will ONLY catch exceptions thrown from your extension. echo "Caught an OQS-specific error: " . $e->getMessage(); } catch (\Exception $e) { // Other general errors would be caught here. echo "Caught a generic error: " . $e->getMessage(); }
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 |