Skip to content

Releases: open-quantum-safe/liboqs

liboqs version 0.16.0

Choose a tag to compare

@xuganyu96 xuganyu96 released this 09 Jul 14:58
5a1a854

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

liboqs 0.16.0 was released on Thursday, July 9, 2026.

Deprecation notice

SPHINCS+ was removed in 0.16.0.

Security issues

  • Fixed uninitialized encaps_derand pointer dereference #2460
  • Fixed out-of-bounds read in XMSS/XMSS^MT signature verification 077e32a, #2384
  • Fixed Integer underflow in CROSS crypto_sign_open() 25d0a9e
  • Fixed incorrect array size when calling secure_clean ab0e07c
  • Implemented optimization barrier OQS_MEM_BLACK_BOX and applied to
    ct_select in FrodoKEM #2431

Significant change

FrodoKEM algorithm change

#2192, #2342

Existing FrodoKEM in 0.15.0 was renamed to ephemeral FrodoKEM (KEM_efrodokem_<640|976|1344>_<aes|shake>), and the salted variant of FrodoKEM was added under the prior names (KEM_frodokem_<640|976|1344>_<aes|shake>).

Ephemeral FrodoKEM is recommended for applications where each keypair will encapsulate only a small number of shared secrets and ciphertexts. Standard (salted) FrodoKEM is recommended for applications where each keypair is expected to encapsulate large number of ciphertexts. Please consult upstream for more details.

mldsa-native integration

#2284, #2391, #3445

mldsa-native is a secure, fast, and portable C90 implementation of the ML-DSA post-quantum signature standard. It also includes optimized builds for x86_64 and aarch64. It is now the default implementation behind SIG_ml_dsa_<44|65|87>.

Updated HQC implementation

#2407

The HQC implementations in liboqs were updated to 20250822 spec. Its upstream switched from PQClean to the official repo. KEM_hqc_<1|3|5> is now enabled by default.

MQOM integration and memory-optimized build flag

#2385, #2367

MQOM is a third-round candidate in NIST's Additional Digital Signatures for the PQC Standardization Process. Portable, x86_64-optimized, and memory-optimized implementations were integrate into liboqs under OQS_ENABLE_SIG_MQOM.

A new build flag OQS_MEMOPT_BUILD can now be used to switch to memory-optimized builds for algorithms that have memory-optimized implementations.

OpenSSH implementation of NTRU Prime

#2356

A public-domain OpenSSH implementation of NTRUPrime761 replaced the PQClean implementation as the default backend for KEM_ntruprime_sntrup761.

Bug fixes

  • Fixed incremental absorption bug in AVX512VL SHA3-512 #2442
  • Implemented fallback for when EVP_DigestSqueeze is unavailable #2433
  • Added API for detecting stateful signature support at runtime #2434
  • Fixed missing initialization and indexing bug in LMS #2416
  • Fixed erroneous MAYO_OK despite failed sample_solution() attempts in MAYO #2403
  • Limited pytest parallelism to prevent memory exhaustion in constrained environment #2397
  • Fixed cuPQC ML-KEM derand symbol names and #if/#elif chains #2396
  • Tightened Windows compiler detection #2394
  • Fixed mismatched macros in LMS #2379
  • Made fuzzers tolerant to disabled algorithms #2359
  • Removed inlined exponentiation in CROSS-RSDPG-1 #2357
  • Fixed incorrect arg register update in AVX512 Keccak #2330

