Releases: open-quantum-safe/liboqs
liboqs version 0.12.0
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:
- 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
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
- 0.11.0 release by @praveksharma in #1939
- Bump version to 0.11.1-dev by @SWilson4 in #1940
- Remove hardcoded build patch from test script by @iyanmv in #1938
- Don't include dlfcn.h for Windows by @steenrasmussen in #1936
- Update CBOM format to upstream v1.6 by @bhess in #1834
- Downgrade zephyr container to v0.26.14 to avoid build failures by @bhess in #1949
- Fix for Zephyr CI by @Frauschi in #1953
- Add a basic fuzz testing harness for Dilithium2 by @nathaniel-brough in #1905
- [#1823] replace malloc/calloc/strdup/free with openssl allocator by @songlingatpan in #1926
- Add benchmarking for stateful hash based schemes: speed_sig_stfl by @cr-marcstevens in #1952
- Update CODEOWNERS by @dstebila in #1943
- Add new API to cleanup OpenSSL threads. by @ashman-p in #1959
- Adapt existing sig fuzz harness including more algorithms by @nathaniel-brough in #1955
- add C++ linking test by @aidenfoxivey in #1971
- Make random/functions deterministic during fuzzing by @nathaniel-brough in #1974
- Remove SPHINCS+ aarch64 code by @SWilson4 in #1972
- Remove macos-12 runner due to GitHub deprecation. by @SWilson4 in #1977
- Revert "Disable erroring TravisCI build" by @bhess in #1960
- imported fix from CROSS upstream: endianness-aware csprng by @rtjk in #1983
- chore: Add CI badges to README.md by @ChinoUkaegbu in #1987
- Update PLATFORMS.md / re-enable CROSS on s390x by @SWilson4 in #1988
- Avoid OpenSSL functions are unconditionally called at OQS_destroy by @ueno in #1982
- Test Improvements for ML-KEM by @abhinav-thales in #1947
- Add patch to fix HQC decapsulation in 95f904b
- Run copy_from_upstream.py in cce1bfd
- Fix LMS crash by @ashman-p in #1998
- Set ML-KEM alg_version to "FIPS203" by @SWilson4 in #1997
- Add ML-DSA / FIPS 204 final by @bhess in #1919
- Add defines for OQS version components by @dstebila in #2000
- Create liboqs 0.12.0 release candidate 1 by @dstebila in #2006
New Contributors
- @steenrasmussen made their first contribution in #1936
- @nathaniel-brough made their first contribution in #1905
- @songlingatpan made their first contribution in #1926
- @cr-marcstevens made their first contribution in #1952
- @aidenfoxivey made their first contribution in #1971
- @ChinoUkaegbu made their first contribution in #1987
- @abhinav-thales made their first contribution in #1947
Full Changelog: 0.11.0...0.12.0
liboqs version 0.11.0
liboqs version 0.11.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:
- 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
Release notes
This is version 0.11.0 of liboqs. It was released on September 26, 2024.
This release updates ML-KEM implementations to their final FIPS 203 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 along with stateful hash-based signature schemes XMSS and LMS. Finally, this release provides formally verified implementations of Kyber-512 and Kyber-768 from libjade.
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.
What's New
This release continues from the 0.10.1 release of liboqs.
Key encapsulation mechanisms
- Kyber: Added formally-verified portable C and AVX2 implementations of Kyber-512 and Kyber-768 from libjade.
- 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.
Digital signature schemes
- LMS/XMSS: Added implementations of stateful hash-based signature schemes: XMSS and LMS.
- 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.
Other changes
- Added callback API to use custom implementations of AES, SHA2, and SHA3.
- Refactor SHA3 implementation to use OpenSSL's EVP_DigestSqueeze() API.
Detailed changelog
- [NFCI] Move Keccak rhotates tables to rodata by @aaupov in #1739
- Document Fix by @pi-314159 in #1735
- Add option to dynamically load libcrypto.so.* by @ueno in #1603
- Allow windows linking of test programs by @matlimatli in #1751
- Refactor OpenSSL Implementation of SHA3 SHAKE to use new Squeeze API by @Eddy-M-K in #1694
- remove "maximum" words for most length fields by @wangweij in #1747
- add compile_commands.json to .gitignore by @carsonRadtke in #1754
- Fix linking of test programs on msys by @d0p1s4m4 in #1758
- restrict Windows platform support documentation [skip ci] by @baentsch in #1762
- Add workflow dispatch to action by @ryjones in #1778
- Bump jinja2 from 3.1.3 to 3.1.4 in /scripts/copy_from_upstream by @dependabot in #1782
- Algorithm selection clarification by @beldmit in #1784
- Use OPENSSL_cleanse if OpenSSL is used by @bencemali in #1773
- Errors not printed out when OPENSSL_NO_STDIO is set by @bencemali in #1774
- Add Stateful Signature (XMSS and LMS) by @ashman-p in #1650
- Forward-declare OQS_SIG in sig_stfl.h by @SWilson4 in #1820
- Move Linux ARM64 "build" test from CircleCI to GitHub Actions by @SWilson4 in #1814
- Fix test_alg_info.py on Windows platform by @qnfm in #1821
- Increment version string to 0.10.2-dev by @SWilson4 in #1813
- Add XMSS-SHA256_{10, 16, 20}_192 parameters by @cothan in #1817
- Add XMSS-SHAKE256_{10, 16, 20}_192 parameters by @cothan in #1818
- Add XMSS-SHAKE256_{10, 16, 20}_256 parameters by @cothan in #1819
- Create scorecard.yml (OpenSSF) by @planetf1 in #1708
- Expose callback API for replacing low-level cryptographic primitives by @ueno in #1832
- Add MAYO signature scheme from NIST onramp by @bhess in #1707
- Bump zipp from 3.4.0 to 3.19.1 in /scripts/copy_from_upstream in the pip group by @dependabot in #1836
- Update and fix CI status badges by @anvega in #1844
- Use
cmake -LA -N
instead ofcmake -LA
in CI by @SWilson4 in #1848 - Fix passes.json entries for MAYO by @bhess in #1852
- ML-KEM NIST tests, fix order of d and z by @bhess in #1854
- Move from CircleCI to GitHub Actions by @SWilson4 in #1849
- Add a convenience script for consistent astyle formatting by @SWilson4 in #1861
- Quick fixes from Trail of Bits audit Week 1 by @SWilson4 in #1869
- Check return value of fscanf in LMS/XMSS KAT tests by @SWilson4 in #1874
- Fix downstream CI trigger by @SWilson4 in #1857
- Don't hardcode OPENSSL_ROOT_DIR to /usr on Linux by @SWilson4 in #1873
- Fix overflow in stateful sigs tests by @SWilson4 in #1887
- Integrate Kyber from libjade by @praveksharma in #1745
- Use explicit_memset if available. NetBSD has support for it: by @loganaden in #1872
- Disable erroring TravisCI build by @bhess in #1901
- Update OpenSSH downstream branch to OQS-v9 by @SWilson4 in #1898
- Fix incorrect formatting in unix.yml by @praveksharma in #1902
- CMakeLists: add ppc case to known archs by @barracuda156 in #1816
- Remove old ad hoc CI for Apple M1 by @dstebila in #1907
- Add ML-KEM / FIPS203 final by @bhess in #1899
- Update checkout action in weekly.yml by @praveksharma in #1908
- Add CROSS by @rtjk in #1881
- Refactor liboqs CI and update Ubuntu images by @SWilson4 in #1909
- Check workflows for issues during CI by @jplomas in #1916
- Patch Kyber to...
0.10.1
liboqs version 0.10.1
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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.10.1 of liboqs. It was released on June 7, 2024.
This release is a security release which fixes potential non-constant-time behaviour in ML-KEM and Kyber based on pq-crystals/kyber@0264efa and pq-crystals/kyber@9b8d306. It also includes a fix for incorrectly named macros in the ML-DSA implementation.
What's New
This release continues from the 0.10.0 release of liboqs.
Key encapsulation mechanisms
- Kyber: portable C implementation updated
- ML-KEM: portable C implementation updated
Digital signature schemes
- ML-DSA: incorrectly named macros renamed
Detailed changelog
- switching to dev mode again by @baentsch in #1743
- Update README.md by @vsoftco in #1769
- Fix README.md to work with Doxygen release 1.10.0 by @praveksharma in #1775
- Fix for incorrect macros in signatures. by @bhess in #1799
- Pull Kyber/ML-KEM CT-Fix from upstream by @bhess
- Force gcc 13.2.0 over 13.3.0 by @planetf1 in #1805
Full Changelog: 0.10.0...0.10.1
0.10.0
liboqs version 0.10.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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.10.0 of liboqs. It was released on March 20, 2024.
This release adds support for ML-KEM (previously known as CRYSTALS-Kyber) and ML-DSA (previously known as CRYSTALS-Dilithium), based on the initial public drafts of FIPS 203 and FIPS 204, respectively. OQS continues to support the NIST Round 3 versions of Kyber and Dilithium for interoperability purposes. This release additionally updates HQC to the NIST Round 4 version and adds support for fixed-length Falcon signatures.
What's New
This release continues from the 0.9.2 release of liboqs.
Key encapsulation mechanisms
- BIKE: Updated portable C implementation to include constant-time fixes from upstream.
- HQC: Updated to NIST Round 4 version.
- ML-KEM: Added portable C and AVX2 implementations of Initial Public Draft (IPD) versions of ML-KEM-512, ML-KEM-768, and ML-KEM-1024.
Digital signature schemes
- Falcon: Updated portable C, AVX2, and AArch64 implementations to support fixed-length (PADDED-format) signatures. Fixed the maximum length of variable-length signatures to comply with the NIST Round 3 specification.
- ML-DSA: Added portable C and AVX2 implementations of Initial Public Draft (IPD) versions of ML-DSA-44, ML-DSA-65, and ML-DSA-87.
Other changes
- Improved thread safety.
- Added uninstall support via
ninja uninstall
- Documented platforms by support tier in PLATFORMS.md.
- Added support for Zephyr RTOS.
- Improved support for macOS on Apple Silicon.
- Removed support for the "NIST-KAT" DRBG.
- Added extended KAT test programs.
Detailed changelog
- PR template update & OpenSSL clarification by @baentsch in #1582
- Use CMAKE_USE_PTHREADS_INIT by @zxjtan in #1576
- Add section to CONFIGURE.md link by @iyanmv in #1578
- Run copy_from_upstream and test by @baentsch in #1589
- Support several pqclean upstream versions by @baentsch in #1595
- Call Keccak_(X4_)Dispatch with pthread_once by @zxjtan in #1549
- minor updates by @vsoftco in #1600
- Pull new HQC implementation from upstream by @SWilson4 in #1585
- add uninstall support by @baentsch in #1604
- Ensure generic OQS_OPT_TARGET in weekly CT tests by @SWilson4 in #1618
- update .travis.yml by @bhess in #1629
- Pull latest Kyber version from upstream by @bhess in #1631
- platform support documentation [skip ci] by @baentsch in #1605
- Add support for Zephyr RTOS by @Frauschi in #1621
- Apply patch to Kyber aarch64 code from PQClean for variable-time division issue. by @bhess in #1636
- Fix BIKE constant-time errors by @SWilson4 in #1632
- Fix falcon constant time check in Valgrind by @cothan in #1646
- Correct cmake version requirement by @baentsch in #1643
- Pull Kyber division fixes from PQ-Crystals into main by @praveksharma in #1649
- Bump gitpython from 3.1.37 to 3.1.41 in /scripts/copy_from_upstream by @dependabot in #1659
- Zephyr: fixes for platform support by @Frauschi in #1658
- Bump jinja2 from 2.11.3 to 3.1.3 in /scripts/copy_from_upstream by @dependabot in #1661
- Riscv zephyr support by @trigpolynom in #1641
- Zephyr: CMake fixes by @Frauschi in #1664
- Clarify that copyright is held by authors and not the project itself [skip ci] by @dstebila in #1668
- Make internal API available to (only) test programs by @SWilson4 in #1667
- Remove reference to old BIKE variants from CONFIGURE.md [skip ci] by @SWilson4 in #1669
- Add a document describing our subproject governance by @dstebila in #1675
- Set the correct compile flag for the memory sanitizer build by @SWilson4 in #1680
- Test against all 100 KAT values by @SWilson4 in #1560
- Update BIKE documentation to exclude x86 by @SWilson4 in #1679
- find_package(Threads) regardless of BUILD_ONLY_LIB by @zxjtan in #1653
- Call set_available_cpu_extensions using pthread_once by @zxjtan in #1671
- Discontinue AppVeyor CI testing by @SWilson4 in #1682
- Run oqs-provider release tests in CI on release candidate branches by @SWilson4 in #1654
- Fix link in GOVERNANCE.md by @Martyrshot in #1686
- Rename weekly runs and skip Falcon-1024 [skip ci] by @SWilson4 in #1684
- Update McEliece suppression files for generic config by @SWilson4 in #1677
- Update SPHINCS+ "clean" suppression files by @SWilson4 in #1683
- Update Sphincs+ Markdown documentation from YAML by @SWilson4 in #1690
- properly document release support level [skip ci] by @baentsch in #1688
- set(OQS_USE_PTHREADS OFF) on MinGW/Cygwin by @zxjtan in #1695
- Fix cross compilation and test in CI by @SWilson4 in #1696
- update brew install instructions to use openssl@3 instead of [email protected] [skip ci] by @Martyrshot in #1701
- Add ML-DSA-ipd and ML-KEM-ipd & NIST supplied test vectors by @bhess in #1626
- Small fixes after adding ML-* by @bhess in #1702
- Move MacOS CI tests to GitHub Actions; add M1 CI tests by @SWilson4 in #1709
- Update liboqs readme to point to oqs-provider instead of deprecated openssl1.1.1 fork [skip ci] by @Martyrshot in #1699
- Fix for the Zephyr CI tests by @Frauschi in #1714
- remove references to unsupported openssh [skip ci] by @baentsch in #1713
- fix documentation generation by @baentsch in #1715
- Support Falcon PADDED format by @SWilson4 in #1710
- Fix for alg_support.cmake by @bhess in https://git...
liboqs version 0.9.2
liboqs version 0.9.2
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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.9.2 of liboqs. It was released on January 16, 2024.
This release is a security release which fixes potential non-constant-time behaviour in Kyber based on pq-crystals/kyber@272125f
What's New
This release continues from the 0.9.1 release of liboqs.
Key encapsulation mechanisms
- Kyber: C, AVX2, and aarch64 implementation updated
Detailed changelog
- Pull Kyber division fixes from PQ-Crystals into dev-092 by @praveksharma in #1652
Full Changelog: 0.9.1...0.9.2
liboqs version 0.9.1
liboqs version 0.9.1
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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.9.1 of liboqs. It was released on December 22, 2023.
This release is a security release which fixes potential non-constant-time behaviour in Kyber based on pq-crystals/kyber@dda29cc
What's New
This release continues from the 0.9.0 release of liboqs.
Key encapsulation mechanisms
- Kyber: C, AVX2, and aarch64 implementation updated
Detailed changelog
- pull kyber from upstream: dda29cc63af721981ee2c831cf00822e69be3220 (#1631) by @dstebila in #1633
- Apply patch to Kyber aarch64 code from PQClean for variable-time division issue -> targeting 0.9.1 by @bhess in #1637
Full Changelog: 0.9.0...0.9.1
liboqs version 0.9.0
liboqs version 0.9.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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.9.0 of liboqs. It was released on October 12, 2023.
This release features an update to the Classic McEliece KEM, bringing it in line with NIST Round 4. It also adds or updates ARM implementations for Kyber, Dilithium, and Falcon.
What's New
This release continues from the 0.8.0 release of liboqs.
Key encapsulation mechanisms
- Classic McEliece: updated to Round 4 version.
- Kyber: aarch64 implementation updated.
Digital signature schemes
- Dilithium: aarch64 implementation updated.
- Falcon: aarch64 implementation added.
Other changes
- Update algorithm documentation
- Support compilation for Windows on ARM64, Apple mobile, and Android platforms
- Improve resilience of randombytes on Apple systems
Release call
Users of liboqs are invited to join a webinar on Thursday, November 2, 2023, from 12-1pm US Eastern time for information on this release, plans for the next release cycle, and to provide feedback on OQS usage and features.
The Zoom link for the webinar is: https://uwaterloo.zoom.us/j/98288698086
Detailed changelog
- Fix libdir value in liboqs.pc by @vt-alt in #1496
- update version and remove CCI triggers by @baentsch in #1498
- create deb package and retain as artifact by @baentsch in #1501
- README correction to docs path & additional gitignore to macos + vscode by @planetf1 in #1503
- Trigger liboqs-python CI via GitHub API by @SWilson4 in #1507
- Update Classic McEliece by @praveksharma in #1470
- update BIKE documentation by @baentsch in #1509
- kyber/dilithium aarch64 pull from pqclean + patches by @bhess in #1512
- Pull Falcon updates from PQClean by @dstebila in #1523
- Bump XCode by @baentsch in #1526
- Update Classic McEliece supression files by @praveksharma in #1527
- Bump gitpython from 3.1.30 to 3.1.32 in /scripts/copy_from_upstream by @dependabot in #1524
- ci: add CI for android by @res0nance in #1531
- re-enable armhf speed testing by @baentsch in #1535
- Bump gitpython from 3.1.32 to 3.1.34 in /scripts/copy_from_upstream by @dependabot in #1538
- Prefer arc4random on Apple platforms by @res0nance in #1544
- Bump gitpython from 3.1.34 to 3.1.35 in /scripts/copy_from_upstream by @dependabot in #1551
- Update Classic McEliece suppression files by @praveksharma in #1541
- Pull Neon implementation of Falcon from PQClean by @SWilson4 in #1547
- ci: add CI for apple mobile platforms by @res0nance in #1546
- Add Windows ARM64 support by @res0nance in #1545
- Document Falcon constant time errors by @praveksharma in #1552
- ci: github actions CI for Windows x86 and x64 by @res0nance in #1554
- build: Align VS test folder with all other Generators by @res0nance in #1557
- Fix weekly.yml to skip McEliece by @praveksharma in #1562
- Enable extensions in constant-time tests by @SWilson4 in #1567
- Update Classic McEliece supression files by @praveksharma in #1568
- liboqs 0.9.0 release candidate 1 by @SWilson4 in #1570
- add community standard documentation [skip ci] by @baentsch in #1565
- Bump gitpython from 3.1.35 to 3.1.37 in /scripts/copy_from_upstream by @dependabot in #1575
New Contributors
- @planetf1 made their first contribution in #1503
- @SWilson4 made their first contribution in #1507
- @praveksharma made their first contribution in #1470
- @res0nance made their first contribution in #1531
Full Changelog: 0.8.0...0.9.0
liboqs version 0.8.0
liboqs version 0.8.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-OpenSSL 1.1.1: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of OpenSSL 1.1.1; see the OQS-OpenSSL-1_1_1-stable branch of our OpenSSL fork's repository.
- 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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.8.0 of liboqs. It was released on June 7, 2023.
What's New
This release continues from the 0.7.2 release of liboqs.
This release features many algorithm updates, including removal of algorithms and variants no longer proceeding through NIST standardization and updates to newer versions. See the detailed list of algorithm updates below.
Key encapsulation mechanisms
- BIKE: updated to Round 4 version.
- Kyber: 90s variants were removed.
- NTRU Prime: All variants were removed, except for sntrup761.
- Saber: removed.
Digital signature schemes
- Dilithium; AES variants were removed.
- Falcon: updated to the 2023-02-07 version.
- Picnic: removed.
- Rainbow: removed.
- SPHINCS+: updated to version 3.1; SPHINCS+-Haraka variants were removed; SPHINCS+-SHA256 and SPHINCS+-SHAKE variants were renamed
Other changes
- Add Cryptographic Bill of Materials (CBOM)
- Improve building on ARM platforms
- Improve performance when using OpenSSL 3 for symmetric cryptography
- Increment shared object library version
- New configure-time options for algorithm selections
- pkgconfig file now available
Known issues
- Issue #1488: 32-bit builds fail in Microsoft Visual C for Falcon AVX code
Detailed changelog
- Add missing requirements to the requirements.txt by @thb-sb in #1295
- Solve '-Wstrict-prototypes' for clang >= 15.0 by @thb-sb in #1293
- Ensure build without an executable stack (fixes #1285) by @sebastinas in #1294
- Fix typo in Picnic's NEON detection by @sebastinas in #1298
- ARM32 gcc12 build workaround by @baentsch in #1297
- Fallback code for
aligned_alloc
and use ofexplicit_bzero
by @sebastinas in #1300 - update version string indicating dev status by @baentsch in #1305
- addressing sig length questions by @baentsch in #1306
- Integer overflow leading to incorrect SHA3 computation by @jschanck in #1312
- Fixing OQS ARM inconsistencies by @Martyrshot in #1307
- automatically activate USE_RASPBERRY_PI define by @baentsch in #1313
- update Kyber and Dilithium from upstream by @bhess in #1316
- Remove rainbow by @xvzcf in #1321
- Removed Picnic signature scheme. by @xvzcf in #1323
- Removed NTRU-Prime. by @xvzcf in #1325
- Removed SABER. by @xvzcf in #1326
- add valgrind option by @malbert1 in #1327
- Removed NTRU. by @xvzcf in #1335
- Add ntruprime by @ryndia in #1328
- fix: initialize context after reset in ossl_sha3x4 by @bhess in #1339
- Enable algorithm filtering by @baentsch in #1333
- Revert "Enable algorithm filtering (#1333)" by @baentsch in #1351
- llvm15 update by @baentsch in #1350
- Adds CBOM for liboqs by @bhess in #1337
- Fix Doxygen Markdown failures by @dstebila in #1349
- Build dump_alg_info in tests by @dstebila in #1353
- Build Doxygen docs in whatever the CMake build directory is by @dstebila in #1357
- NIST std algs list selection enablement by @baentsch in #1355
- Config update by @baentsch in #1361
- add cpack (for .deb packages) by @baentsch in #1362
- Updated PQClean commit in
copy_from_upstream.yml
by @xvzcf in #1359 - Bump gitpython from 3.0.7 to 3.1.30 in /scripts/copy_from_upstream by @dependabot in #1354
- Fixed mismatch between YAML and markdown docs for some algorithms. by @xvzcf in #1365
- adding OpenSSL3 test; activating sanitizer test by @baentsch in #1363
- re-enabling msys2 testing after picnic is gone by @baentsch in #1373
- Use OQS_STATUS types in FrodoKEM by @dstebila in #1377
- compiler future-proofing Release builds by @baentsch in #1378
- BIKE Round-4 update by @dkostic in #1369
- Fix rendering error in Markdown by @dstebila in #1384
- Update Falcon to 20230207 by @dstebila in #1386
- Revert "Update Falcon to 20230207 (PQClean commit 96dfee95cc56207d1ec… by @baentsch in #1392
- Add full-cycle speed test by @baentsch in #1391
- update BIKE documentation by @baentsch in #1387
- correct free in test_kem/sig by @baentsch in #1399
- Copy from upstream (Kyber), add pqcrystals-* licenses to README by @bhess in #1403
- Update Falcon implementation by @thomwiggers in #1395
- adding issue template [skip ci] by @baentsch in #1410
- Copy_from_upstream: no subprocess call & update_cbom fix for CI. by @bhess in #1412
- CI test copy_from_upstream by @baentsch in #1405
- Fix constant time failure for Falcon AVX2 by @dstebila in #1415
- clarify OpenSSL config [skip ci] by @baentsch in #1429
- Make BIKE decode function void to avoid ct issues by @dkostic in #1400
- rm duped "the" in pull_request_template.md by @Rudxain in #1439
- fix "ths" typo by @Rudxain in #1438
- Generate and install pkgconfig file by @tranzystorek-io in #1435
- Initial fetching of MD and Cipher objects from OpenSSL(3) by @beldmit in #1431
- Use CMake flag for -Werror by @thomwiggers in #1444
- ...
liboqs version 0.7.2
liboqs version 0.7.2
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-OpenSSL 1.1.1: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of OpenSSL 1.1.1; see the OQS-OpenSSL-1_1_1-stable branch of our OpenSSL fork's repository.
- oqs-provider: A standalone prototype OpenSSL 3 provider enabling liboqs-based quantum-safe and hybrid key exchange for TLS 1.3, and post-quantum and hybrid 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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.7.2 of liboqs. It was released on August 21, 2022.
Security considerations
This release removes Rainbow level 1 and all variants of SIDH and SIKE due to cryptanalytic breaks of those algorithms. Users are advised to move away from use of those algorithms immediately.
What's New
This release continues from the 0.7.1 release of liboqs.
The goal of this release is to provide a final release for algorithms that were included in Round 3 of the NIST Post-Quantum Standardization project. As the security status of some algorithms changed during Round 3, it drops algorithms known to be broken as of release (Rainbow level 1, SIKE). Some algorithms also updated their specification during Round 3; version 0.7.2 does not incorporate any algorithm changes that result in different input/output behaviour compared to version 0.7.1; such changes will included in version 0.8.0.
The next release of liboqs, version 0.8.0, will remove some algorithms that did not advance beyond NIST Round 3, update implementations based on algorithm/specification revisions that happened during Round 3, and begin to incorporate Round 4 changes. Discussion of algorithms to be removed in version 0.8.0 can be found in #1245.
Key encapsulation mechanisms
- Kyber: Update implementation and switch use of symmetric crypto to OQS common code
- HQC: Fix build on gcc-12
- SIKE: Remove SIKE due to break (https://eprint.iacr.org/2022/975)
Digital signature schemes
- Dilithium: Add ARMv8 optimized implementation and switch use of symmetric crypto to OQS common code
- Picnic: Update implementation
- Rainbow: Remove Rainbow level 1 due to break (https://eprint.iacr.org/2022/214)
Other changes
- Add support for building on powerpc64
- Update XKCP implementation
- Improve SHA2 implementation on ARMv8
- Improve AES implementation on ARMv8
- Add aarch64 CPU feature detection on FreeBSD
- Improve cross-compiling on Windows
- Enable integration of liboqs into other CMake-based projects
- Increment shared object library version
Detailed changelog
- Update Picnic to 3.0.8 by @sebastinas in #1158
- XCode update by @baentsch in #1162
- Add support for powerpc64 by @pkubaj in #1160
- remove picnic from cygwin build by @baentsch in #1171
- adding constant time test as weekly github action by @baentsch in #1170
- extend weekly run timeout [skip ci] by @baentsch in #1172
- Update XKCP and avoid assembler .ifdef directives by @jschanck in #1173
- Updated constant_time suppression files after picnic update by @christianpaquin in #1174
- Update to Picnic 3.0.9 by @sebastinas in #1167
- Mark stack non-executable when compiling with clang or gcc by @dstebila in #1161
- extend timeout to 10h by @baentsch in #1175
- skip sphincs,rainbow in shortened weekly testing by @baentsch in #1176
- Fixed build issue on arm based macs when using gcc11 by @Martyrshot in #1177
- disable BIKE on all 32bitters except x86 by @baentsch in #1180
- Update to picnic 3.0.11 (fixes #1178) by @sebastinas in #1181
- Weekly run update by @baentsch in #1182
- weekly job moved to Sunday [skip ci] by @baentsch in #1183
- Resolves an issue when building sha2 using arm crypto extensions with gcc11 by @Martyrshot in #1184
- Suppress constant time check for public matrix generation on Kyber AVX2 by @dstebila in #1189
- create and install cmake import files by @baentsch in #1191
- adding warning re Rainbow to documentation [skip ci] by @baentsch in #1193
- ARMv8 optimized Dilithium by @Martyrshot in #1194
- skip yamllint test for good by @baentsch in #1196
- Edits to key scheduling for AES on ARM to be constant time by @tedeaton in #1200
- Correct OQS_DIST_BUILD for ARM by @baentsch in #1202
- Deal with some issues identified by clang scan-build by @dstebila in #1211
- Issues and passes for aarch64 const time checks by @tedeaton in #1214
- Use
SecRandomCopyBytes
for system randomness on iOS (to allow building on iOS) by @zanebeckwith in #1219 - workaround for picnic under msys2 by @baentsch in #1220
- Adding aarch64 CPU feature detection for FreeBSD by @Martyrshot in #1210
- Added typecasts to tests/ds_benchmark.h to silence clang warnings by @Martyrshot in #1225
- doxygen update by @baentsch in #1228
- Link documentation and code by @baentsch in #1229
- Integrates pqcrystals with common-aes / extends common code AES CTR-API by @bhess in #1221
- Adds AES context release in Dilithium-AES / fix memory leak by @bhess in #1238
- Update Picnic to 3.0.14 (fixes #1212) by @sebastinas in #1237
- improve Windows crosscompile handling by @baentsch in #1236
- Bump Picnic to 3.0.15 by @sebastinas in #1241
- Updated Dilithium sign.c patch with AES context release (2) by @bhess in #1242
- adding scan-build test by @baentsch in #1240
- adding memory leak testing by @baentsch in #1234
- disable msys2 testing by @baentsch in #1243
- docs: Add valgrind as test dependencies in README.md by @yin19941005 in #1251
- Sync Kyber with upstream, enable Scan-Build with Kyber by @bhess in #1252
- Deal with the issue identified by valgrind by @splasky in #1250
- pqclean_hqc: Fix build on GCC-12 by @vt-alt in #1254
- Remove Rainbow level 1 by @dstebila in https://gith...
liboqs version 0.7.1
liboqs version 0.7.1
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-OpenSSL 1.1.1: A prototype integration of liboqs-based authentication and key exchange into TLS 1.3 in our fork of OpenSSL 1.1.1; see the OQS-OpenSSL-1_1_1-stable branch of our OpenSSL fork's repository.
- oqs-provider: A standalone prototype of liboqs-based key exchange for TLS 1.3 using the OpenSSL 3 (alpha) provider integration mechanism.
- 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. Performance of liboqs in several settings is measured at https://openquantumsafe.org/benchmarking/.
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
- .NET, via https://github.com/open-quantum-safe/liboqs-dotnet
- Python 3, via https://github.com/open-quantum-safe/liboqs-python
- Rust, via https://github.com/open-quantum-safe/liboqs-rust
Release notes
This is version 0.7.1 of liboqs. It was released on December 16, 2021.
What's New
This release continues from the 0.7.0 release of liboqs.
Key encapsulation mechanisms
- Add NTRU level 5 parameter sets (ntruhps40961229, ntruhrss1373)
- Add NTRU Prime level 5 parameter sets (ntrulpr1277, sntrup1277)
- Add ARMv8 aarch64 optimized implementations of Kyber and SABER
- Minor updates to Kyber, NTRU, NTRU Prime, and SIKE implementations
Digital signature schemes
- Minor updates to Dilithium implementation
Other changes
- Optimized AES implementation on ARMv8 with crypto extensions.
- Preliminary support for building on S390x platform
- Improved build configurations on ARM platforms
- Improvements to benchmarking harness, with improved precision on ARM platforms
Detailed changelog
- Use Github Actions for some CI by @dstebila in #1069
- fixing #1076 by @baentsch in #1078
- Add instructions on how to build shared/dynamic library to the README by @Wandering-Consciousness in #1077
- Updated SIKE to latest upstream commit by @christianpaquin in #1079
- enabling flexible build dir name in testing by @baentsch in #1080
- run optimized constant time tests only on haswell by @baentsch in #1082
- increase constant time test timeout allowing slow runners to complete [skip ci] by @baentsch in #1085
- skip algorithms for constant_time tests by @baentsch in #1089
- Kyber/Dilithium copy_from_upstream by @bhess in #1088
- do full upstream doc generation [skip ci] by @baentsch in #1066
- Adding armv8 crypto extensions to AES by @tedeaton in #1086
- Enabling out-of-source build-and-test by @baentsch in #1091
- adding pyyaml prerequisite to README [skip ci] by @baentsch in #1094
- correct out-of-source build-and-test by @baentsch in #1093
- Update to PQClean commit 5b8ef3baea3ffdfbf688a3a1bb8f02de44a67ec0 by @dstebila in #1097
- skip more SPHINCS algs from weekly testing by @baentsch in #1102
- S390x support by @bhess in #1103
- Update BIKE documentation to reflect only little endian support [skip ci] by @dstebila in #1105
- Add powerpc64le name as alternative to ppc64le by @dstebila in #1112
- Disable BIKE build on s390x (big endian) by @bhess in #1115
- adds S/NTRUP1277 by @baentsch in #1111
- Updated Picnic to v3.0.5 by @christianpaquin in #1116
- Skip non-enabled algs in constant time tests by @christianpaquin in #1120
- Updated valgrind constant time exception for picnic by @christianpaquin in #1121
- Adding support for multiple upstream to copy_from_upstream, as well as pqclean's aarch64 kyber implementation by @Martyrshot in #1117
- Added Keccak constant time exclusion for Picnic AVX2 by @christianpaquin in #1124
- Adding multiple upstream support to doc generation by @Martyrshot in #1123
- adding ntruhps40961229 by @baentsch in #1126
- Fix gcc 11 error for Kyber on arm64 by @dstebila in #1127
- LF everywhere by @baentsch in #1133
- skip more ClassicMcEliece weekly CI constant time tests [skip ci] by @baentsch in #1134
- more code style checks by @baentsch in #1135
- Added supported-platforms compile guards in the SIKE CMakeLists by @christianpaquin in #1136
- Adding arm64_v8 optimized versions of saber. by @Martyrshot in #1131
- add downlevel compiler warning by @baentsch in #1137
- enable ARM64 optimizations when using OQS_MINIMAL_BUILD option by @baentsch in #1139
- Adding a speed_common script to benchmark OQS AES and hash algorithms by @tedeaton in #1144
- NIST copyright clarification by @baentsch in #1142
- Option to use PMU for benchmarking on ARM by @dstebila in #1147
- aarch64 dist build by @baentsch in #1148
- Tweaks to benchmarking code by @dstebila in #1150
- release performance regression test by @baentsch in #1152
- Added spdx headers to noregress.[py|sh] by @Martyrshot in #1154
- Output documented build options by @baentsch in #1155
- docs: set license MIT to Falcon Signature by @ax1 in #1156
- add trigger for oqs-provider CI by @baentsch in #1157
Full Changelog: 0.7.0...0.7.1