diff --git a/.github/workflows/python_detailed.yml b/.github/workflows/python_detailed.yml index 84c581f..7a9e3ea 100644 --- a/.github/workflows/python_detailed.yml +++ b/.github/workflows/python_detailed.yml @@ -15,7 +15,7 @@ env: BUILD_TYPE: Debug LD_LIBRARY_PATH: /usr/local/lib WIN_LIBOQS_INSTALL_PATH: C:\liboqs - VERSION: 0.14.0 + VERSION: 0.16.0 PYOQS_ENABLE_FAULTHANDLER: "1" UV_PYTHON: "3.14" @@ -81,7 +81,7 @@ jobs: shell: cmd run: | git clone --branch ${{env.VERSION}} --single-branch --depth 1 https://github.com/open-quantum-safe/liboqs - cmake -S liboqs -B liboqs\build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.WIN_LIBOQS_INSTALL_PATH}} -DBUILD_SHARED_LIBS=ON -DOQS_BUILD_ONLY_LIB=ON -DOQS_BUILD_ONLY_LIB=ON -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON ‑DOQS_ALLOW_STFL_KEY_AND_SIG_GEN=ON + cmake -S liboqs -B liboqs\build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{env.WIN_LIBOQS_INSTALL_PATH}} -DBUILD_SHARED_LIBS=ON -DOQS_BUILD_ONLY_LIB=ON -DOQS_BUILD_ONLY_LIB=ON -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ALLOW_STFL_KEY_AND_SIG_GEN=ON cmake --build liboqs\build --parallel 4 cmake --build liboqs\build --target install diff --git a/CHANGES.md b/CHANGES.md index 0e9fd4e..d4746e6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,25 @@ -# Pre-release +# Version 0.16.0 - + +- Updated to liboqs 0.16.0 +- Added the `PYOQS_VERSION` environment variable to override the liboqs + release installed automatically at runtime, + https://github.com/open-quantum-safe/liboqs-python/pull/140 +- Fixed the Windows shared library lookup to search for both `oqs.dll` and + `liboqs.dll`, + https://github.com/open-quantum-safe/liboqs-python/pull/117 +- Fixed a `faulthandler` import error under Robot Framework, + https://github.com/open-quantum-safe/liboqs-python/pull/129 +- Fixed `StatefulSignature.export_secret_key` `TypeError`s on Windows, + https://github.com/open-quantum-safe/liboqs-python/pull/141 +- Fixed a `StatefulSignature` segfault when liboqs is built without stateful + signature key generation support, + https://github.com/open-quantum-safe/liboqs-python/pull/144 +- Updated the Python versions used in CI, + https://github.com/open-quantum-safe/liboqs-python/pull/143 +- Removed the `docker/` directory, + https://github.com/open-quantum-safe/liboqs-python/pull/145 + +# Version 0.14.0 - August 9, 2025 - Added type checking and automatic linting/formatting, https://github.com/open-quantum-safe/liboqs-python/pull/97 - Added a utility function for de-structuring version strings in `oqs.py` @@ -6,6 +27,12 @@ containing the (major, minor, patch) versions - A warning is issued only if the liboqs-python version's major and minor numbers differ from those of liboqs, ignoring the patch version +- Added stateful signature support via the `StatefulSignature` class +- New enumeration helpers `get_enabled_stateful_sig_mechanisms()` and + `get_supported_stateful_sig_mechanisms()` +- ML-KEM keys can be generated from a seed via + `KeyEncapsulation.generate_keypair_seed()`. +- Minimum required Python 3 version bumped to 3.11 # Version 0.12.0 - January 15, 2025 diff --git a/README.md b/README.md index 08ddeb0..2f0a05c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # liboqs-python: Python 3 bindings for liboqs [![GitHub actions](https://github.com/open-quantum-safe/liboqs-python/actions/workflows/python_simplified.yml/badge.svg)](https://github.com/open-quantum-safe/liboqs-python/actions) +[![PyPI version](https://img.shields.io/pypi/v/liboqs-python)](https://pypi.org/project/liboqs-python/) --- @@ -107,7 +108,7 @@ By default, liboqs-python installs the liboqs release that matches its own version. Set the `PYOQS_VERSION` environment variable to override this: ```shell -export PYOQS_VERSION=0.15.0 # install a specific liboqs release +export PYOQS_VERSION=0.16.0 # install a specific liboqs release export PYOQS_VERSION=latest # install liboqs from main (HEAD) ``` @@ -133,9 +134,27 @@ by venv\Scripts\activate.bat ``` -### Configure and install the wrapper +### Install the wrapper from PyPI -Execute in a Terminal/Console/Administrator Command Prompt +The simplest way to install liboqs-python is from +[PyPI](https://pypi.org/project/liboqs-python/) + +```shell +pip install liboqs-python +``` + +The PyPI package contains only the Python wrapper; it does **not** bundle a +compiled copy of liboqs. The first time you `import oqs`, liboqs-python uses a +system-wide liboqs if one is available, or otherwise downloads, builds and +installs the matching liboqs release automatically, as described in +[Let liboqs-python install liboqs automatically](#let-liboqs-python-install-liboqs-automatically) +above. Building liboqs from source requires git, CMake and a C compiler; see +[Pre-requisites](#pre-requisites). + +### Install the wrapper from source + +Alternatively, install the wrapper directly from the source repository by +executing in a Terminal/Console/Administrator Command Prompt ```shell git clone --depth=1 https://github.com/open-quantum-safe/liboqs-python diff --git a/RELEASE.md b/RELEASE.md index bdebfa6..8124cd4 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,14 +1,16 @@ -# liboqs-python version 0.14.0 +# liboqs-python version 0.16.0 --- -# Added in version 0.14.0 July 2025 -- Added stateful signature support via the `StatefulSignature` class. -- New enumeration helpers `get_enabled_stateful_sig_mechanisms()` and - `get_supported_stateful_sig_mechanisms()`. -- Updated to liboqs 0.14.0. -- ML-KEM keys can be generated from a seed via - `KeyEncapsulation.generate_keypair_seed()`. +# Added in version 0.16.0 + +- Updated to liboqs 0.16.0. +- Added the `PYOQS_VERSION` environment variable to override the liboqs + release that is installed automatically at runtime. +- Fixed the Windows shared library lookup to search for both `oqs.dll` and + `liboqs.dll`. +- Fixed a `StatefulSignature` segfault when liboqs is built without stateful + signature key generation support. ## About @@ -32,13 +34,13 @@ See in particular limitations on intended use. ## Release notes -This release of liboqs-python was released on July 10, 2025. Its release +This release of liboqs-python was released on . Its release page on GitHub is -https://github.com/open-quantum-safe/liboqs-python/releases/tag/0.14.0. +https://github.com/open-quantum-safe/liboqs-python/releases/tag/0.16.0. --- ## What's New -This is the 11th release of liboqs-python. For a list of changes see +For a list of changes see [CHANGES.md](https://github.com/open-quantum-safe/liboqs-python/blob/main/CHANGES.md). diff --git a/pyproject.toml b/pyproject.toml index 4a987a3..05c499b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "liboqs-python" requires-python = ">=3.10" -version = "0.16.0-dev" +version = "0.16.0" description = "Python bindings for liboqs, providing post-quantum public key cryptography algorithms" authors = [ { name = "Open Quantum Safe project", email = "contact@openquantumsafe.org" },