From 7980d7341761a10915ebc0a844b9958f3da7fc2f Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Wed, 27 May 2026 13:31:24 -0400 Subject: [PATCH 01/12] Skeleton release Signed-off-by: Ganyu (Bruce) Xu --- CMakeLists.txt | 4 +-- RELEASE.md | 82 +++++++++++--------------------------------------- SECURITY.md | 4 +-- 3 files changed, 21 insertions(+), 69 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eac3f971d3..7e98b7d75a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,9 +47,9 @@ set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_C_VISIBILITY_PRESET hidden) set(OQS_VERSION_MAJOR 0) -set(OQS_VERSION_MINOR 15) +set(OQS_VERSION_MINOR 16) set(OQS_VERSION_PATCH 0) -set(OQS_VERSION_PRE_RELEASE "") +set(OQS_VERSION_PRE_RELEASE "-rc1") set(OQS_VERSION_TEXT "${OQS_VERSION_MAJOR}.${OQS_VERSION_MINOR}.${OQS_VERSION_PATCH}${OQS_VERSION_PRE_RELEASE}") set(OQS_COMPILE_BUILD_TARGET "${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM}") set(OQS_MINIMAL_GCC_VERSION "7.1.0") diff --git a/RELEASE.md b/RELEASE.md index 0ad3635522..d2d3b2ffbd 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,4 +1,4 @@ -# liboqs version 0.15.0 +# liboqs version 0.16.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/. @@ -21,79 +21,31 @@ liboqs can also be used in the following programming languages via language-spec - Rust, via https://github.com/open-quantum-safe/liboqs-rust # Release notes -liboqs 0.15.0 was released on Friday, Nov 14, 2025. + +liboqs 0.16.0-rc1 was released on Tuesday, June 2, 2026. ## 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](https://github.com/pq-code-package/slhdsa-c/)** - - SLH-DSA ACVP tests ([#2237](https://github.com/open-quantum-safe/liboqs/pull/2237)) - - Integrate SLH-DSA-C Library ([#2175](https://github.com/open-quantum-safe/liboqs/pull/2175)) -- Added NTRU back ([#2176](https://github.com/open-quantum-safe/liboqs/pull/2176)) -- Removed all Dilithium implementations ([#2275](https://github.com/open-quantum-safe/liboqs/pull/2275)) -- Replaced SPHINCS+ with SLH-DSA for CMake build option `OQS_ALGS_ENABLED=STD` ([#2290](https://github.com/open-quantum-safe/liboqs/pull/2290)) -- Updated CROSS to version 2.2 ([#2247](https://github.com/open-quantum-safe/liboqs/pull/2247)) -- Included DeriveEncapsulation functionality ([#2221](https://github.com/open-quantum-safe/liboqs/pull/2221)) -- Integrated ML-KEM implementation from ICICLE-PQC ([#2216](https://github.com/open-quantum-safe/liboqs/pull/2216)) + + ## Bug fixes -- Fixed erroneously disabled LMS variants with build flag `OQS_ENABLE_SIG_STFL_LMS` ([#2310](https://github.com/open-quantum-safe/liboqs/pull/2310)) -- Fixed incorrect import in OV-III-pkc_skc ([#2299](https://github.com/open-quantum-safe/liboqs/pull/2299)) -- Fixed incorrect actual signature length in signature full-cycle speed test ([#2293](https://github.com/open-quantum-safe/liboqs/pull/2293)) -- Fixed ICICLE ML-KEM integration ([#2288](https://github.com/open-quantum-safe/liboqs/pull/2293)) -- Disabled strict aliasing on SPHINCS+-SHAKE ([#2264](https://github.com/open-quantum-safe/liboqs/pull/2264)) -- Fixed typo in `test_kem.c` ([#2281](https://github.com/open-quantum-safe/liboqs/pull/2281)) -- Fixed uninitialized `length_encaps_seed` for NTRU implementations ([#2266](https://github.com/open-quantum-safe/liboqs/pull/2266)) - - -- Changed 64 bit add to 32 bit add to wrap on 32 bit counter for AES-CTR AES-NI implementation ([#2252](https://github.com/open-quantum-safe/liboqs/pull/2252)) -- Improved random number generator security ([#2225](https://github.com/open-quantum-safe/liboqs/pull/2225)) -- Avoided invalid compiler options for MSVC ([#2239](https://github.com/open-quantum-safe/liboqs/pull/2239)) -- Added Classic McEliece sanitization patch ([#2218](https://github.com/open-quantum-safe/liboqs/pull/2218)) + + ## Miscellaneous -- Deprecated `noregress` scripts ([#2295](https://github.com/open-quantum-safe/liboqs/pull/2295)) -- Updated no-pass explanation for constant-time testing ([#2294](https://github.com/open-quantum-safe/liboqs/pull/2294)) -- Fixed weekly test failures in GitHub Action ([#2285](https://github.com/open-quantum-safe/liboqs/pull/2294)) -- Improved algorithm support readability in README.md ([#2286](https://github.com/open-quantum-safe/liboqs/pull/2286)) -- Re-enabled all ACVP tests ([#2283](https://github.com/open-quantum-safe/liboqs/pull/2283)) -- Moved continuous benchmarking to weekly tests ([#2276](https://github.com/open-quantum-safe/liboqs/pull/2276)) -- Linked to contribution wishlist from CONTRIBUTING.md ([#2273](https://github.com/open-quantum-safe/liboqs/pull/2273)) -- Added content:read permission to scorecard workflow ([#2261](https://github.com/open-quantum-safe/liboqs/pull/2261)) -- Added guidance and questions on generative AI use ([#2269](https://github.com/open-quantum-safe/liboqs/pull/2269)) -- Moved `linux_arm_emulated` to extended tests ([#2236](https://github.com/open-quantum-safe/liboqs/pull/2236)) -- Fixed pluralization in docs: "key encapsulation mechanisms (KEMs)" ([#2255](https://github.com/open-quantum-safe/liboqs/pull/2255)) -- Fixed permissions for poutine_analysis job ([#2246](https://github.com/open-quantum-safe/liboqs/pull/2246)) -- Disabled testing on Travis CI ([#2248](https://github.com/open-quantum-safe/liboqs/pull/2248)) -- Upgraded Jinja to 3.1.6 ([#2214](https://github.com/open-quantum-safe/liboqs/pull/2214)) -- Updated license info for ML-KEM ([#2250](https://github.com/open-quantum-safe/liboqs/pull/2250)) -- Fixed typos across codebase ([#2244](https://github.com/open-quantum-safe/liboqs/pull/2244)) -- Restructured basic checks ([#2233](https://github.com/open-quantum-safe/liboqs/pull/2233)) -- Fixed code scanning workflow ([#2217](https://github.com/open-quantum-safe/liboqs/pull/2217)) -- Changed Nix install action to verified ([#2212](https://github.com/open-quantum-safe/liboqs/pull/2212)) -- Removed `armel` comment ([#2231](https://github.com/open-quantum-safe/liboqs/pull/2231)) -- Removed `armel` support from `PLATFORMS.md` ([#2232](https://github.com/open-quantum-safe/liboqs/pull/2232)) -- Added Poutine SASL ([#2213](https://github.com/open-quantum-safe/liboqs/pull/2213)) -- Updated nixpkgs from 24.05 to 25.05 ([#2187](https://github.com/open-quantum-safe/liboqs/pull/2187)) -- Added Custom Timeout to CI ([#2189](https://github.com/open-quantum-safe/liboqs/pull/2189)) -- Updated ACVP to 1.1.0.40 ([#2172](https://github.com/open-quantum-safe/liboqs/pull/2172)) -- Switched to dev mode for 0.14.1 ([#2199](https://github.com/open-quantum-safe/liboqs/pull/2199)) + + ## New contributors -- Ganyu (Bruce) Xu (@xuganyu96) -- Ethan Li (@lir2002) -- @nonam3e (associated with Ingonyama) -- Saito Masataka (@saitomst) -- @max-p-log-p -- Vibhav Tiwari (@vibhav950) -- Dmitry (@mdqst) -- Rodrigo Martín (@RodriM11) -- @sukrucildirr -- Kitsios Konstantinos (@kitsiosk) - - + + diff --git a/SECURITY.md b/SECURITY.md index 74908b16e0..560194223b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,8 +8,8 @@ Using any code prior to 0.12.0 is strongly discouraged due to a [known security | Version | Supported | | ------- | ------------------ | -| 0.15.0 | :white_check_mark: | -| < 0.15 | :x: | +| 0.16.0 | :white_check_mark: | +| < 0.16 | :x: | ## Reporting a Vulnerability From e5ffdae8cbf71d37befa8b6b533845ad2720a3c0 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Tue, 2 Jun 2026 10:04:54 -0400 Subject: [PATCH 02/12] [skip ci] draft release notes, with to-do's Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 128 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 99 insertions(+), 29 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index d2d3b2ffbd..7053955eb3 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -20,32 +20,102 @@ liboqs can also be used in the following programming languages via language-spec - Python 3, via https://github.com/open-quantum-safe/liboqs-python - Rust, via https://github.com/open-quantum-safe/liboqs-rust -# Release notes - -liboqs 0.16.0-rc1 was released on Tuesday, June 2, 2026. - -## Deprecation notice - - - -## Security issues - - - - - -## Significant changes - - - -## Bug fixes - - - -## Miscellaneous - - - -## New contributors - - +## Release notes + +liboqs 0.16.0-rc1 was released on Tuesday, June 9, 2026. + +### Deprecation notice + +SPHINCS+ was removed in 0.16.0. + +### Security issues + + +- 077e32a: Fixed heap out-of-bounds read in XMSS/XMSS^MT verify +- ef70dea: Fixed XMSS/XMSS^MT signature verification OOB read (#2384) +- 25d0a9e: +- ab0e07c: Fixed incorrect array size when calling `secure_clean` + +### Significant change + + +- ca732f3: Update mldsa-native implementations to v1.0.0-beta2 (#2445) +- ba66c3b: Pull MAYO update from upstream (#2403) +- 4369178: Update mlkem-native to v1.1.0 (#2376) +- 67b35f2: Added MQOM (#2385) +- c01e18f: Added public domain OpenSSH implementation of sntrup761 (#2356) +- a2fb264: Introduce `OQS_MEMOPT_BUILD` to enable memory‑optimized builds (#2367) + +- 6b390dd: Add both variants of frodokem (#2342) +- 8078e89: Remove SPHINCS+ (#2339) + +- 2959f1a: mldsa-native integration (#2284) + +### Bug fixes + +- f986aea: Fixed incremental absorption bug in AVX512VL SHA3-512 (#2442) + +- f28cef1: Probe once for EVP_DigestSqueeze; fall back when unsupported (#2433) + +- 4cc83e5: Add `OQS_SIG_STFL_keygen_and_sign_supported()` for runtime detection (#2434) +- 2c8352c: Fixed missing initialization and indexing bug in LMS (#2416) +- 0e325cc: Limit pytest processes to prevent OOM on low-RAM systems (#2397) +- 1ae9cf6: Fixed cuPQC ML-KEM derand symbol names and `#if/#elif` chains (#2396) +- 03681f8: Tightened Windows compiler detection (#2394) +- 65e23ac: Fixed mismatched macros in LMS (#2379) + +- c58e93e: Make fuzzers tolerant to disabled algorithms (#2359) +- cb2d43e: Avoid inlined exponentiation in CROSS-RSDPG-1 (#2357) +- 1477303: Fix incorrect arg register update in AVX512 Keccak (#2330) + +### Miscellaneous + +- 5a8d047: Add NIST LMS Signature verify KATs (#2435) +- 813ba34: Fix comments on SHA3-AVX512VL assembly file (#2438) +- da7cea3: Fix latent warnings exposed by refreshed CI container images (#2430) +- 4956ce7: add common dependencies with include_only in `copy_from_upstream` (#2382) + +- 2c6c917: Create a table of algorithm support levels (#2413) +- 2297d7a: Dependabot configuration and dependency updates (#2420) +- e2a79a3: Add loganaden as codeowner for Kyber (#2421) +- 42a52fa: Bump `gitpython` version for `copy_from_upstream` (#2414) + +- 9fb382e: Update GOVERNANCE.md and CODEOWNERS (#2410) +- cd8a5d9: Add fuzz harness for LMS/XMSS signature verification (#2400) +- d850938: Add fuzz harness for XMSS signature verification (#2400) +- 69d2333: Move compiler optimization level to CMAKE_BUILD_TYPE (#2383) +- 3cb781f: Update pytest package version (#2408) +- 8bffe2e: Demote armhf to tier 3 supported platform (#2406) +- e0de251: Add Wycheproof tests for ML-DSA (#2378) +- e8b2e77: Check for overflow in arguments passed to OQS_MEM_calloc (#2377) +- 94662d9: Add latest Wycheproof tests ML-KEM (#2373) +- 04ab195: Update Zephyr CI tests to recent versions (#2369) +- d1d8447: document KAT sources and hash verification process (#2363) +- f1e80d1: Add support for ML-DSA pre-hash sign ACVP test vectors (#2362) +- d205492: Add external-mu sign gen ACVP tests for ML-DSA (#2352) +- 4fa3045: Cache ACVP test vectors (#2354) +- 30edf7b: test OQS_SIG_sign methods in vectors_sig (#2350) +- ab41146: Add the path to the binary include dir (#2312) +- 137860b: Remove local copies of ACVP test vectors (#2303) +- 754e1ed: New stylesheet for Doxygen-generated documentation (#2337) +- 04d9b6d: Docs: List all optimized implementations (#2333) +- 589731b: Fixed README href formatting (#2323) +- 39ea281: Unpin OQS_MINIMAL_BUILD alg list link from specific commit (#2326) + +### New contributors + +- Anthony Plank (report SHA3 AVX512VL comment in #2438) +- Vishnu Ajith (@Vishnu2707) +- William Bates +- Marco Gianvecchio for authoring 25d0a9e +- Nelonn +- Abhi S +- Ryad Benadjila +- Billy Brumley +- Tobias Frauenschläger +- saanvi ratra +- Harshith Vasireddy <34184577+ode@users.noreply.github.com> +- Nathaniel Brough +- Laugenbraue <36441810+mmarock@users.noreply.github.com> +- Sam Van de Velde <58397500+samvandevelde@users.noreply.github.com> +- Emil Lundberg From 06150bdb8e6757033c9c9adfaa0bc7b4b3a9abf6 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Tue, 2 Jun 2026 10:39:37 -0400 Subject: [PATCH 03/12] Improved writing on release notes Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 118 ++++++++++++++++++++++++++--------------------------- 1 file changed, 57 insertions(+), 61 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 7053955eb3..b7b9eeb81e 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -30,77 +30,73 @@ SPHINCS+ was removed in 0.16.0. ### Security issues - -- 077e32a: Fixed heap out-of-bounds read in XMSS/XMSS^MT verify -- ef70dea: Fixed XMSS/XMSS^MT signature verification OOB read (#2384) -- 25d0a9e: -- ab0e07c: Fixed incorrect array size when calling `secure_clean` +- Fixed out-of-bounds read in XMSS/XMSS^MT signature verification [077e32a](https://github.com/open-quantum-safe/liboqs/commit/077e32a) [#2384](https://github.com/open-quantum-safe/liboqs/pull/2384) +- Fixed Integer underflow in CROSS `crypto_sign_open()` [25d0a9e](https://github.com/open-quantum-safe/liboqs/commit/25d0a9e) +- Fixed incorrect array size when calling `secure_clean` [ab0e07c](https://github.com/open-quantum-safe/liboqs/commit/ab0e07c) ### Significant change - -- ca732f3: Update mldsa-native implementations to v1.0.0-beta2 (#2445) -- ba66c3b: Pull MAYO update from upstream (#2403) -- 4369178: Update mlkem-native to v1.1.0 (#2376) -- 67b35f2: Added MQOM (#2385) -- c01e18f: Added public domain OpenSSH implementation of sntrup761 (#2356) -- a2fb264: Introduce `OQS_MEMOPT_BUILD` to enable memory‑optimized builds (#2367) - -- 6b390dd: Add both variants of frodokem (#2342) -- 8078e89: Remove SPHINCS+ (#2339) - -- 2959f1a: mldsa-native integration (#2284) + +- mldsa-native integration [#2284](https://github.com/open-quantum-safe/liboqs/pull/2284) [#2391](https://github.com/open-quantum-safe/liboqs/pull/2391) [#2445](https://github.com/open-quantum-safe/liboqs/pull/2445) +- Fixed erroneous MAYO_OK despite failed sample_solution() attempts in MAYO [#2403](https://github.com/open-quantum-safe/liboqs/pull/2403) +- Update mlkem-native to v1.1.0 [#2376](https://github.com/open-quantum-safe/liboqs/pull/2376) +- Added MQOM [#2385](https://github.com/open-quantum-safe/liboqs/pull/2385) +- Added public domain OpenSSH implementation of sntrup761 [#2356](https://github.com/open-quantum-safe/liboqs/pull/2356) +- Added build option `OQS_MEMOPT_BUILD` to enable memory‑optimized builds [#2367](https://github.com/open-quantum-safe/liboqs/pull/2367) +- Added salted variants of FrodoKEM [#2342](https://github.com/open-quantum-safe/liboqs/pull/2342) +- Removed SPHINCS+ [#2339](https://github.com/open-quantum-safe/liboqs/pull/2339) ### Bug fixes -- f986aea: Fixed incremental absorption bug in AVX512VL SHA3-512 (#2442) - -- f28cef1: Probe once for EVP_DigestSqueeze; fall back when unsupported (#2433) - -- 4cc83e5: Add `OQS_SIG_STFL_keygen_and_sign_supported()` for runtime detection (#2434) -- 2c8352c: Fixed missing initialization and indexing bug in LMS (#2416) -- 0e325cc: Limit pytest processes to prevent OOM on low-RAM systems (#2397) -- 1ae9cf6: Fixed cuPQC ML-KEM derand symbol names and `#if/#elif` chains (#2396) -- 03681f8: Tightened Windows compiler detection (#2394) -- 65e23ac: Fixed mismatched macros in LMS (#2379) +- Fixed incremental absorption bug in AVX512VL SHA3-512 [#2442](https://github.com/open-quantum-safe/liboqs/pull/2442) +- Implemented fallback for when `EVP_DigestSqueeze` is unavailable [#2433](https://github.com/open-quantum-safe/liboqs/pull/2433) +- Added API for detecting stateful signature support at runtime [#2434](https://github.com/open-quantum-safe/liboqs/pull/2434) +- Fixed missing initialization and indexing bug in LMS [#2416](https://github.com/open-quantum-safe/liboqs/pull/2416) +- Limited pytest parallelism to prevent memory exhaustion in constrained environment [#2397](https://github.com/open-quantum-safe/liboqs/pull/2397) +- Fixed cuPQC ML-KEM derand symbol names and `#if/#elif` chains [#2396](https://github.com/open-quantum-safe/liboqs/pull/2396) +- Tightened Windows compiler detection [#2394](https://github.com/open-quantum-safe/liboqs/pull/2394) +- Fixed mismatched macros in LMS [#2379](https://github.com/open-quantum-safe/liboqs/pull/2379) -- c58e93e: Make fuzzers tolerant to disabled algorithms (#2359) -- cb2d43e: Avoid inlined exponentiation in CROSS-RSDPG-1 (#2357) -- 1477303: Fix incorrect arg register update in AVX512 Keccak (#2330) +- Made fuzzers tolerant to disabled algorithms [#2359](https://github.com/open-quantum-safe/liboqs/pull/2359) +- Removed inlined exponentiation in CROSS-RSDPG-1 [#2357](https://github.com/open-quantum-safe/liboqs/pull/2357) +- Fixed incorrect arg register update in AVX512 Keccak [#2330](https://github.com/open-quantum-safe/liboqs/pull/2330) ### Miscellaneous -- 5a8d047: Add NIST LMS Signature verify KATs (#2435) -- 813ba34: Fix comments on SHA3-AVX512VL assembly file (#2438) -- da7cea3: Fix latent warnings exposed by refreshed CI container images (#2430) -- 4956ce7: add common dependencies with include_only in `copy_from_upstream` (#2382) - -- 2c6c917: Create a table of algorithm support levels (#2413) -- 2297d7a: Dependabot configuration and dependency updates (#2420) -- e2a79a3: Add loganaden as codeowner for Kyber (#2421) -- 42a52fa: Bump `gitpython` version for `copy_from_upstream` (#2414) - -- 9fb382e: Update GOVERNANCE.md and CODEOWNERS (#2410) -- cd8a5d9: Add fuzz harness for LMS/XMSS signature verification (#2400) -- d850938: Add fuzz harness for XMSS signature verification (#2400) -- 69d2333: Move compiler optimization level to CMAKE_BUILD_TYPE (#2383) -- 3cb781f: Update pytest package version (#2408) -- 8bffe2e: Demote armhf to tier 3 supported platform (#2406) -- e0de251: Add Wycheproof tests for ML-DSA (#2378) -- e8b2e77: Check for overflow in arguments passed to OQS_MEM_calloc (#2377) -- 94662d9: Add latest Wycheproof tests ML-KEM (#2373) -- 04ab195: Update Zephyr CI tests to recent versions (#2369) -- d1d8447: document KAT sources and hash verification process (#2363) -- f1e80d1: Add support for ML-DSA pre-hash sign ACVP test vectors (#2362) -- d205492: Add external-mu sign gen ACVP tests for ML-DSA (#2352) -- 4fa3045: Cache ACVP test vectors (#2354) -- 30edf7b: test OQS_SIG_sign methods in vectors_sig (#2350) -- ab41146: Add the path to the binary include dir (#2312) -- 137860b: Remove local copies of ACVP test vectors (#2303) -- 754e1ed: New stylesheet for Doxygen-generated documentation (#2337) -- 04d9b6d: Docs: List all optimized implementations (#2333) -- 589731b: Fixed README href formatting (#2323) -- 39ea281: Unpin OQS_MINIMAL_BUILD alg list link from specific commit (#2326) +- Added NIST LMS Signature verify KATs [#2435](https://github.com/open-quantum-safe/liboqs/pull/2435) +- Fixed comments on SHA3-AVX512VL assembly file [#2438](https://github.com/open-quantum-safe/liboqs/pull/2438) +- Fixed latent warnings exposed by refreshed CI container images [#2430](https://github.com/open-quantum-safe/liboqs/pull/2430) +- Added common dependencies with `include_only` in `copy_from_upstream` [#2382](https://github.com/open-quantum-safe/liboqs/pull/2382) +- Documented algorithm support levels [#2413](https://github.com/open-quantum-safe/liboqs/pull/2413) +- Updated Dependabot configuration [#2420](https://github.com/open-quantum-safe/liboqs/pull/2420) +- Added @loganaden as codeowner for Kyber [#2421](https://github.com/open-quantum-safe/liboqs/pull/2421) +- Bumped `gitpython` version for `copy_from_upstream` [#2414](https://github.com/open-quantum-safe/liboqs/pull/2414) +- Updated GOVERNANCE.md and CODEOWNERS [#2410](https://github.com/open-quantum-safe/liboqs/pull/2410) +- Added fuzz harness for LMS/XMSS signature verification [#2398](https://github.com/open-quantum-safe/liboqs/pull/2398) [#2412](https://github.com/open-quantum-safe/liboqs/pull/2412) +- Added fuzz harness for XMSS signature verification [#2399](https://github.com/open-quantum-safe/liboqs/pull/2399) [#2400](https://github.com/open-quantum-safe/liboqs/pull/2400) +- Moved compiler optimization level to CMAKE_BUILD_TYPE [#2383](https://github.com/open-quantum-safe/liboqs/pull/2383) +- Updated pytest package version [#2408](https://github.com/open-quantum-safe/liboqs/pull/2408) +- Demoted armhf to tier 3 supported platform [#2406](https://github.com/open-quantum-safe/liboqs/pull/2406) +- Added Wycheproof tests for ML-DSA [#2378](https://github.com/open-quantum-safe/liboqs/pull/2378) +- Added overflow check for OQS_MEM_calloc arguments [#2377](https://github.com/open-quantum-safe/liboqs/pull/2377) +- Updated Wycheproof tests ML-KEM [#2373](https://github.com/open-quantum-safe/liboqs/pull/2373) +- Updated Zephyr CI tests to recent versions [#2369](https://github.com/open-quantum-safe/liboqs/pull/2369) +- Documented KAT sources and hash verification process [#2363](https://github.com/open-quantum-safe/liboqs/pull/2363) +- Added support for ML-DSA pre-hash sign ACVP test vectors [#2362](https://github.com/open-quantum-safe/liboqs/pull/2362) +- Added external-mu sign gen ACVP tests for ML-DSA [#2352](https://github.com/open-quantum-safe/liboqs/pull/2352) +- Cached ACVP test vectors [#2354](https://github.com/open-quantum-safe/liboqs/pull/2354) +- Added OQS_SIG_sign methods tests in vectors_sig [#2350](https://github.com/open-quantum-safe/liboqs/pull/2350) +- Added the path to the binary include dir [#2312](https://github.com/open-quantum-safe/liboqs/pull/2312) +- Removed local copies of ACVP test vectors [#2303](https://github.com/open-quantum-safe/liboqs/pull/2303) +- New stylesheet for Doxygen-generated documentation [#2337](https://github.com/open-quantum-safe/liboqs/pull/2337) +- Docs: List all optimized implementations [#2333](https://github.com/open-quantum-safe/liboqs/pull/2333) +- Fixed README href formatting [#2323](https://github.com/open-quantum-safe/liboqs/pull/2323) +- Unpined OQS_MINIMAL_BUILD alg list link from specific commit [#2326](https://github.com/open-quantum-safe/liboqs/pull/2326) ### New contributors From 87ee1370d7a2d17b8b198d06bd55848ab245129d Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Tue, 2 Jun 2026 10:44:18 -0400 Subject: [PATCH 04/12] Format markdown Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 193 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 132 insertions(+), 61 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index b7b9eeb81e..b34d89265b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,18 +1,34 @@ # liboqs version 0.16.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/. +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](https://github.com/open-quantum-safe/liboqs/blob/main/README.md). See in particular limitations on intended use. +**liboqs** is an open source C library for quantum-resistant cryptographic +algorithms. Details about liboqs can be found in +[README.md](https://github.com/open-quantum-safe/liboqs/blob/main/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](https://www.openssl.org/docs/manmaster/man7/provider.html) 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. +- **oqs-provider**: A standalone prototype [OpenSSL 3 +provider](https://www.openssl.org/docs/manmaster/man7/provider.html) 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](https://github.com/open-quantum-safe/oqs-demos) are available for using the above libraries in applications, including Apache, Chromium, curl, haproxy, nginx, and Wireshark. +Several [demos](https://github.com/open-quantum-safe/oqs-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: +liboqs can also be used in the following programming languages via +language-specific wrappers: - C++, via https://github.com/open-quantum-safe/liboqs-cpp - Go, via https://github.com/open-quantum-safe/liboqs-go @@ -30,73 +46,128 @@ SPHINCS+ was removed in 0.16.0. ### Security issues -- Fixed out-of-bounds read in XMSS/XMSS^MT signature verification [077e32a](https://github.com/open-quantum-safe/liboqs/commit/077e32a) [#2384](https://github.com/open-quantum-safe/liboqs/pull/2384) -- Fixed Integer underflow in CROSS `crypto_sign_open()` [25d0a9e](https://github.com/open-quantum-safe/liboqs/commit/25d0a9e) -- Fixed incorrect array size when calling `secure_clean` [ab0e07c](https://github.com/open-quantum-safe/liboqs/commit/ab0e07c) +- Fixed out-of-bounds read in XMSS/XMSS^MT signature verification +[077e32a](https://github.com/open-quantum-safe/liboqs/commit/077e32a) +[#2384](https://github.com/open-quantum-safe/liboqs/pull/2384) +- Fixed Integer underflow in CROSS `crypto_sign_open()` +[25d0a9e](https://github.com/open-quantum-safe/liboqs/commit/25d0a9e) +- Fixed incorrect array size when calling `secure_clean` +[ab0e07c](https://github.com/open-quantum-safe/liboqs/commit/ab0e07c) ### Significant change -- mldsa-native integration [#2284](https://github.com/open-quantum-safe/liboqs/pull/2284) [#2391](https://github.com/open-quantum-safe/liboqs/pull/2391) [#2445](https://github.com/open-quantum-safe/liboqs/pull/2445) -- Fixed erroneous MAYO_OK despite failed sample_solution() attempts in MAYO [#2403](https://github.com/open-quantum-safe/liboqs/pull/2403) -- Update mlkem-native to v1.1.0 [#2376](https://github.com/open-quantum-safe/liboqs/pull/2376) +- mldsa-native integration +[#2284](https://github.com/open-quantum-safe/liboqs/pull/2284) +[#2391](https://github.com/open-quantum-safe/liboqs/pull/2391) +[#2445](https://github.com/open-quantum-safe/liboqs/pull/2445) +- Fixed erroneous MAYO_OK despite failed sample_solution() attempts in MAYO +[#2403](https://github.com/open-quantum-safe/liboqs/pull/2403) +- Update mlkem-native to v1.1.0 +[#2376](https://github.com/open-quantum-safe/liboqs/pull/2376) - Added MQOM [#2385](https://github.com/open-quantum-safe/liboqs/pull/2385) -- Added public domain OpenSSH implementation of sntrup761 [#2356](https://github.com/open-quantum-safe/liboqs/pull/2356) -- Added build option `OQS_MEMOPT_BUILD` to enable memory‑optimized builds [#2367](https://github.com/open-quantum-safe/liboqs/pull/2367) -- Added salted variants of FrodoKEM [#2342](https://github.com/open-quantum-safe/liboqs/pull/2342) -- Removed SPHINCS+ [#2339](https://github.com/open-quantum-safe/liboqs/pull/2339) +- Added public domain OpenSSH implementation of sntrup761 +[#2356](https://github.com/open-quantum-safe/liboqs/pull/2356) +- Added build option `OQS_MEMOPT_BUILD` to enable memory‑optimized builds +[#2367](https://github.com/open-quantum-safe/liboqs/pull/2367) +- Added salted variants of FrodoKEM +[#2342](https://github.com/open-quantum-safe/liboqs/pull/2342) +- Removed SPHINCS+ +[#2339](https://github.com/open-quantum-safe/liboqs/pull/2339) ### Bug fixes -- Fixed incremental absorption bug in AVX512VL SHA3-512 [#2442](https://github.com/open-quantum-safe/liboqs/pull/2442) -- Implemented fallback for when `EVP_DigestSqueeze` is unavailable [#2433](https://github.com/open-quantum-safe/liboqs/pull/2433) -- Added API for detecting stateful signature support at runtime [#2434](https://github.com/open-quantum-safe/liboqs/pull/2434) -- Fixed missing initialization and indexing bug in LMS [#2416](https://github.com/open-quantum-safe/liboqs/pull/2416) -- Limited pytest parallelism to prevent memory exhaustion in constrained environment [#2397](https://github.com/open-quantum-safe/liboqs/pull/2397) -- Fixed cuPQC ML-KEM derand symbol names and `#if/#elif` chains [#2396](https://github.com/open-quantum-safe/liboqs/pull/2396) -- Tightened Windows compiler detection [#2394](https://github.com/open-quantum-safe/liboqs/pull/2394) -- Fixed mismatched macros in LMS [#2379](https://github.com/open-quantum-safe/liboqs/pull/2379) - -- Made fuzzers tolerant to disabled algorithms [#2359](https://github.com/open-quantum-safe/liboqs/pull/2359) -- Removed inlined exponentiation in CROSS-RSDPG-1 [#2357](https://github.com/open-quantum-safe/liboqs/pull/2357) -- Fixed incorrect arg register update in AVX512 Keccak [#2330](https://github.com/open-quantum-safe/liboqs/pull/2330) +- Fixed incremental absorption bug in AVX512VL SHA3-512 +[#2442](https://github.com/open-quantum-safe/liboqs/pull/2442) +- Implemented fallback for when `EVP_DigestSqueeze` is unavailable +[#2433](https://github.com/open-quantum-safe/liboqs/pull/2433) +- Added API for detecting stateful signature support at runtime +[#2434](https://github.com/open-quantum-safe/liboqs/pull/2434) +- Fixed missing initialization and indexing bug in LMS +[#2416](https://github.com/open-quantum-safe/liboqs/pull/2416) +- Limited pytest parallelism to prevent memory exhaustion in constrained +environment [#2397](https://github.com/open-quantum-safe/liboqs/pull/2397) +- Fixed cuPQC ML-KEM derand symbol names and `#if/#elif` chains +[#2396](https://github.com/open-quantum-safe/liboqs/pull/2396) +- Tightened Windows compiler detection +[#2394](https://github.com/open-quantum-safe/liboqs/pull/2394) +- Fixed mismatched macros in LMS +[#2379](https://github.com/open-quantum-safe/liboqs/pull/2379) +- Made fuzzers tolerant to disabled algorithms +[#2359](https://github.com/open-quantum-safe/liboqs/pull/2359) +- Removed inlined exponentiation in CROSS-RSDPG-1 +[#2357](https://github.com/open-quantum-safe/liboqs/pull/2357) +- Fixed incorrect arg register update in AVX512 Keccak +[#2330](https://github.com/open-quantum-safe/liboqs/pull/2330) ### Miscellaneous -- Added NIST LMS Signature verify KATs [#2435](https://github.com/open-quantum-safe/liboqs/pull/2435) -- Fixed comments on SHA3-AVX512VL assembly file [#2438](https://github.com/open-quantum-safe/liboqs/pull/2438) -- Fixed latent warnings exposed by refreshed CI container images [#2430](https://github.com/open-quantum-safe/liboqs/pull/2430) -- Added common dependencies with `include_only` in `copy_from_upstream` [#2382](https://github.com/open-quantum-safe/liboqs/pull/2382) -- Documented algorithm support levels [#2413](https://github.com/open-quantum-safe/liboqs/pull/2413) -- Updated Dependabot configuration [#2420](https://github.com/open-quantum-safe/liboqs/pull/2420) -- Added @loganaden as codeowner for Kyber [#2421](https://github.com/open-quantum-safe/liboqs/pull/2421) -- Bumped `gitpython` version for `copy_from_upstream` [#2414](https://github.com/open-quantum-safe/liboqs/pull/2414) -- Updated GOVERNANCE.md and CODEOWNERS [#2410](https://github.com/open-quantum-safe/liboqs/pull/2410) -- Added fuzz harness for LMS/XMSS signature verification [#2398](https://github.com/open-quantum-safe/liboqs/pull/2398) [#2412](https://github.com/open-quantum-safe/liboqs/pull/2412) -- Added fuzz harness for XMSS signature verification [#2399](https://github.com/open-quantum-safe/liboqs/pull/2399) [#2400](https://github.com/open-quantum-safe/liboqs/pull/2400) -- Moved compiler optimization level to CMAKE_BUILD_TYPE [#2383](https://github.com/open-quantum-safe/liboqs/pull/2383) -- Updated pytest package version [#2408](https://github.com/open-quantum-safe/liboqs/pull/2408) -- Demoted armhf to tier 3 supported platform [#2406](https://github.com/open-quantum-safe/liboqs/pull/2406) -- Added Wycheproof tests for ML-DSA [#2378](https://github.com/open-quantum-safe/liboqs/pull/2378) -- Added overflow check for OQS_MEM_calloc arguments [#2377](https://github.com/open-quantum-safe/liboqs/pull/2377) -- Updated Wycheproof tests ML-KEM [#2373](https://github.com/open-quantum-safe/liboqs/pull/2373) -- Updated Zephyr CI tests to recent versions [#2369](https://github.com/open-quantum-safe/liboqs/pull/2369) -- Documented KAT sources and hash verification process [#2363](https://github.com/open-quantum-safe/liboqs/pull/2363) -- Added support for ML-DSA pre-hash sign ACVP test vectors [#2362](https://github.com/open-quantum-safe/liboqs/pull/2362) -- Added external-mu sign gen ACVP tests for ML-DSA [#2352](https://github.com/open-quantum-safe/liboqs/pull/2352) -- Cached ACVP test vectors [#2354](https://github.com/open-quantum-safe/liboqs/pull/2354) -- Added OQS_SIG_sign methods tests in vectors_sig [#2350](https://github.com/open-quantum-safe/liboqs/pull/2350) -- Added the path to the binary include dir [#2312](https://github.com/open-quantum-safe/liboqs/pull/2312) -- Removed local copies of ACVP test vectors [#2303](https://github.com/open-quantum-safe/liboqs/pull/2303) -- New stylesheet for Doxygen-generated documentation [#2337](https://github.com/open-quantum-safe/liboqs/pull/2337) -- Docs: List all optimized implementations [#2333](https://github.com/open-quantum-safe/liboqs/pull/2333) -- Fixed README href formatting [#2323](https://github.com/open-quantum-safe/liboqs/pull/2323) -- Unpined OQS_MINIMAL_BUILD alg list link from specific commit [#2326](https://github.com/open-quantum-safe/liboqs/pull/2326) +- Added NIST LMS Signature verify KATs +[#2435](https://github.com/open-quantum-safe/liboqs/pull/2435) +- Fixed comments on SHA3-AVX512VL assembly file +[#2438](https://github.com/open-quantum-safe/liboqs/pull/2438) +- Fixed latent warnings exposed by refreshed CI container images +[#2430](https://github.com/open-quantum-safe/liboqs/pull/2430) +- Added common dependencies with `include_only` in `copy_from_upstream` +[#2382](https://github.com/open-quantum-safe/liboqs/pull/2382) +- Documented algorithm support levels +[#2413](https://github.com/open-quantum-safe/liboqs/pull/2413) +- Updated Dependabot configuration +[#2420](https://github.com/open-quantum-safe/liboqs/pull/2420) +- Added @loganaden as codeowner for Kyber +[#2421](https://github.com/open-quantum-safe/liboqs/pull/2421) +- Bumped `gitpython` version for `copy_from_upstream` +[#2414](https://github.com/open-quantum-safe/liboqs/pull/2414) +- Updated GOVERNANCE.md and CODEOWNERS +[#2410](https://github.com/open-quantum-safe/liboqs/pull/2410) +- Added fuzz harness for LMS/XMSS signature verification +[#2398](https://github.com/open-quantum-safe/liboqs/pull/2398) +[#2412](https://github.com/open-quantum-safe/liboqs/pull/2412) +- Added fuzz harness for XMSS signature verification +[#2399](https://github.com/open-quantum-safe/liboqs/pull/2399) +[#2400](https://github.com/open-quantum-safe/liboqs/pull/2400) +- Moved compiler optimization level to CMAKE_BUILD_TYPE +[#2383](https://github.com/open-quantum-safe/liboqs/pull/2383) +- Updated pytest package version +[#2408](https://github.com/open-quantum-safe/liboqs/pull/2408) +- Demoted armhf to tier 3 supported platform +[#2406](https://github.com/open-quantum-safe/liboqs/pull/2406) +- Added Wycheproof tests for ML-DSA +[#2378](https://github.com/open-quantum-safe/liboqs/pull/2378) +- Added overflow check for OQS_MEM_calloc arguments +[#2377](https://github.com/open-quantum-safe/liboqs/pull/2377) +- Updated Wycheproof tests ML-KEM +[#2373](https://github.com/open-quantum-safe/liboqs/pull/2373) +- Updated Zephyr CI tests to recent versions +[#2369](https://github.com/open-quantum-safe/liboqs/pull/2369) +- Documented KAT sources and hash verification process +[#2363](https://github.com/open-quantum-safe/liboqs/pull/2363) +- Added support for ML-DSA pre-hash sign ACVP test vectors +[#2362](https://github.com/open-quantum-safe/liboqs/pull/2362) +- Added external-mu sign gen ACVP tests for ML-DSA +[#2352](https://github.com/open-quantum-safe/liboqs/pull/2352) +- Cached ACVP test vectors +[#2354](https://github.com/open-quantum-safe/liboqs/pull/2354) +- Added OQS_SIG_sign methods tests in vectors_sig +[#2350](https://github.com/open-quantum-safe/liboqs/pull/2350) +- Added the path to the binary include dir +[#2312](https://github.com/open-quantum-safe/liboqs/pull/2312) +- Removed local copies of ACVP test vectors +[#2303](https://github.com/open-quantum-safe/liboqs/pull/2303) +- New stylesheet for Doxygen-generated documentation +[#2337](https://github.com/open-quantum-safe/liboqs/pull/2337) +- Docs: List all optimized implementations +[#2333](https://github.com/open-quantum-safe/liboqs/pull/2333) +- Fixed README href formatting +[#2323](https://github.com/open-quantum-safe/liboqs/pull/2323) +- Unpined OQS_MINIMAL_BUILD alg list link from specific commit +[#2326](https://github.com/open-quantum-safe/liboqs/pull/2326) ### New contributors From 6cd3d813293aeedef1973be46fee047871728330 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Tue, 2 Jun 2026 10:45:05 -0400 Subject: [PATCH 05/12] Markdown formatting Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index b34d89265b..275261f543 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,12 +1,12 @@ # liboqs version 0.16.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/. +prototyping quantum-resistant cryptography. More information on OQS can be +found on our website: and on Github at +. **liboqs** is an open source C library for quantum-resistant cryptographic -algorithms. Details about liboqs can be found in +algorithms. Details about liboqs can be found in [README.md](https://github.com/open-quantum-safe/liboqs/blob/main/README.md). See in particular limitations on intended use. @@ -18,10 +18,10 @@ 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](https://github.com/open-quantum-safe/oqs-demos) are available for using the above libraries in applications, including Apache, Chromium, @@ -30,11 +30,11 @@ curl, haproxy, nginx, and Wireshark. liboqs can also be used in the following programming languages via language-specific wrappers: -- C++, via https://github.com/open-quantum-safe/liboqs-cpp -- Go, via https://github.com/open-quantum-safe/liboqs-go -- Java, via https://github.com/open-quantum-safe/liboqs-java -- Python 3, via https://github.com/open-quantum-safe/liboqs-python -- Rust, via https://github.com/open-quantum-safe/liboqs-rust +- C++, via +- Go, via +- Java, via +- Python 3, via +- Rust, via ## Release notes @@ -56,7 +56,7 @@ SPHINCS+ was removed in 0.16.0. ### Significant change - - Unpined OQS_MINIMAL_BUILD alg list link from specific commit [#2326](https://github.com/open-quantum-safe/liboqs/pull/2326) + + ### New contributors - Anthony Plank (report SHA3 AVX512VL comment in #2438) From 6d2ae157721f6d8e08c089e0a7b3578e4dd2e171 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Mon, 8 Jun 2026 11:21:35 -0400 Subject: [PATCH 07/12] Double-checked first-time contributors Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index e297ea4b10..688c825254 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -110,7 +110,8 @@ no external effect and is ignored --> - Added NIST LMS Signature verify KATs [#2435](https://github.com/open-quantum-safe/liboqs/pull/2435) -- Fixed comments on SHA3-AVX512VL assembly file +- Fixed comments on SHA3-AVX512VL assembly file. Thank you Anthony Plank for +reporting the issue [#2438](https://github.com/open-quantum-safe/liboqs/pull/2438) - Fixed latent warnings exposed by refreshed CI container images [#2430](https://github.com/open-quantum-safe/liboqs/pull/2430) @@ -173,18 +174,14 @@ no external effect and is ignored --> ### New contributors -- Anthony Plank (report SHA3 AVX512VL comment in #2438) - Vishnu Ajith (@Vishnu2707) -- William Bates -- Marco Gianvecchio for authoring 25d0a9e -- Nelonn -- Abhi S -- Ryad Benadjila -- Billy Brumley -- Tobias Frauenschläger -- saanvi ratra -- Harshith Vasireddy <34184577+ode@users.noreply.github.com> -- Nathaniel Brough -- Laugenbraue <36441810+mmarock@users.noreply.github.com> -- Sam Van de Velde <58397500+samvandevelde@users.noreply.github.com> -- Emil Lundberg +- William Bates (@will-bates11) +- Nelonn (@Nelonn) +- Abhi S (@abhi-dev-engg) +- Ryad Benadjila (@rben-dev) +- Billy Brumley (@bbbrumley) +- saanvi ratra (@Anusaa35) +- Harshith Vasireddy (@ode) +- Laugenbraue (@mmarock) +- Sam Van de Velde (@samvandevelde) +- Emil Lundberg (@emlun) From 3dc00194ae0e4d9423aa3e1fd17f49371711bfa1 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Thu, 18 Jun 2026 10:41:36 -0400 Subject: [PATCH 08/12] [skip ci] Updated release notes Included #2460, #2407, #2467, #2463, #2441 Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index 688c825254..fedc217b1a 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -3,7 +3,7 @@ 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: and on Github at -. +. **liboqs** is an open source C library for quantum-resistant cryptographic algorithms. Details about liboqs can be found in @@ -46,6 +46,8 @@ SPHINCS+ was removed in 0.16.0. ### Security issues +- Fixed uninitialized `encaps_derand` pointer dereference +[#2460](https://github.com/open-quantum-safe/liboqs/pull/2460) - Fixed out-of-bounds read in XMSS/XMSS^MT signature verification [077e32a](https://github.com/open-quantum-safe/liboqs/commit/077e32a) [#2384](https://github.com/open-quantum-safe/liboqs/pull/2384) @@ -62,6 +64,8 @@ NOTE: there are three pull requests related to mldsa-native: - #2391 update to v1.0.0-beta - #3445 update to v1.0.0-beta2 --> +- Updated HQC implementation to 20250822 spec from official repository +[#2407](https://github.com/open-quantum-safe/liboqs/pull/2407) - mldsa-native integration [#2284](https://github.com/open-quantum-safe/liboqs/pull/2284) [#2391](https://github.com/open-quantum-safe/liboqs/pull/2391) @@ -108,6 +112,12 @@ no external effect and is ignored --> ### Miscellaneous +- Removed legacy HQC constant-time test +[#2467](https://github.com/open-quantum-safe/liboqs/pull/2467) +- Download Intel SDE from alternative source +[#2463](https://github.com/open-quantum-safe/liboqs/pull/2463) +- Updated algorithm support information +[#2441](https://github.com/open-quantum-safe/liboqs/pull/2441) - Added NIST LMS Signature verify KATs [#2435](https://github.com/open-quantum-safe/liboqs/pull/2435) - Fixed comments on SHA3-AVX512VL assembly file. Thank you Anthony Plank for From 988e89cbe007e14482d76cd4b9a208b378a925f4 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Thu, 18 Jun 2026 11:10:54 -0400 Subject: [PATCH 09/12] Significant changes deserve more explanation Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 79 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index fedc217b1a..8c0ca2691c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -58,31 +58,60 @@ SPHINCS+ was removed in 0.16.0. ### Significant change - -- Updated HQC implementation to 20250822 spec from official repository +#### FrodoKEM algorithm change + +[#2192](https://github.com/open-quantum-safe/liboqs/pull/2192), +[#2342](https://github.com/open-quantum-safe/liboqs/pull/2342) + +Existing FrodoKEM in 0.15.0 was renamed to ephemeral FrodoKEM +(`KEM_efrodokem_<640|976|1344>_`), and the salted variant of FrodoKEM +was added under the prior names (`KEM_frodokem_<640|976|1344>_`). + +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](https://github.com/microsoft/PQCrypto-LWEKE/#frodokem-learning-with-errors-key-encapsulation) +for more details. + +#### mldsa-native integration + +[#2284](https://github.com/open-quantum-safe/liboqs/pull/2284), +[#2391](https://github.com/open-quantum-safe/liboqs/pull/2391), +[#3445](https://github.com/open-quantum-safe/liboqs/pull/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](https://github.com/open-quantum-safe/liboqs/pull/2407) -- mldsa-native integration -[#2284](https://github.com/open-quantum-safe/liboqs/pull/2284) -[#2391](https://github.com/open-quantum-safe/liboqs/pull/2391) -[#2445](https://github.com/open-quantum-safe/liboqs/pull/2445) -- Fixed erroneous MAYO_OK despite failed sample_solution() attempts in MAYO -[#2403](https://github.com/open-quantum-safe/liboqs/pull/2403) -- Update mlkem-native to v1.1.0 -[#2376](https://github.com/open-quantum-safe/liboqs/pull/2376) -- Added MQOM [#2385](https://github.com/open-quantum-safe/liboqs/pull/2385) -- Added public domain OpenSSH implementation of sntrup761 -[#2356](https://github.com/open-quantum-safe/liboqs/pull/2356) -- Added build option `OQS_MEMOPT_BUILD` to enable memory‑optimized builds + +The HQC implementations in liboqs were updated to 20250822 spec. Its upstream +switched from PQClean to the [official repo](https://gitlab.com/pqc-hqc/hqc). +`KEM_hqc_<1|3|5>` is now enabled by default. + +#### MQOM integration and memory-optimized build flag + +[#2385](https://github.com/open-quantum-safe/liboqs/pull/2385), [#2367](https://github.com/open-quantum-safe/liboqs/pull/2367) -- Added salted variants of FrodoKEM -[#2342](https://github.com/open-quantum-safe/liboqs/pull/2342) -- Removed SPHINCS+ -[#2339](https://github.com/open-quantum-safe/liboqs/pull/2339) + +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](https://github.com/open-quantum-safe/liboqs/pull/2356) + +A public-domain OpenSSH implementation of NTRUPrime761 replaced the PQClean +implementation as the default backend for `KEM_ntruprime_sntrup761`. ### Bug fixes @@ -94,6 +123,8 @@ NOTE: there are three pull requests related to mldsa-native: [#2434](https://github.com/open-quantum-safe/liboqs/pull/2434) - Fixed missing initialization and indexing bug in LMS [#2416](https://github.com/open-quantum-safe/liboqs/pull/2416) +- Fixed erroneous MAYO_OK despite failed sample_solution() attempts in MAYO +[#2403](https://github.com/open-quantum-safe/liboqs/pull/2403) - Limited pytest parallelism to prevent memory exhaustion in constrained environment [#2397](https://github.com/open-quantum-safe/liboqs/pull/2397) - Fixed cuPQC ML-KEM derand symbol names and `#if/#elif` chains @@ -112,6 +143,8 @@ no external effect and is ignored --> ### Miscellaneous +- Update mlkem-native to v1.1.0 +[#2376](https://github.com/open-quantum-safe/liboqs/pull/2376) - Removed legacy HQC constant-time test [#2467](https://github.com/open-quantum-safe/liboqs/pull/2467) - Download Intel SDE from alternative source From 7b3a8dccf7c95495062310b7ee523334ee28e9b8 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Fri, 19 Jun 2026 10:34:40 -0400 Subject: [PATCH 10/12] Update release notes after #2431 merge Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 8c0ca2691c..96918bfd77 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -55,6 +55,9 @@ SPHINCS+ was removed in 0.16.0. [25d0a9e](https://github.com/open-quantum-safe/liboqs/commit/25d0a9e) - Fixed incorrect array size when calling `secure_clean` [ab0e07c](https://github.com/open-quantum-safe/liboqs/commit/ab0e07c) +- Implemented optimization barrier `OQS_MEM_BLACK_BOX` and applied to +`ct_select` in FrodoKEM +[#2431](https://github.com/open-quantum-safe/liboqs/pull/2431) ### Significant change @@ -213,8 +216,6 @@ reporting the issue - Unpined OQS_MINIMAL_BUILD alg list link from specific commit [#2326](https://github.com/open-quantum-safe/liboqs/pull/2326) - - ### New contributors - Vishnu Ajith (@Vishnu2707) From bca498dfd11e22430d50e991ec24a13f34a6df24 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Tue, 23 Jun 2026 10:17:11 -0400 Subject: [PATCH 11/12] Update RELEASE.md after #2470 merge Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 96918bfd77..3210611421 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -146,8 +146,10 @@ no external effect and is ignored --> ### Miscellaneous -- Update mlkem-native to v1.1.0 -[#2376](https://github.com/open-quantum-safe/liboqs/pull/2376) +- Update mlkem-native to v1.2.0 +[#2470](https://github.com/open-quantum-safe/liboqs/pull/2470) + + - Removed legacy HQC constant-time test [#2467](https://github.com/open-quantum-safe/liboqs/pull/2467) - Download Intel SDE from alternative source From 0c5dbcc1253687a465017fbf998c15fb1375ab59 Mon Sep 17 00:00:00 2001 From: "Ganyu (Bruce) Xu" Date: Wed, 24 Jun 2026 11:02:11 -0400 Subject: [PATCH 12/12] Update 0.16.0-rc1 release date Signed-off-by: Ganyu (Bruce) Xu --- RELEASE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index 3210611421..fdc402faa4 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -38,7 +38,7 @@ language-specific wrappers: ## Release notes -liboqs 0.16.0-rc1 was released on Tuesday, June 9, 2026. +liboqs 0.16.0-rc1 was released on Wednesday, June 24, 2026. ### Deprecation notice