Skip to content

Commit

Permalink
Update release notes for 0.12.0-rc1
Browse files Browse the repository at this point in the history
Fixes #1990 and #2004.

Signed-off-by: Douglas Stebila <[email protected]>
  • Loading branch information
dstebila committed Nov 26, 2024
1 parent b42450b commit 29b5c0e
Showing 1 changed file with 60 additions and 83 deletions.
143 changes: 60 additions & 83 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
liboqs version 0.11.0
=====================
liboqs version 0.12.0-rc1
=========================

About
-----
Expand Down Expand Up @@ -27,107 +27,84 @@ liboqs can also be used in the following programming languages via language-spec
Release notes
=============

This is version 0.11.0 of liboqs. It was released on September 27, 2024.
This is release candidate 1 for version 0.12.0 of liboqs. It was released on November 27, 2024.

This release updates ML-KEM implementations to their [final FIPS 203](https://csrc.nist.gov/pubs/fips/203/final) versions. This release still includes the NIST Round 3 version of Kyber for interoperability purposes, but we plan to remove Kyber Round 3 in a future release. Additionally, this release adds support for MAYO and CROSS digital signature schemes from [NIST Additional Signatures Round 1](https://csrc.nist.gov/Projects/pqc-dig-sig/round-1-additional-signatures) along with stateful hash-based signature schemes [XMSS](https://datatracker.ietf.org/doc/html/rfc8391) and [LMS](https://datatracker.ietf.org/doc/html/rfc8554). Finally, this release provides formally verified implementations of Kyber-512 and Kyber-768 from [libjade](https://github.com/formosa-crypto/libjade/releases/tag/release%2F2023.05-2).
This release updates the ML-DSA implementation to the [final FIPS 204](https://csrc.nist.gov/pubs/fips/204/final) version. This release still includes the NIST Round 3 veresion of Dilithium for interoperability purposes, but we plan to remove Dilithium Round 3 in a future release.

LMS and XMSS are disabled by default due to the security risks associated with their use in software. See the note on stateful hash-based signatures in [CONFIGURE.md](https://github.com/open-quantum-safe/liboqs/blob/0.11.0/CONFIGURE.md#stateful-hash-based-signatures).
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 considering removing the old version of the API without a context string to streamline the API going forward. Users who have an opinion on this are invited to provide input at https://github.com/open-quantum-safe/liboqs/issues/2001.

What's New
----------

This release continues from the 0.10.1 release of liboqs.
This release continues from the 0.11.0 release of liboqs.

### Key encapsulation mechanisms

- Kyber: Added formally-verified portable C and AVX2 implementations of Kyber-512 and Kyber-768 from [libjade](https://github.com/formosa-crypto/libjade/releases/tag/release%2F2023.05-2).
- ML-KEM: Updated portable C and AVX2 implementations of ML-KEM-512, ML-KEM-768, and ML-KEM-1024 to FIP 203 version.
- Kyber: Patched ARM64 implementations of Kyber-512, Kyber-768, and Kyber-1024 to work with AddressSanitizer.
- HQC: Fixed correctness bug in decapsulation. Thank you to Célian Glénaz and Dahmun Goudarzi from Quarkslab for identifying the issue.
- Kyber: Removed Kyber.
- ML-KEM: Improved testing of ML-KEM.

### Digital signature schemes

- LMS/XMSS: Added implementations of stateful hash-based signature schemes: [XMSS](https://datatracker.ietf.org/doc/html/rfc8391) and [LMS](https://datatracker.ietf.org/doc/html/rfc8554).
- MAYO: Added portable C and AVX2 implementations of MAYO signature scheme from NIST Additional Signatures Round 1.
- CROSS: Added portable C and AVX2 implementations of CROSS signature scheme from NIST Additional Signatures Round 1.
- LMS: Fixed crashing bug.
- ML-DSA: Removed FIPS 204-ipd (initial public draft) and replaced it with FIPS 204 final version.
- Added fuzzing tests for signature schemes.
- Added benchmarking for stateful hash-based signature schemes.

### Other changes

- Added callback API to use custom implementations of AES, SHA2, and SHA3.
- Refactor SHA3 implementation to use OpenSSL's EVP_DigestSqueeze() API.
- 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
------------------

* [NFCI] Move Keccak rhotates tables to rodata by @aaupov in https://github.com/open-quantum-safe/liboqs/pull/1739
* Document Fix by @pi-314159 in https://github.com/open-quantum-safe/liboqs/pull/1735
* Add option to dynamically load libcrypto.so.* by @ueno in https://github.com/open-quantum-safe/liboqs/pull/1603
* Allow windows linking of test programs by @matlimatli in https://github.com/open-quantum-safe/liboqs/pull/1751
* Refactor OpenSSL Implementation of SHA3 SHAKE to use new Squeeze API by @Eddy-M-K in https://github.com/open-quantum-safe/liboqs/pull/1694
* remove "maximum" words for most length fields by @wangweij in https://github.com/open-quantum-safe/liboqs/pull/1747
* add compile_commands.json to .gitignore by @carsonRadtke in https://github.com/open-quantum-safe/liboqs/pull/1754
* Fix linking of test programs on msys by @d0p1s4m4 in https://github.com/open-quantum-safe/liboqs/pull/1758
* restrict Windows platform support documentation [skip ci] by @baentsch in https://github.com/open-quantum-safe/liboqs/pull/1762
* Add workflow dispatch to action by @ryjones in https://github.com/open-quantum-safe/liboqs/pull/1778
* Bump jinja2 from 3.1.3 to 3.1.4 in /scripts/copy_from_upstream by @dependabot in https://github.com/open-quantum-safe/liboqs/pull/1782
* Algorithm selection clarification by @beldmit in https://github.com/open-quantum-safe/liboqs/pull/1784
* Use OPENSSL_cleanse if OpenSSL is used by @bencemali in https://github.com/open-quantum-safe/liboqs/pull/1773
* Errors not printed out when OPENSSL_NO_STDIO is set by @bencemali in https://github.com/open-quantum-safe/liboqs/pull/1774
* Add Stateful Signature (XMSS and LMS) by @ashman-p in https://github.com/open-quantum-safe/liboqs/pull/1650
* Forward-declare OQS_SIG in sig_stfl.h by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1820
* Move Linux ARM64 "build" test from CircleCI to GitHub Actions by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1814
* Fix test_alg_info.py on Windows platform by @qnfm in https://github.com/open-quantum-safe/liboqs/pull/1821
* Increment version string to 0.10.2-dev by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1813
* Add XMSS-SHA256_{10, 16, 20}_192 parameters by @cothan in https://github.com/open-quantum-safe/liboqs/pull/1817
* Add XMSS-SHAKE256_{10, 16, 20}_192 parameters by @cothan in https://github.com/open-quantum-safe/liboqs/pull/1818
* Add XMSS-SHAKE256_{10, 16, 20}_256 parameters by @cothan in https://github.com/open-quantum-safe/liboqs/pull/1819
* Create scorecard.yml (OpenSSF) by @planetf1 in https://github.com/open-quantum-safe/liboqs/pull/1708
* Expose callback API for replacing low-level cryptographic primitives by @ueno in https://github.com/open-quantum-safe/liboqs/pull/1832
* Add MAYO signature scheme from NIST onramp by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1707
* Bump zipp from 3.4.0 to 3.19.1 in /scripts/copy_from_upstream in the pip group by @dependabot in https://github.com/open-quantum-safe/liboqs/pull/1836
* Update and fix CI status badges by @anvega in https://github.com/open-quantum-safe/liboqs/pull/1844
* Use `cmake -LA -N` instead of `cmake -LA` in CI by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1848
* Fix passes.json entries for MAYO by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1852
* ML-KEM NIST tests, fix order of d and z by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1854
* Move from CircleCI to GitHub Actions by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1849
* Add a convenience script for consistent astyle formatting by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1861
* Quick fixes from Trail of Bits audit Week 1 by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1869
* Check return value of fscanf in LMS/XMSS KAT tests by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1874
* Fix downstream CI trigger by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1857
* Don't hardcode OPENSSL_ROOT_DIR to /usr on Linux by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1873
* Fix overflow in stateful sigs tests by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1887
* Integrate Kyber from libjade by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/1745
* Use explicit_memset if available. NetBSD has support for it: by @loganaden in https://github.com/open-quantum-safe/liboqs/pull/1872
* Disable erroring TravisCI build by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1901
* Update OpenSSH downstream branch to OQS-v9 by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1898
* Fix incorrect formatting in unix.yml by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/1902
* CMakeLists: add ppc case to known archs by @barracuda156 in https://github.com/open-quantum-safe/liboqs/pull/1816
* Remove old ad hoc CI for Apple M1 by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/1907
* Add ML-KEM / FIPS203 final by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1899
* Update checkout action in weekly.yml by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/1908
* Add CROSS by @rtjk in https://github.com/open-quantum-safe/liboqs/pull/1881
* Refactor liboqs CI and update Ubuntu images by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1909
* Check workflows for issues during CI by @jplomas in https://github.com/open-quantum-safe/liboqs/pull/1916
* Patch Kyber to fix ASAN error on ARM64 by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/1922
* Change README links to be doxygen-friendly by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/1927
## What's Changed

* 0.11.0 release by @praveksharma in https://github.com/open-quantum-safe/liboqs/pull/1939
* Bump version to 0.11.1-dev by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1940
* Remove hardcoded build patch from test script by @iyanmv in https://github.com/open-quantum-safe/liboqs/pull/1938
* Don't include dlfcn.h for Windows by @steenrasmussen in https://github.com/open-quantum-safe/liboqs/pull/1936
* Update CBOM format to upstream v1.6 by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1834
* Downgrade zephyr container to v0.26.14 to avoid build failures by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1949
* Fix for Zephyr CI by @Frauschi in https://github.com/open-quantum-safe/liboqs/pull/1953
* Add a basic fuzz testing harness for Dilithium2 by @nathaniel-brough in https://github.com/open-quantum-safe/liboqs/pull/1905
* [#1823] replace malloc/calloc/strdup/free with openssl allocator by @songlingatpan in https://github.com/open-quantum-safe/liboqs/pull/1926
* Add benchmarking for stateful hash based schemes: speed_sig_stfl by @cr-marcstevens in https://github.com/open-quantum-safe/liboqs/pull/1952
* Update CODEOWNERS by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/1943
* Add new API to cleanup OpenSSL threads. by @ashman-p in https://github.com/open-quantum-safe/liboqs/pull/1959
* Adapt existing sig fuzz harness including more algorithms by @nathaniel-brough in https://github.com/open-quantum-safe/liboqs/pull/1955
* add C++ linking test by @aidenfoxivey in https://github.com/open-quantum-safe/liboqs/pull/1971
* Make random/functions deterministic during fuzzing by @nathaniel-brough in https://github.com/open-quantum-safe/liboqs/pull/1974
* Remove SPHINCS+ aarch64 code by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1972
* Remove macos-12 runner due to GitHub deprecation. by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1977
* Revert "Disable erroring TravisCI build" by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1960
* imported fix from CROSS upstream: endianness-aware csprng by @rtjk in https://github.com/open-quantum-safe/liboqs/pull/1983
* chore: Add CI badges to README.md by @ChinoUkaegbu in https://github.com/open-quantum-safe/liboqs/pull/1987
* Update PLATFORMS.md / re-enable CROSS on s390x by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1988
* Avoid OpenSSL functions are unconditionally called at OQS_destroy by @ueno in https://github.com/open-quantum-safe/liboqs/pull/1982
* Test Improvements for ML-KEM by @abhinav-thales in https://github.com/open-quantum-safe/liboqs/pull/1947
* Fix LMS crash by @ashman-p in https://github.com/open-quantum-safe/liboqs/pull/1998
* Set ML-KEM alg_version to "FIPS203" by @SWilson4 in https://github.com/open-quantum-safe/liboqs/pull/1997
* Add ML-DSA / FIPS 204 final by @bhess in https://github.com/open-quantum-safe/liboqs/pull/1919
* Add defines for OQS version components by @dstebila in https://github.com/open-quantum-safe/liboqs/pull/2000

## New Contributors
* @aaupov made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1739
* @pi-314159 made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1735
* @ueno made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1603
* @matlimatli made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1751
* @Eddy-M-K made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1694
* @wangweij made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1747
* @carsonRadtke made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1754
* @d0p1s4m4 made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1758
* @ryjones made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1778
* @bencemali made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1773
* @qnfm made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1821
* @anvega made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1844
* @loganaden made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1872
* @barracuda156 made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1816
* @rtjk made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1881
* @jplomas made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1916

**Full Changelog**: https://github.com/open-quantum-safe/liboqs/compare/0.10.1...0.11.0

* @steenrasmussen made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1936
* @nathaniel-brough made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1905
* @songlingatpan made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1926
* @cr-marcstevens made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1952
* @aidenfoxivey made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1971
* @ChinoUkaegbu made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1987
* @abhinav-thales made their first contribution in https://github.com/open-quantum-safe/liboqs/pull/1947

**Full Changelog**: https://github.com/open-quantum-safe/liboqs/compare/0.11.0...0.12.0-rc1

0 comments on commit 29b5c0e

Please sign in to comment.