Skip to content

Commit

Permalink
Prepping for v0.10.0
Browse files Browse the repository at this point in the history
  • Loading branch information
vsoftco committed Mar 26, 2024
1 parent ce59ea1 commit 78eb076
Show file tree
Hide file tree
Showing 255 changed files with 201 additions and 109,233 deletions.
83 changes: 83 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Version 0.10.0 - March 26, 2024

- Replaced `["CHANGES"]` by `["CHANGES.md"]`, as we now use Markdown format to
keep track of changes in new releases
- Removed GoogleTest dependency; if not detected, it is installed automatically
as build dependency by CMake
- Bumped GoogleTest version to HEAD latest, as
[recommended by Google](https://github.com/google/googletest?tab=readme-ov-file#live-at-head)
- Removed the NIST PRNG as the later is no longer exposed by liboqs' public API

# Version 0.9.1 - November 1, 2023

- Added support for install/uninstall via CMake, and a standalone example in
["examples/standalone"].

# Version 0.9.0 - October 30, 2023

- No modifications, release bumped to match the latest release of liboqs

# Version 0.8.0 - July 5, 2023

- This is a maintenance release, minor fixes
- Minimalistic Docker support
- Removed AppVeyor and CircleCI, all continuous integration is now done via
GitHub actions

# Version 0.7.2 - September 1, 2022

- Added library version retrieval functions
- `std::string oqs::oqs_version()`
- `std::string oqs::oqs_cpp_version()`
- Bumped GoogleTest version to 1.12.1
[commit](https://github.com/google/googletest/commit/58d77fa8070e8cec2dc1ed015d66b454c8d78850)

# Version 0.7.1 - January 5, 2022

- Release numbering updated to match liboqs
- Integrated the unit tests with the main project, so now the unit tests are
automatically compiled along with the examples, and can now be run by typing
`make test` or `ctest`. Use `GTEST_COLOR=1 ARGS="-V" make test` or
`GTEST_COLOR=1 ctest -V` for coloured verbose testing output.
- CMake minimum required version bumped to 3.10 (3.12 for macOS) for automatic
unit tests detection by CMake
- Switched continuous integration from Travis CI to CircleCI, we now support
macOS & Linux (CircleCI) and Windows (AppVeyor)

# Version 0.4.0 - November 28, 2020

- Renamed `master` branch to `main`

# Version 0.3.0 - June 10, 2020

- Removed the Visual Studio solution (since it can be automatically generated
by CMake), as we prefer to use CMake uniformly across all platforms
- Minor fixes

# Version 0.2.2 - January 16, 2020

- Added additional RNG example project to Visual Studio solution

# Version 0.2.1 - November 2, 2019

- Added support for RNGs from `<oqs/rand.h>`
- Concurrent unit testing

# Version 0.2.0 - October 8, 2019

- Minor changes to accomodate for liboqs API changes

# Version 0.1.2 - July 9, 2019

- Added MSVC support for CMake
- Updated Google Test to version 1.8.1
- Bugfix in `oqs::Signature::sign()`

# Version 0.1.1 - May 29, 2019

- Minor API change in `oqs_cpp.h`: `Signature::alg_details_::length_signature`
is replaced by `Signature::alg_details_::max_length_signature`

# Version 0.1.0 - April 23, 2019

- Initial release
64 changes: 0 additions & 64 deletions CHANGES.txt

This file was deleted.

13 changes: 5 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
cmake_minimum_required(VERSION 3.15)
set(LIBOQS_CPP_VERSION_NUM 0.9.1)
set(LIBOQS_CPP_VERSION_NUM 0.10.0)
set(LIBOQS_CPP_VERSION_STR "${LIBOQS_CPP_VERSION_NUM}")
project(
liboqs-cpp
VERSION ${LIBOQS_CPP_VERSION_NUM}
LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
Expand All @@ -19,8 +18,9 @@ add_definitions(-DLIBOQS_CPP_VERSION="${LIBOQS_CPP_VERSION_STR}")
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(
FATAL_ERROR
"In-source builds not allowed. Please instruct CMake to use an out-of-source build, e.g.,
cmake --build build [...]
"In-source builds not allowed. Please instruct CMake to use an\
out-of-source build, e.g.,
cmake -B build && cmake --build build
You may need to remove CMakeCache.txt.")
endif()

Expand All @@ -35,14 +35,11 @@ target_compile_definitions(
target_compile_definitions(
liboqs-cpp INTERFACE -DLIBOQS_CPP_VERSION="${LIBOQS_CPP_VERSION_STR}")

# BEGIN LOCAL stuff, you don't need those in standalone projects
option(WITH_EXAMPLES "Enable example compilation" OFF)

# Dependencies
include(cmake/liboqs-cpp_dependencies.cmake)

# Unit testing
add_subdirectory(${CMAKE_SOURCE_DIR}/unit_tests/)
add_subdirectory(${CMAKE_SOURCE_DIR}/unit_tests/ EXCLUDE_FROM_ALL SYSTEM)

# Enable all warnings for GNU gcc and Clang/AppleClang
if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" OR ${CMAKE_CXX_COMPILER_ID}
Expand Down
4 changes: 2 additions & 2 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ PROJECT_NAME = liboqs-cpp
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 0.9.1
PROJECT_NUMBER = 0.10.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "liboqs C++ wrapper"
PROJECT_BRIEF = "C++ bindings for liboqs"

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ The project contains the following files and directories:
- `examples/kem.cpp`: key encapsulation example
- `examples/rand.cpp`: RNG example
- `examples/sig.cpp`: signature example
- `unit_tests`: unit tests written using Google Test (included)
- `unit_tests`: unit tests written using GoogleTest

---

Expand Down Expand Up @@ -133,7 +133,7 @@ may be slightly different, e.g., `liboqs-cpp/build/Debug/kem.exe`.
Execute

```shell
ctest --build liboqs-cpp/build --parallel 8 --target unit_tests
ctest --build liboqs-cpp/build --parallel 8 --target unit_tests
```

followed by
Expand All @@ -144,14 +144,14 @@ ctest --test-dir liboqs-cpp/build

---

## Installing liboqs-cpp and usage in standalone applications
## Installing liboqs-cpp and using it in standalone applications

liboqs-cpp is a header-only wrapper. To use liboqs-cpp, you only need
to

```c++
```cpp
#include <liboqs-cpp/oqs_cpp.hpp>
```
```

in your application, and have liboqs library installed as described above.
See [examples/standalone](https://github.com/open-quantum-safe/liboqs-cpp/tree/main/examples/standalone)
Expand Down Expand Up @@ -242,7 +242,7 @@ your current project in the Docker
container with

```shell
docker run --rm -it --workdir=/app -v ${PWD}:/app oqs-cpp /bin/bash
docker run --rm -it --workdir=/app -v ${PWD}:/app oqs-cpp /bin/bash
```

---
Expand Down Expand Up @@ -285,11 +285,11 @@ for details.

The Open Quantum Safe project is led
by [Douglas Stebila](https://www.douglas.stebila.ca/research/)
and [Michele Mosca](http://faculty.iqc.uwaterloo.ca/mmosca/) at the University
and [Michele Mosca](https://faculty.iqc.uwaterloo.ca/mmosca/) at the University
of Waterloo.

liboqs-cpp was developed by [Vlad Gheorghiu](https://vsoftco.github.io) at
softwareQ Inc. and University of Waterloo.
[softwareQ Inc.](https://www.softwareq.ca) and at the University of Waterloo.

---

Expand Down
10 changes: 5 additions & 5 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# liboqs-cpp version 0.9.1
# liboqs-cpp version 0.10.0

---

Expand All @@ -24,12 +24,12 @@ See in particular limitations on intended use.

## Release notes

This release of liboqs-cpp was released on November 1, 2023. Its release page
on GitHub is https://github.com/open-quantum-safe/liboqs-cpp/releases/tag/0.9.1.
This release of liboqs-cpp was released on March 26, 2024. Its release page
on GitHub is https://github.com/open-quantum-safe/liboqs-cpp/releases/tag/0.10.0.

---

## What's New

This is the 13th release of liboqs-cpp. For a list of changes
see [CHANGES.txt](https://github.com/open-quantum-safe/liboqs-cpp/blob/main/CHANGES.txt).
This is the 14th release of liboqs-cpp. For a list of changes
see [CHANGES.md](https://github.com/open-quantum-safe/liboqs-cpp/blob/main/CHANGES.md).
19 changes: 9 additions & 10 deletions cmake/examples.cmake
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
#### Examples
#### Source file(s) to be compiled, modify as needed
# Examples Source file(s) to be compiled, modify as needed
aux_source_directory(${CMAKE_SOURCE_DIR}/examples EXAMPLE_FILES)

#### Build all examples in ${EXAMPLE_FILES}
add_custom_target(examples)
foreach (FILE ${EXAMPLE_FILES})
get_filename_component(TARGET_NAME ${FILE} NAME_WE)
add_executable(${TARGET_NAME} EXCLUDE_FROM_ALL ${FILE})
add_dependencies(examples ${TARGET_NAME})
target_link_libraries(${TARGET_NAME} PUBLIC liboqs-cpp oqs)
endforeach ()
# Build all examples in ${EXAMPLE_FILES}
add_custom_target(examples COMMENT "Examples")
foreach(file ${EXAMPLE_FILES})
get_filename_component(TARGET_NAME ${file} NAME_WE)
add_executable(${TARGET_NAME} EXCLUDE_FROM_ALL ${file})
add_dependencies(examples ${TARGET_NAME})
target_link_libraries(${TARGET_NAME} PUBLIC liboqs-cpp oqs)
endforeach()
Loading

0 comments on commit 78eb076

Please sign in to comment.