We set CMAKE_EXPORT_COMPILE_COMMANDS=ON so the compilation database is
automatically exported to the build directory. However, many language
servers expect this file to be in the project root directory, so a common
post-build step is to:
```shell
$ ln -s <build-directory>/compile_commands.json
```
This PR enables developers to do this without having to worry about
accidentally commiting a symlink file.
Signed-off-by: carson radtke <nosrac925@gmail.com>
* Refactor OQS OpenSSL SHA3 SHAKE to use new EVP_DigestSqueeze() #1539
* Add OpenSSL 3.3.0 test and conditional fix
* Update ref to use human readable commit tag
Signed-off-by: Eddy Kim <Eddy.M.Kim@outlook.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
The kat_kem and kat_sig programs could not be linked when building natively on windows. This was caused by multiple definitions of symbols. By using the /FORCE:MULTIPLE compiler option, this is allowed, similar in spirit to what was already used for cross-compiling to Windows.
Fixes#1749
Signed-off-by: Mattias Lindblad <matlin@gmail.com>
* sha2: Use EVP_MD_CTX_free instead of EVP_MD_CTX_destroy
According to the manual page, EVP_MD_CTX_destroy has been renamed to
EVP_MD_CTX_free in OpenSSL 1.1.0 and only provided as a compatibility
macro in later OpenSSL releases:
https://www.openssl.org/docs/man1.1.1/man3/EVP_MD_CTX_free.html
Signed-off-by: Daiki Ueno <dueno@redhat.com>
* ossl_helpers: Use pthread_once instead of CRYPTO_THREAD_run_once
Throughout the code base, liboqs uses pthread_once for one-shot
initialization and falls back to thread-unsafe code if it is not
supported nor enabled on the system. For consistency and to remove
additional dependency on OpenSSL, this switches the use of
CRYPTO_THREAD_run_once with that.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
* Make common algorithms pluggable
This allows applications to replace the implementation of common
cryptographic algorithms at runtime, by setting callback functions for
each operations with OQS_AES_set_callbacks, OQS_SHA2_set_callbacks,
OQS_SHA3_set_callbacks, and OQS_SHA3_x4_callbacks. Those functions
may be called once before OQS_init; otherwise the default
implementation will be used.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
* Add option to dynamically load libcrypto.so.*
This adds OQS_DLOPEN_OPENSSL build option to use OpenSSL through
dynamically loaded libcrypto.so.* with dlopen, instead of linking to
the library at build time.
That way the applications could use their favorite implementation of
common cryptographic primitives without pulling in the OpenSSL as a
hard dependency.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
* Add tests for OQS_*_set_callbacks
This adds tests that exercise OQS_*_set_callbacks by overriding one of
the function of each and ensuring the wrapper function is called.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
---------
Signed-off-by: Daiki Ueno <dueno@redhat.com>
* Bump version string, add release notes, dates, and update support level
Signed-off-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
---------
Signed-off-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Co-authored-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
* Make ML-KEM and ML-DSA user configurable using Kconfig
* Enable ML-KEM and ML-DA by default
* Disable Kyber and Dilithium Round 3 by default
Signed-off-by: Tobias Frauenschläger <t.frauenschlaeger@me.com>
* Ensure aliases are activated with cmake
* Updates alg_support fragments: ensure that dependencies (aliases and platform-specific code) are activated after applying filter_algs
* Adds bike_l5 to NIST_R4 algorithms
* add CI test for aliases
* remove ml_kem ipds from STD filter_algs
* decouple name and alias
* fixing vector tests
Create only a minimal Zephyr installation to run CI tests and increase timeout of the Signature test.
Signed-off-by: Tobias Frauenschläger <t.frauenschlaeger@me.com>
Pulls ML-DSA-ipd and ML-KEM-ipd
Adds test cases with NIST supplied test vectors for ML-DSA/ML-KEM
Adds aliases (ML-<name> are aliases of ML-<name>-ipd)
[trigger downstream]
Add CI functionality to trigger the oqs-provider release test workflow on `release.published` events.
The workflow will also be triggered manually on commits whose message ends in "[trigger downstream]".
Run full KAT tests weekly. All should pass except Falcon-1024, which is pending upstream changes.
---------
Co-authored-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
* Separate public and internal headers
* Add necessary #include statements in FrodoKem code
* Build oqs-internal library
* Link test programs with oqs-internal
* Update header file documentation
* Refactor test Makefile
* Move rand_nist to internal API only
* Delete nistseedexpander shim
* Remove internal headers from Doxyfile