Skip to content

Commit 8174d0c

Browse files
authored
Prepare release 4.2.0
New optional features: - HSM support - Dilithium support
1 parent c45b2a9 commit 8174d0c

File tree

2 files changed

+57
-4
lines changed

2 files changed

+57
-4
lines changed

CHANGELOG.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ All notable changes to this project will be documented in this file.
88

99
## Fixed
1010

11+
12+
# Release 4.2.0
13+
## Changed
14+
15+
## Fixed
16+
1117
* CA Tests' SetUp was changed so that all the objects involved do not depend on time when
1218
construction of object is made. This led to problems where object of CA class had notBefore
1319
attribute set to greater value than CA's certificate's notBefore which should never happen.
@@ -31,11 +37,22 @@ All notable changes to this project will be documented in this file.
3137
This change just improves the error reporting.
3238
* Clang-Format has been applied to the existing code-base of MoCOCrW and a `.clang-format`
3339
file has been included to format the code of of future PRs.
34-
* A foundational PKCS#11 HSM interface, based OpenSSL's ENGINE API, has been introduced
35-
to MoCOCrW. Currently, the following functionality is supported:
40+
* A foundational PKCS#11 HSM interface, based on OpenSSL's ENGINE API, has been introduced
41+
to MoCOCrW. This functionality is disabled by default. See [README](README.md) to get more
42+
information on how to enable it.
43+
Currently, the following functionality is supported:
3644
- Loading Public Keys
3745
- Loading Private Keys
3846
- Generating EC and RSA keypairs
47+
* Post Quantum Cryptography support has been added.
48+
[Dilithium](https://www.pq-crystals.org/dilithium/)
49+
is used to offer signing and verification functionality. Please note that the API is
50+
provisional as there is currently no OpenSSL support for Dilithium. This library intends to
51+
switch to an OpenSSL implementation once available. As a consequence of this, the interfaces
52+
around Dilithium are subject to future changes. We support dilithium for experimentation and
53+
getting early hands-on experience but we discourage using it as it's not yet standardized.
54+
This functionality is disabled by default. See [README](README.md) to get more
55+
information on how to enable it.
3956

4057
# Release 4.1.1
4158

README.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,46 @@ build/$ ctest . --output-on-failure
5858

5959
The bci.config file is used by our internal validation environment, please just ignore it.
6060

61+
### Build with dilithium support
62+
63+
Dilithium is an **optional** feature provided by MoCOCrW.
64+
65+
This feature depends on [reference implementation of the Dilithium signature scheme](https://github.com/pq-crystals/dilithium/)
66+
since OpenSSL still doesn't have a support for Dilithium. The following adaptations are necessary
67+
in order to successfully compile MoCOCrW with the Dilithium feature .
68+
69+
#### Dilithium Adaptions
70+
71+
It is not possible to take the bare Dilithium implementation. The Dilithium implementation was
72+
adapted with the following PRs: [PR#1](https://github.com/pq-crystals/dilithium/pull/68)
73+
[PR#2](https://github.com/pq-crystals/dilithium/pull/69). These PRs need to be pulled and used
74+
to build and install libdilithium locally before trying to use it with MoCOCrW.
75+
76+
Then, to use the Dilithium feature, replace the CMake invocation with:
77+
```
78+
build/$ cmake -DBUILD_TESTING=True -DDILITHIUM_ENABLED=ON ..
79+
```
80+
81+
### Build with HSM support
82+
83+
HSM support is an **optional** feature for MoCOCrW. This allows for loading and storing keys on HSM
84+
and using those keys in various cryptographic algorithms without having keys in memory. To build
85+
MoCOCrW with HSM support, a patched version of libp11 is necessary since upstream libp11 does not
86+
support key generation through OpenSSL's ENGINE API.
87+
88+
[libp11 release 0.4.12](https://github.com/OpenSC/libp11/releases/tag/libp11-0.4.12) patched with
89+
[patch for key generation](https://github.com/bmwcarit/MoCOCrW/blob/openssl1.1/dockerfiles/feature-support/hsm-patches/0001-Introduce-generic-keypair-generation-interface-and-e.patch) is required for building MoCOCrW with
90+
HSM feature enabled. To build and install patched libp11, check out [how it's done](https://github.com/bmwcarit/MoCOCrW/blob/openssl1.1/dockerfiles/feature-support/Dockerfile#L31) in our CI or [official instructions by libp11](https://github.com/OpenSC/libp11/blob/master/INSTALL.md).
91+
92+
Then, to use the HSM feature, replace the CMake invocation with:
93+
```
94+
build/$ cmake -DBUILD_TESTING=True -DHSM_ENABLED=ON ..
95+
```
96+
6197
## Installation / Usage / Packaging
6298

63-
MoCOCrW is prepared to be installed or packaged into an SDK. It also provides a cmake
64-
exported target that you can use in your projects. A minimal example how to use this cmake
99+
MoCOCrW is prepared to be installed or packaged into an SDK. It also provides a CMake
100+
exported target that you can use in your projects. A minimal example how to use this CMake
65101
integration can be found in `tests/sdk`. This can also be used as an integration test if you
66102
want to ship MoCOCrW with an SDK.
67103

0 commit comments

Comments
 (0)