|
1 | | -liboqs version 0.13.0 |
2 | | -===================== |
| 1 | +liboqs version 0.14.0-rc1 |
| 2 | +========================= |
3 | 3 |
|
4 | 4 | About |
5 | 5 | ----- |
@@ -27,91 +27,80 @@ liboqs can also be used in the following programming languages via language-spec |
27 | 27 | Release notes |
28 | 28 | ============= |
29 | 29 |
|
30 | | -This is version 0.13.0 of liboqs. It was released on April 16, 2025. |
| 30 | +This is release candidate 1 for version 0.14.0 of liboqs. It was released on June 25, 2025. |
31 | 31 |
|
32 | | -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](https://github.com/pq-code-package/mlkem-native) and a GPU accelerated CUDA implementation from [Nvidia cuPQC](https://developer.nvidia.com/cupqc). |
| 32 | +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](https://github.com/pq-code-package/mlkem-native/releases/tag/v1.0.0). |
33 | 33 |
|
34 | | -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 |
| 34 | +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. |
| 35 | + |
| 36 | +Deprecation notice |
| 37 | +================== |
| 38 | + |
| 39 | +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. |
| 40 | + |
| 41 | +Security issues |
| 42 | +=============== |
| 43 | + |
| 44 | +- 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. |
35 | 45 |
|
36 | 46 | What's New |
37 | 47 | ---------- |
38 | 48 |
|
39 | | -This release continues from the 0.12.0 release of liboqs. |
| 49 | +This release continues from the 0.13.0 release of liboqs. |
40 | 50 |
|
41 | 51 | ### Key encapsulation mechanisms |
42 | 52 |
|
43 | | -- New API: Added a deterministic key generation and API for KEMs (only ML-KEM supported at the moment). |
44 | | -- ML-KEM: Changed the default ML-KEM implementation to [PQCP's mlkem-native](https://github.com/pq-code-package/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](https://github.com/diffblue/cbmc) and the functional correctness of the core AArch64 assembly routines is verified using [HOL-Light](https://github.com/jrh13/hol-light). |
45 | | -- ML-KEM: Added support for the ML-KEM implementation from [Nvidia cuPQC](https://developer.nvidia.com/cupqc), a GPU accelerated cryptography library. |
46 | | -- ML-KEM: Implementation from mlkem-native upstream updated to add Pair-wise Consistency Test (PCT) and Intel CET support. |
47 | | -- ML-KEM: Improved testing of ML-KEM keys. |
48 | | -- HQC: Disabled HQC by default until [a new security flaw](https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/Wiu4ZQo3fP8) is fixed. |
| 53 | +- HQC: Disabled compiler optimizations to avoid secret-dependent branching in certain configurations. HQC remains disabled by default. |
| 54 | +- ML-KEM: Updated the default ML-KEM implementation to [PQCP's mlkem-native v1.0.0](https://github.com/pq-code-package/mlkem-native/releases/tag/v1.0.0). |
49 | 55 |
|
50 | 56 | ### Digital signature schemes |
51 | 57 |
|
52 | | -- ML-DSA: Improved testing for ML-DSA. |
53 | | -- CROSS: Updated to NIST Additional Signatures Round 2 version. |
54 | | -- MAYO: Updated to NIST Additional Signatures Round 2 version. |
55 | | -- UOV: Added support for UOV algorithm from NIST Additional Signatures Round 2. |
| 58 | +- New API: added an API function to check if a signature scheme supports signing with a context string. |
| 59 | +- SNOVA: added [SNOVA](https://snova.pqclab.org/) from NIST Additional Signature Schemes Round 2. |
56 | 60 |
|
57 | 61 | ### Other changes |
58 | 62 |
|
59 | | -- Added support for loongarch64 architecture. |
| 63 | +- Added an AVX512VL-optimized backend for SHA3. |
| 64 | +- Improved memory management throughout the codebase. |
60 | 65 |
|
61 | 66 | --- |
62 | 67 |
|
63 | 68 | Detailed changelog |
64 | 69 | ------------------ |
65 | 70 |
|
66 | 71 | ## What's Changed |
67 | | -* Bump version to 0.12.1-dev by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/2015 |
68 | | -* Add loongarch64 support by @zhaixiaojuan in https://github.com/open-quantum-safe/liboqs/pull/2010 |
69 | | -* Minor changes to ML_DSA ACVP tests by @abhinav-thales in https://github.com/open-quantum-safe/liboqs/pull/2007 |
70 | | -* Update upload-artifact action to v4 by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/2017 |
71 | | -* Remove hardcoded build paths & modify basic workflow to build in random path by @iyanmv in https://github.com/open-quantum-safe/liboqs/pull/2019 |
72 | | -* Trigger liboqs-java and liboqs-rust downstream CI by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2021 |
73 | | -* #1830 update scorecard to v5 (gh action 2.4.0) by @planetf1 in https://github.com/open-quantum-safe/liboqs/pull/1890 |
74 | | -* Update PQClean commit and delete patch for HQC by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2026 |
75 | | -* Bump jinja2 from 3.1.4 to 3.1.5 in /scripts/copy_from_upstream in the pip group by @dependabot in https://github.com/open-quantum-safe/liboqs/pull/2036 |
76 | | -* Avoid unresolved symbols from libcrypto when compiled with OQS_DLOPEN_OPENSSL by @ueno in https://github.com/open-quantum-safe/liboqs/pull/2043 |
77 | | -* Update to public Ubuntu 24.04 ARM runner by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2050 |
78 | | -* NVIDIA: Adding cuPQC as a backend for ML-KEM. by @stevenireeves in https://github.com/open-quantum-safe/liboqs/pull/2044 |
79 | | -* Update ACVP vectors for KEM and DSA by @abhinav-thales in https://github.com/open-quantum-safe/liboqs/pull/2051 |
80 | | -* CI: Check unresolved symbols when compiled with OQS_DLOPEN_OPENSSL by @ueno in https://github.com/open-quantum-safe/liboqs/pull/2058 |
81 | | -* Fix failing zephyr CI workflows, pinning v0.27.4 by @bhess in https://github.com/open-quantum-safe/liboqs/pull/2063 |
82 | | -* Update sig_stfl Doxygen documentation by @pablo-gf in https://github.com/open-quantum-safe/liboqs/pull/2059 |
83 | | -* Import ML-KEM from mlkem-native/PQ code package by @bhess in https://github.com/open-quantum-safe/liboqs/pull/2041 |
84 | | -* Update example files by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2071 |
85 | | -* GitHub runner updates by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2069 |
86 | | -* Disable cupqc-buildcheck by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/2075 |
87 | | -* Add threat model by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/2033 |
88 | | -* Update CROSS to version 2.0 by @rtjk in https://github.com/open-quantum-safe/liboqs/pull/2078 |
89 | | -* improving CONTRIBUTING.md for maintainability [skip ci] by @baentsch in https://github.com/open-quantum-safe/liboqs/pull/2081 |
90 | | -* Ensure that building against liboqs build directory works by @levitte in https://github.com/open-quantum-safe/liboqs/pull/2086 |
91 | | -* Added alg_version details to test output by @pablo-gf in https://github.com/open-quantum-safe/liboqs/pull/2080 |
92 | | -* Add checks for ML-KEM keys by @abhinav-thales in https://github.com/open-quantum-safe/liboqs/pull/2009 |
93 | | -* Update actions/cache to v4.2.2 by @mkannwischer in https://github.com/open-quantum-safe/liboqs/pull/2093 |
94 | | -* Add Nix flake by @aidenfoxivey in https://github.com/open-quantum-safe/liboqs/pull/1970 |
95 | | -* Update MAYO to NIST round 2 by @bhess in https://github.com/open-quantum-safe/liboqs/pull/2095 |
96 | | -* Update mlkem-native to v1.0.0-beta by @mkannwischer in https://github.com/open-quantum-safe/liboqs/pull/2092 |
97 | | -* Add references to security response process by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2077 |
98 | | -* Bump version to 0.13.0-dev [skip ci] by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2099 |
99 | | -* Add UOV by @mkannwischer in https://github.com/open-quantum-safe/liboqs/pull/2094 |
100 | | -* Add bitflip test for trivial SUF-CMA forgeries by @rtjk in https://github.com/open-quantum-safe/liboqs/pull/2090 |
101 | | -* Update MAYO version in algorithm datasheet by @bhess in https://github.com/open-quantum-safe/liboqs/pull/2103 |
102 | | -* Add DeriveKeyPair API by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2070 |
103 | | -* Update nist-round in UOV and MAYO data sheet by @bhess in https://github.com/open-quantum-safe/liboqs/pull/2105 |
104 | | -* build: search unistd.h separately from sys/random.h for getentropy by @mkroening in https://github.com/open-quantum-safe/liboqs/pull/2104 |
105 | | -* Add support caveat by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2114 |
106 | | -* Temporarily disable HQC by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/2122 |
107 | | -* Fix PR workflow runs by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2123 |
| 72 | +* Switch to dev mode after 0.13.0 release by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/2125 |
| 73 | +* Restrict -Wno-maybe-uninitialized to GCC and fix stack size typo by @alraddady in https://github.com/open-quantum-safe/liboqs/pull/2111 |
| 74 | +* Promote @SWilson4 from Committer to Maintainer [skip ci] by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/2120 |
| 75 | +* Update Nix flake inputs by @aidenfoxivey in https://github.com/open-quantum-safe/liboqs/pull/2126 |
| 76 | +* Change cuPQC upstream repo by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/2115 |
| 77 | +* Integrate SNOVA into liboqs by @vacuas in https://github.com/open-quantum-safe/liboqs/pull/2109 |
| 78 | +* Update ACVP vectors to latest release by @abhinav-thales in https://github.com/open-quantum-safe/liboqs/pull/2131 |
| 79 | +* Add a function to check if context string is supported by @M-AlNoaimi in https://github.com/open-quantum-safe/liboqs/pull/2142 |
| 80 | +* Skip failing CI test by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/2157 |
| 81 | +* Use OQS_MEM_cleanse() instead of memset() by @Hussain1811 in https://github.com/open-quantum-safe/liboqs/pull/2158 |
| 82 | +* Check for NULL dereference before using secure free by @Hussain1811 in https://github.com/open-quantum-safe/liboqs/pull/2151 |
| 83 | +* Update mlkem-native to v1.0.0 by @mkannwischer in https://github.com/open-quantum-safe/liboqs/pull/2146 |
| 84 | +* test: Use secure free for freeing secret key objects by @Hussain1811 in https://github.com/open-quantum-safe/liboqs/pull/2149 |
| 85 | +* tests: Remove unused variables by @Hussain1811 in https://github.com/open-quantum-safe/liboqs/pull/2152 |
| 86 | +* Wycheproof by @h2parson in https://github.com/open-quantum-safe/liboqs/pull/2145 |
| 87 | +* tests: Check OQS_STATUS of RNG and fstore functions by @Hussain1811 in https://github.com/open-quantum-safe/liboqs/pull/2153 |
| 88 | +* Adjust constant-time test exception for mlkem-native by @mkannwischer in https://github.com/open-quantum-safe/liboqs/pull/2162 |
| 89 | +* Continuous Benchmarking using Github Actions by @pablo-gf in https://github.com/open-quantum-safe/liboqs/pull/2134 |
| 90 | +* test: Add basic kem fuzz testing by @nathaniel-brough in https://github.com/open-quantum-safe/liboqs/pull/2133 |
| 91 | +* Increase alert threshold for continuous benchmarking by @pablo-gf in https://github.com/open-quantum-safe/liboqs/pull/2166 |
| 92 | +* Benchmarking comments only on alerts by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/2168 |
| 93 | +* Adding code coverage by @aidenfoxivey in https://github.com/open-quantum-safe/liboqs/pull/2148 |
| 94 | +* Add AVX512VL-Optimized SHA3/SHAKE Implementations by @mdcornu in https://github.com/open-quantum-safe/liboqs/pull/2167 |
| 95 | +* Zeroize memory in SHA3 implementation by @aidenfoxivey in https://github.com/open-quantum-safe/liboqs/pull/2171 |
| 96 | +* Disable compiler optimizations for HQC by @SWilson4 in https://github.com/open-quantum-safe/liboqs/commit/4215362acbf69b88fe1777c4c052f154e29f9897 |
108 | 97 |
|
109 | 98 | ## New Contributors |
110 | | -* @zhaixiaojuan made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2010 |
111 | | -* @stevenireeves made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2044 |
112 | | -* @pablo-gf made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2059 |
113 | | -* @levitte made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2086 |
114 | | -* @mkannwischer made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2093 |
115 | | -* @mkroening made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2104 |
116 | | - |
117 | | -**Full Changelog**: https://github.com/open-quantum-safe/liboqs/compare/0.12.0...0.13.0 |
| 99 | +* @alraddady made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2111 |
| 100 | +* @vacuas made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2109 |
| 101 | +* @M-AlNoaimi made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2142 |
| 102 | +* @Hussain1811 made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2158 |
| 103 | +* @h2parson made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2145 |
| 104 | +* @mdcornu made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/2167 |
| 105 | + |
| 106 | +**Full Changelog**: https://github.com/open-quantum-safe/liboqs/compare/0.13.0...0.14.0-rc1 |
0 commit comments