Skip to content
This repository was archived by the owner on Jan 8, 2025. It is now read-only.

Using liboqs algorithms not in the fork

xvzcf edited this page Jun 19, 2020 · 6 revisions

If an algorithm is provided by liboqs but has not been listed as being supported by OQS-OpenSSL 1.1.1, it could mean that the algorithm is unsupported: consult this wiki page for more information.

It could also mean that the algorithm simply hasn't been added to OQS-OpenSSL 1.1.1 yet. In that case, it can be added through one of the two following methods:

oqsdefault

liboqs can be configured at compile-time to use any of its algorithms as the "default" algorithm. If OpenSSL 1.1.1 is told to use oqs_kem_default or oqs_sig_default, then it will respectively use whichever KEM or signature algorithm was set as the default in liboqs at compile time. To set the default algorithm:

  1. Follow the instructions to set OQS_KEM_DEFAULT and OQS_SIG_DEFAULT in liboqs and proceed to build the project.

  2. Recompile OpenSSL against the newly built liboqs as in the Quickstart section here

Code Generation

The oqs-template folder contains a mechanism by which the code to add a new key-exchange or digital signature algorithm is automatically generated and inserted at the appropriate locations in the OpenSSL code base.

If support for a new algorithm/variant is required, add the algorithm to oqs-template/generate.yml, following the conventions by which the other algorithms have been specified. Then, proceed to step 2 of this section.

If a signature algorithm variant that is disabled by default is to be enabled, simply change the enable value of that variant in oqs-template/generate.yml from false to true, keeping in mind that at most 64 variants can be enabled at a time. Then, proceed to step 2 of this section.

Clone this wiki locally