Miscellaneous

  • Update mlkem-native to v1.2.0 #2470
  • Removed legacy HQC constant-time test #2467
  • Download Intel SDE from alternative source #2463
  • Updated algorithm support information #2441
  • Added NIST LMS Signature verify KATs #2435
  • Fixed comments on SHA3-AVX512VL assembly file. Thank you Anthony Plank for reporting the issue #2438
  • Fixed latent warnings exposed by refreshed CI container images #2430
  • Added common dependencies with include_only in copy_from_upstream #2382
  • Documented algorithm support levels #2413
  • Updated Dependabot configuration #2420
  • Added @loganaden as codeowner for Kyber #2421
  • Bumped gitpython version for copy_from_upstream #2414
  • Updated GOVERNANCE.md and CODEOWNERS #2410
  • Added fuzz harness for LMS/XMSS signature verification #2398, #2412
  • Added fuzz harness for XMSS signature verification #2399, #2400
  • Moved compiler optimization level to CMAKE_BUILD_TYPE #2383
  • Updated pytest package version #2408
  • Demoted armhf to tier 3 supported platform #2406
  • Added Wycheproof tests for ML-DSA #2378
  • Added overflow check for OQS_MEM_calloc arguments #2377
  • Updated Wycheproof tests ML-KEM #2373
  • Updated Zephyr CI tests to recent versions #2369
  • Documented KAT sources and hash verification process #2363
  • Added support for ML-DSA pre-hash sign ACVP test vectors #2362
  • Added external-mu sign gen ACVP tests for ML-DSA #2352
  • Cached ACVP test vectors #2354
  • Added OQS_SIG_sign methods tests in vectors_sig #2350
  • Added the path to the binary include dir #2312
  • Removed local copies of ACVP test vectors [#...
Read more

liboqs version 0.16.0-rc1

Pre-release

Choose a tag to compare

@xuganyu96 xuganyu96 released this 24 Jun 15:10
aa294f5

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

liboqs 0.16.0-rc1 was released on Wednesday, June 24, 2026.

Deprecation notice

SPHINCS+ was removed in 0.16.0.

Security issues

  • Fixed uninitialized encaps_derand pointer dereference #2460
  • Fixed out-of-bounds read in XMSS/XMSS^MT signature verification 077e32a, #2384
  • Fixed Integer underflow in CROSS crypto_sign_open() 25d0a9e
  • Fixed incorrect array size when calling secure_clean ab0e07c
  • Implemented optimization barrier OQS_MEM_BLACK_BOX and applied to ct_select in FrodoKEM #2431

Significant change

FrodoKEM algorithm change

#2192, #2342

Existing FrodoKEM in 0.15.0 was renamed to ephemeral FrodoKEM (KEM_efrodokem_<640|976|1344>_<aes|shake>), and the salted variant of FrodoKEM was added under the prior names (KEM_frodokem_<640|976|1344>_<aes|shake>).

Ephemeral FrodoKEM is recommended for applications where each keypair will encapsulate only a small number of shared secrets and ciphertexts. Standard (salted) FrodoKEM is recommended for applications where each keypair is
expected to encapsulate large number of ciphertexts. Please consult upstream for more details.

mldsa-native integration

#2284, #2391, #3445

mldsa-native is a secure, fast, and portable C90 implementation of the ML-DSA post-quantum signature standard. It also includes optimized builds for x86_64 and aarch64. It is now the default implementation behind SIG_ml_dsa_<44|65|87>.

Updated HQC implementation

#2407

The HQC implementations in liboqs were updated to 20250822 spec. Its upstream switched from PQClean to the official repo. KEM_hqc_<1|3|5> is now enabled by default.

MQOM integration and memory-optimized build flag

#2385, #2367

MQOM is a third-round candidate in NIST's Additional Digital Signatures for the PQC Standardization Process. Portable, x86_64-optimized, and memory-optimized implementations were integrate into liboqs under OQS_ENABLE_SIG_MQOM.

A new build flag OQS_MEMOPT_BUILD can now be used to switch to memory-optimized builds for algorithms that have memory-optimized implementations.

OpenSSH implementation of NTRU Prime

#2356

A public-domain OpenSSH implementation of NTRUPrime761 replaced the PQClean implementation as the default backend for KEM_ntruprime_sntrup761.

Bug fixes

  • Fixed incremental absorption bug in AVX512VL SHA3-512 #2442
  • Implemented fallback for when EVP_DigestSqueeze is unavailable #2433
  • Added API for detecting stateful signature support at runtime #2434
  • Fixed missing initialization and indexing bug in LMS #2416
  • Fixed erroneous MAYO_OK despite failed sample_solution() attempts in MAYO #2403
  • Limited pytest parallelism to prevent memory exhaustion in constrained
    environment #2397
  • Fixed cuPQC ML-KEM derand symbol names and #if/#elif chains #2396
  • Tightened Windows compiler detection #2394
  • Fixed mismatched macros in LMS #2379
  • Made fuzzers tolerant to disabled algorithms #2359
  • Removed inlined exponentiation in CROSS-RSDPG-1 #2357
  • Fixed incorrect arg register update in AVX512 Keccak #2330

Miscellaneous

  • Update mlkem-native to v1.2.0 #2470
  • Removed legacy HQC constant-time test #2467
  • Download Intel SDE from alternative source #2463
  • Updated algorithm support information #2441
  • Added NIST LMS Signature verify KATs #2435
  • Fixed comments on SHA3-AVX512VL assembly file. Thank you Anthony Plank for
    reporting the issue #2438
  • Fixed latent warnings exposed by refreshed CI container images #2430
  • Added common dependencies with include_only in copy_from_upstream #2382
  • Documented algorithm support levels #2413
  • Updated Dependabot configuration #2420
  • Added @loganaden as codeowner for Kyber #2421
  • Bumped gitpython version for copy_from_upstream #2414
  • Updated GOVERNANCE.md and CODEOWNERS #2410
  • Added fuzz harness for LMS/XMSS signature verification #2398 #2412
  • Added fuzz harness for XMSS signature verification #2399 #2400
  • Moved compiler optimization level to CMAKE_BUILD_TYPE #2383
  • Updated pytest package version #2408
  • Demoted armhf to tier 3 supported platform #2406
  • Added Wycheproof tests for ML-DSA #2378
  • Added overflow check for OQS_MEM_calloc arguments #2377
  • Updated Wycheproof tests ML-KEM #2373
  • Updated Zephyr CI tests to recent versions #2369
  • Documented KAT sources and hash verification process #2363
  • Added support for ML-DSA pre-hash sign ACVP test vectors #2362
  • Added external-mu sign gen ACVP tests for ML-DSA #2352
  • Cached ACVP test vectors #2354
  • Added OQS_SIG_sign methods tests in vectors_sig [#2350](https://github.com/open-quantum-...
Read more

liboqs version 0.15.0

Choose a tag to compare

@xuganyu96 xuganyu96 released this 14 Nov 21:37
97f6b86

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

liboqs 0.15.0 was released on Friday, Nov 14, 2025.

Deprecation notice

liboqs 0.15.0 is the last version to officially support SPHINCS+. SPHINCS+ will be removed in the 0.16.0 release and replaced by SLH-DSA. liboqs 0.15.0 also removes support for Dilithium.

Security issues

None reported

Significant changes

  • Integrated SLH-DSA implementation from pq-code-package/slhdsa-c
    • SLH-DSA ACVP tests (#2237)
    • Integrate SLH-DSA-C Library (#2175)
  • Added NTRU back (#2176)
  • Removed all Dilithium implementations (#2275)
  • Replaced SPHINCS+ with SLH-DSA for CMake build option OQS_ALGS_ENABLED=STD (#2290)
  • Updated CROSS to version 2.2 (#2247)
  • Included DeriveEncapsulation functionality (#2221)
  • Integrated ML-KEM implementation from ICICLE-PQC (#2216)

Bug fixes

  • Fixed erroneously disabled LMS variants with build flag OQS_ENABLE_SIG_STFL_LMS (#2310)
  • Fixed incorrect import in OV-III-pkc_skc (#2299)
  • Fixed incorrect actual signature length in signature full-cycle speed test (#2293)
  • Fixed ICICLE ML-KEM integration (#2288)
  • Disabled strict aliasing on SPHINCS+-SHAKE (#2264)
  • Fixed typo in test_kem.c (#2281)
  • Fixed uninitialized length_encaps_seed for NTRU implementations (#2266)
  • Changed 64 bit add to 32 bit add to wrap on 32 bit counter for AES-CTR AES-NI implementation (#2252)
  • Improved random number generator security (#2225)
  • Avoided invalid compiler options for MSVC (#2239)
  • Added Classic McEliece sanitization patch (#2218)

Miscellaneous

  • Deprecated noregress scripts (#2295)
  • Updated no-pass explanation for constant-time testing (#2294)
  • Fixed weekly test failures in GitHub Action (#2285)
  • Improved algorithm support readability in README.md (#2286)
  • Re-enabled all ACVP tests (#2283)
  • Moved continuous benchmarking to weekly tests (#2276)
  • Linked to contribution wishlist from CONTRIBUTING.md (#2273)
  • Added content:read permission to scorecard workflow (#2261)
  • Added guidance and questions on generative AI use (#2269)
  • Moved linux_arm_emulated to extended tests (#2236)
  • Fixed pluralization in docs: "key encapsulation mechanisms (KEMs)" (#2255)
  • Fixed permissions for poutine_analysis job (#2246)
  • Disabled testing on Travis CI (#2248)
  • Upgraded Jinja to 3.1.6 (#2214)
  • Updated license info for ML-KEM (#2250)
  • Fixed typos across codebase (#2244)
  • Restructured basic checks (#2233)
  • Fixed code scanning workflow (#2217)
  • Changed Nix install action to verified (#2212)
  • Removed armel comment (#2231)
  • Removed armel support from PLATFORMS.md (#2232)
  • Added Poutine SASL (#2213)
  • Updated nixpkgs from 24.05 to 25.05 (#2187)
  • Added Custom Timeout to CI (#2189)
  • Updated ACVP to 1.1.0.40 (#2172)
  • Switched to dev mode for 0.14.1 (#2199)

New contributors

liboqs version 0.15.0-rc2

Pre-release

Choose a tag to compare

@xuganyu96 xuganyu96 released this 12 Nov 21:34
563e3ec

liboqs version 0.15.0-rc2

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

Release candidate 2 for liboqs 0.15.0 was released on Nov 10, 2025.

Deprecation notice

liboqs 0.15.0 is the last version to officially support SPHINCS+. SPHINCS+ will be removed in the 0.16.0 release and replaced by SLH-DSA. liboqs 0.15.0 also removes support for Dilithium.

Security issues

None reported

Significant changes

  • Integrated SLH-DSA implementation from pq-code-package/slhdsa-c
    • SLH-DSA ACVP tests (#2237)
    • Integrate SLH-DSA-C Library (#2175)
  • Added NTRU back (#2176)
  • Removed all Dilithium implementations (#2275)
  • Replaced SPHINCS+ with SLH-DSA for CMake build option OQS_ALGS_ENABLED=STD (#2290)
  • Updated CROSS to version 2.2 (#2247)
  • Included DeriveEncapsulation functionality (#2221)
  • Integrated ML-KEM implementation from ICICLE-PQC (#2216)

Bug fixes

  • Fixed erroneously disabled LMS variants with build flag OQS_ENABLE_SIG_STFL_LMS (#2310)
  • Fixed incorrect import in OV-III-pkc_skc (#2299)
  • Fixed incorrect actual signature length in signature full-cycle speed test (#2293)
  • Fixed ICICLE ML-KEM integration (#2288)
  • Disabled strict aliasing on SPHINCS+-SHAKE (#2264)
  • Fixed typo in test_kem.c (#2281)
  • Fixed uninitialized length_encaps_seed for NTRU implementations (#2266)
  • Changed 64 bit add to 32 bit add to wrap on 32 bit counter for AES-CTR AES-NI implementation (#2252)
  • Improved random number generator security (#2225)
  • Avoided invalid compiler options for MSVC (#2239)
  • Added Classic McEliece sanitization patch (#2218)

Miscellaneous

  • Deprecated noregress scripts (#2295)
  • Updated no-pass explanation for constant-time testing (#2294)
  • Fixed weekly test failures in GitHub Action (#2285)
  • Improved algorithm support readability in README.md (#2286)
  • Re-enabled all ACVP tests (#2283)
  • Moved continuous benchmarking to weekly tests (#2276)
  • Linked to contribution wishlist from CONTRIBUTING.md (#2273)
  • Added content:read permission to scorecard workflow (#2261)
  • Added guidance and questions on generative AI use (#2269)
  • Moved linux_arm_emulated to extended tests (#2236)
  • Fixed pluralization in docs: "key encapsulation mechanisms (KEMs)" (#2255)
  • Fixed permissions for poutine_analysis job (#2246)
  • Disabled testing on Travis CI (#2248)
  • Upgraded Jinja to 3.1.6 (#2214)
  • Updated license info for ML-KEM (#2250)
  • Fixed typos across codebase (#2244)
  • Restructured basic checks (#2233)
  • Fixed code scanning workflow (#2217)
  • Changed Nix install action to verified (#2212)
  • Removed armel comment (#2231)
  • Removed armel support from PLATFORMS.md (#2232)
  • Added Poutine SASL (#2213)
  • Updated nixpkgs from 24.05 to 25.05 (#2187)
  • Added Custom Timeout to CI (#2189)
  • Updated ACVP to 1.1.0.40 (#2172)
  • Switched to dev mode for 0.14.1 (#2199)

New contributors

liboqs version 0.15.0-rc1

Pre-release

Choose a tag to compare

@dstebila dstebila released this 28 Oct 00:26
ed5c2cc

liboqs version 0.15.0-rc1

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

Release candidate 1 for liboqs 0.15.0 was released on Oct 22, 2025.

Deprecation notice

liboqs 0.15.0 is the last version to officially support SPHINCS+. SPHINCS+ will be removed in the 0.16.0 release and replaced by SLH-DSA. liboqs 0.15.0 also removes support for Dilithium.

Security issues

None reported

Significant changes

  • Integrated SLH-DSA implementation from pq-code-package/slhdsa-c
    • SLH-DSA ACVP tests #2237
    • Integrate SLH-DSA-C Library #2175
  • Added NTRU back #2176
  • Removed all Dilithium implementations (#2275)
  • Replaced SPHINCS+ with SLH-DSA for CMake build option OQS_ALGS_ENABLED=STD (#2290)
  • Updated CROSS to version 2.2 #2247
  • Included DeriveEncapsulation functionality (Issue #2135) #2221
  • Integrated ML-KEM implementation from ICICLE-PQC #2216

Bug fixes

  • Fixed incorrect import in OV-III-pkc_skc (#2299)
  • Fixed incorrect actual signature length in signature full-cycle speed test (#2293)
  • Fixed ICICLE ML-KEM integration (#2288)
  • Disabled strict aliasing on SPHINCS+-SHAKE (#2264)
  • Fixed typo in test_kem.c (#2281)
  • Fixed uninitialized length_encaps_seed for NTRU implementations (#2266)
  • Changed 64 bit add to 32 bit add to wrap on 32 bit counter for AES-CTR AES-NI implementation #2252
  • Improved random number generator security #2225
  • Avoided invalid compiler options for MSVC #2239
  • Added Classic McEliece sanitization patch #2218

Miscellaneous

  • Deprecated noregress scripts (#2295)
  • Updated no-pass explanation for constant-time testing (#2294)
  • Fixed weekly test failures in GitHub Action (#2285)
  • Improved algorithm support readability in README.md (#2286)
  • Re-enabled all ACVP tests (#2283)
  • Moved continuous benchmarking to weekly tests (#2276)
  • Linked to contribution wishlist from CONTRIBUTING.md (#2273)
  • Added content:read permission to scorecard workflow (#2261)
  • Added guidance and questions on generative AI use (#2269)
  • Moved linux_arm_emulated to extended tests #2236
  • Fixed pluralization in docs: "key encapsulation mechanisms (KEMs)" #2255
  • Fixed permissions for poutine_analysis job #2246
  • Disabled testing on Travis CI #2248
  • Upgraded Jinja to 3.1.6 #2214
  • Updated license info for ML-KEM #2250
  • Fixed typos across codebase #2244
  • Restructured basic checks #2233
  • Fixed code scanning workflow #2217
  • Changed Nix install action to verified #2212
  • Removed armel comment #2231
  • Removed armel support from PLATFORMS.md #2232
  • Added Poutine SASL #2213
  • Updated nixpkgs from 24.05 to 25.05 #2187
  • Added Custom Timeout to CI #2189
  • Updated ACVP to 1.1.0.40 #2172
  • Switched to dev mode for 0.14.1 #2199

New contributors

liboqs version 0.14.0

Choose a tag to compare

@dstebila dstebila released this 10 Jul 17:47
94b421e

liboqs version 0.14.0

About

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

This is version 0.14.0 of liboqs. It was released on July 10, 2025.

This release contains a security fix for secret-dependent branching in HQC. It introduces support for SNOVA, a NIST Additional Signatures Round 2 candidate, and a new optimized implementation of SHA3 using AVX-512VL instructions. Additionally, this is the first liboqs release to include the stable 1.0.0 version of PQ Code Package's mlkem-native.

This release also introduces a number of improvements to testing and infrastructure. The OQS project is now publishing benchmarking data on https://openquantumsafe.org/benchmarking and code coverage data on https://coveralls.io/github/open-quantum-safe/liboqs.

Deprecation notice

This will be the last release of liboqs to include Dilithium (that is, the NIST Round 3 version of Dilithium, prior to its standardization by NIST as ML-DSA in FIPS 204). Applications should switch to ML-DSA (FIPS 204). Please contact us if you have any concerns.

Security issues

  • CVE-2025-52473: Disabled compiler optimizations for HQC to avoid secret-dependent branches. Thank you to Zhenzhi Lai and Zhiyuan Zhang from from the University of Melbourne and the Max Planck Institute for Security and Privacy for identifying the issue.

What's New

This release continues from the 0.13.0 release of liboqs.

Key encapsulation mechanisms

  • HQC: Disabled compiler optimizations to avoid secret-dependent branching in certain configurations. HQC remains disabled by default.
  • ML-KEM: Updated the default ML-KEM implementation to PQCP's mlkem-native v1.0.0.

Digital signature schemes

  • New API: added an API function to check if a signature scheme supports signing with a context string.
  • SNOVA: added SNOVA from NIST Additional Signature Schemes Round 2.

Other changes

  • Added an AVX512VL-optimized backend for SHA3.
  • Improved memory management throughout the codebase.

Detailed changelog

What's Changed

New Contributors

Full Changelog: 0.13.0...0.14.0

liboqs version 0.14.0-rc1

Pre-release

Choose a tag to compare

@SWilson4 SWilson4 released this 25 Jun 20:42

liboqs version 0.14.0-rc1

About

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

This is release candidate 1 for version 0.14.0 of liboqs. It was released on June 25, 2025.

This release contains a security fix for secret-dependent branching in HQC. It introduces support for SNOVA, a NIST Additional Signatures Round 2 candidate, and a new optimized implementation of SHA3 using AVX-512VL instructions. Additionally, this is the first liboqs release to include the stable 1.0.0 version of PQ Code Package's mlkem-native.

This release also introduces a number of improvements to testing and infrastructure. The OQS project is now publishing benchmarking data on https://openquantumsafe.org/benchmarking and code coverage data on https://coveralls.io/github/open-quantum-safe/liboqs.

Deprecation notice

This will be the last release of liboqs to include Dilithium (that is, the NIST Round 3 version of Dilithium, prior to its standardization by NIST as ML-DSA in FIPS 204). Applications should switch to ML-DSA (FIPS 204). Please contact us if you have any concerns.

Security issues

  • CVE-2025-52473: Disabled compiler optimizations for HQC to avoid secret-dependent branches. Thank you to Zhenzhi Lai and Zhiyuan Zhang from from the University of Melbourne and the Max Planck Institute for Security and Privacy for identifying the issue.

What's New

This release continues from the 0.13.0 release of liboqs.

Key encapsulation mechanisms

  • HQC: Disabled compiler optimizations to avoid secret-dependent branching in certain configurations. HQC remains disabled by default.
  • ML-KEM: Updated the default ML-KEM implementation to PQCP's mlkem-native v1.0.0.

Digital signature schemes

  • New API: added an API function to check if a signature scheme supports signing with a context string.
  • SNOVA: added SNOVA from NIST Additional Signature Schemes Round 2.

Other changes

  • Added an AVX512VL-optimized backend for SHA3.
  • Improved memory management throughout the codebase.

What's Changed

New Contributors

Full Changelog: 0.13.0...0.14.0-rc1

liboqs version 0.13.0

Choose a tag to compare

@praveksharma praveksharma released this 17 Apr 15:06

liboqs version 0.13.0

About

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

This is version 0.13.0 of liboqs. It was released on April 16, 2025.

This release improves support for NIST Additional Signatures Round 2 candidates: CROSS and MAYO implementations are updated and support is added for UOV. This release also adds a new KEM API for deterministic key generation (only supported by ML-KEM at the moment). Finally, this release adds support for ML-KEM implementations from 2 new sources: formally verified portable C, AVX2, and AArch64 implementations from PQCP's mlkem-native and a GPU accelerated CUDA implementation from Nvidia cuPQC.

OQS is running a survey to better understand our community. We would like to hear from organizations and individuals about their interest in and use of the Open Quantum Safe project. Please take a few minutes to fill out the survey: https://linuxfoundation.surveymonkey.com/r/oqssurvey

What's New

This release continues from the 0.12.0 release of liboqs.

Key encapsulation mechanisms

  • New API: Added a deterministic key generation and API for KEMs (only ML-KEM supported at the moment).
  • ML-KEM: Changed the default ML-KEM implementation to PQCP's mlkem-native. There are three variants: Portable C, AVX2, and AArch64. Large parts of these implementations are formally verified: all of the C code is verified for memory and type safety using CBMC and the functional correctness of the core AArch64 assembly routines is verified using HOL-Light.
  • ML-KEM: Added support for the ML-KEM implementation from Nvidia cuPQC, a GPU accelerated cryptography library.
  • ML-KEM: Implementation from mlkem-native upstream updated to add Pair-wise Consistency Test (PCT) and Intel CET support.
  • ML-KEM: Improved testing of ML-KEM keys.
  • HQC: Disabled HQC by default until a new security flaw is fixed.

Digital signature schemes

  • ML-DSA: Improved testing for ML-DSA.
  • CROSS: Updated to NIST Additional Signatures Round 2 version.
  • MAYO: Updated to NIST Additional Signatures Round 2 version.
  • UOV: Added support for UOV algorithm from NIST Additional Signatures Round 2.

Other changes

  • Added support for loongarch64 architecture.

Detailed changelog

What's Changed

New Contributors

Full Changelog: 0.12.0...0.13.0

liboqs version 0.13.0-rc1

Pre-release

Choose a tag to compare

@praveksharma praveksharma released this 02 Apr 15:23

liboqs version 0.13.0-rc1

About

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

This is version 0.13.0-rc1 of liboqs. It was released on March 19, 2025.

This release improves support for NIST Additional Signatures Round 2 candidates: CROSS and MAYO implementations are updated and support is added for UOV. This release also adds a new KEM API for deterministic key generation (only supported by ML-KEM at the moment). Finally, this release adds support for ML-KEM implementations from 2 new sources: formally verified portable C, AVX2, and AArch64 implementations from PQCP's mlkem-native and a GPU accelerated CUDA implementation from Nvidia cuPQC.

What's New

This release continues from the 0.12.0 release of liboqs.

Key encapsulation mechanisms

  • New API: Added a deterministic key generation and API for KEMs (only ML-KEM supported at the moment).
  • ML-KEM: Changed the default ML-KEM implementation to PQCP's mlkem-native. There are three variants: Portable C, AVX2, and AArch64. Large parts of these implementations are formally verified: all of the C code is verified for memory and type safety using CBMC and the functional correctness of the core AArch64 assembly routines is verified using HOL-Light.
  • ML-KEM: Added support for the ML-KEM implementation from Nvidia cuPQC, a GPU accelerated cryptography library.
  • ML-KEM: Implementation from mlkem-native upstream updated to add Pair-wise Consistency Test (PCT) and Intel CET support.
  • ML-KEM: Improved testing of ML-KEM keys.

Digital signature schemes

  • ML-DSA: Improved testing for ML-DSA.
  • CROSS: Updated to NIST Additional Signatures Round 2 version.
  • MAYO: Updated to NIST Additional Signatures Round 2 version.
  • UOV: Added support for UOV algorithm from NIST Additional Signatures Round 2.

Other changes

  • Added support for loongarch64 architecture.

Detailed changelog

What's Changed

New Contributors

Full Changelog: 0.12.0...0.13.0-rc1

liboqs version 0.12.0

Choose a tag to compare

@dstebila dstebila released this 10 Dec 01:29
f4b9622

liboqs version 0.12.0

About

The Open Quantum Safe (OQS) project has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.

liboqs is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in README.md. See in particular limitations on intended use.

liboqs can be used with the following Open Quantum Safe application integrations:

  • oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key authentication and exchange for TLS 1.3, X.509 certificate generation and CMS operations.
  • OQS-BoringSSL: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of BoringSSL; see https://github.com/open-quantum-safe/boringssl.
  • OQS-OpenSSH: A prototype integration of liboqs-based authentication and key exchange into Secure Shell (SSH) version 2 in our fork of OpenSSH; see https://github.com/open-quantum-safe/openssh.

Several demos are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark.

liboqs can also be used in the following programming languages via language-specific wrappers:

Release notes

This is version 0.12.0 of liboqs. It was released on December 9, 2024.

This release updates the ML-DSA implementation to the final FIPS 204 version. This release still includes the NIST Round 3 version of Dilithium for interoperability purposes, but we plan to remove Dilithium Round 3 in a future release.

Deprecation notice

This will be the last release of liboqs to include Kyber (that is, the NIST Round 3 version of Kyber, prior to its standardization by NIST as ML-KEM in FIPS 203). Applications should switch to ML-KEM (FIPS 203).

The addition of ML-DSA FIPS 204 final version to liboqs has introduced a new signature API which includes a context string parameter. We are planning to remove the old version of the API without a context string in the next release to streamline the API and bring it in line with NIST specifications. Users who have an opinion on this removal are invited to provide input at #2001.

Security issues

  • CVE-2024-54137: Fixed bug in HQC decapsulation that leads to incorrect shared secret value during decapsulation when called with an invalid ciphertext. Thank you to Célian Glénaz and Dahmun Goudarzi from Quarkslab for identifying the issue.

What's New

This release continues from the 0.11.0 release of liboqs.

Key encapsulation mechanisms

  • HQC: Fixed bug in decapsulation that leads to incorrect shared secret value during decapsulation when called with an invalid ciphertext. Thank you to Célian Glénaz and Dahmun Goudarzi from Quarkslab for identifying the issue.
  • Kyber: This is the last release of liboqs to include Kyber.
  • ML-KEM: Improved testing of ML-KEM.

Digital signature schemes

  • LMS: Fixed crashing bug.
  • ML-DSA: Removed FIPS 204-ipd (initial public draft) and replaced it with FIPS 204 final version.
  • Added new API for digital signatures with context strings; see #2001 for plan to remove old API without context string.
  • Added fuzzing tests for signature schemes.
  • Added benchmarking for stateful hash-based signature schemes.

Other changes

  • Updated CBOM format to version 1.6.
  • Added a function OQS_thread_stop to be called by multi-threaded applications to properly deallocate resources in a threaded execution.
  • Added preprocessor macros conveying liboqs version information.

Detailed changelog

What's Changed

New Contributors

Full Changelog: 0.11.0...0.12.0