This is an extra provider for OpenSSL 3, with stuff that doesn't exist there for diverse reasons, ranging from having fallen so much out of favor that it isn't included even in OpenSSL's legacy provider, to stuff that is too experimental, or needs to mature further before inclusion in OpenSSL's official providers.
Essentially, if you really want to use some very old algorithm of some sort, or want to play on the bleeding edge, or are in a rush trying something new, chances are you'll find it here.
This provider as a whole is licensed with the Lesser GNU Public License (LGPL), 3.0 or later. Some individual files may be licensed with a different license, that are deemed compatible with the LGPL.
Please see the files themselves, or in some cases .reuse/dep5, to find out what license govern each of them in particular. Please see the LICENSES subdirectory to study the licenses themselves if they aren't in full in the files themselves.
The provider as a whole is documented in extra.md, which also holds further links to the documentation of included algorithms.
You are welcome to contribute to this project. Please see CONTRIBUTING.md.
To complete the source repository, all git submodules must be up to date too. The first time, they need to be initialized too, as follows:
git submodule update --init
The next time, --init
can be skipped.
Building this provider requires cmake and a building toolchain that it supports.
Simple configuration, for a system installation of OpenSSL 3:
cmake -S . -B _build
If you have OpenSSL 3 installed somewhere else, do the following
instead, with {path}
replaced with the directory of an OpenSSL 3
installation:
cmake -DCMAKE_PREFIX_PATH={path} -S . -B _build
To build, do this:
cmake --build _build
The result is _build/extra.so
or _build/extra.dll
.
Testing is done using ctest, like this:
(cd _build; ctest)
For more verbosity:
(cd _build; ctest -VV)