1653 Commits

Author SHA1 Message Date
Michael Baentsch
2bb1d2584c
restrict Windows platform support documentation [skip ci] (#1762)
Signed-off-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
2024-04-23 17:53:27 +02:00
d0p1
edfed5f0b9
fix build shared lib on msys (#1758)
Signed-off-by: d0p1 <contact@d0p1.eu>
2024-04-23 11:37:34 -04:00
carson radtke
7b6d9f3326 add compile_commands.json to .gitignore
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>
2024-04-15 17:07:47 -07:00
Weijun Wang
6f0c46187c
remove "maximum" words for various length fields (#1747)
Signed-off-by: Weijun Wang <weijun.wang@oracle.com>
2024-04-09 10:13:13 -04:00
Eddy Kim
cfc41f7560
Refactor OpenSSL Implementation of SHA3 SHAKE to use new Squeeze API (#1694)
* 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>
2024-04-07 19:27:15 +02:00
matlimatli
701dea5d2a
Allow windows linking of test programs (#1751)
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>
2024-04-07 19:00:08 +02:00
Daiki Ueno
32afec8fcc
Add option to dynamically load libcrypto.so.* (#1603)
* 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>
2024-04-05 16:20:17 +02:00
PI
7a6df815bb
Document Fix (#1735)
Signed-off-by: PI <74706004+pi-314159@users.noreply.github.com>
2024-04-04 14:01:52 -04:00
Michael Baentsch
5ac9bcfb2f
switching to dev mode again (#1743)
* switching to dev mode again

* activating backwards compatible pip3 mode

Signed-off-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
2024-04-03 15:19:33 +02:00
Amir Ayupov
3dd478e157 [NFCI] Move Keccak rhotates tables to rodata
rhotates tables are placed to .text section which confuses tools such as
BOLT. Move them to rodata to unbreak and avoid polluting icache/iTLB
with data.

1. Update patch file using the steps in scripts/copy_from_xkcp/README
2. Apply the updated patch with scripts/copy_from_xkcp/package.sh

Sync with XKCP upstream: https://github.com/XKCP/XKCP/pull/137
Similar fix in OpenSSL: https://github.com/openssl/openssl/pull/21440
Redo of https://github.com/open-quantum-safe/liboqs/pull/1508

Signed-off-by: Amir Ayupov <aaupov@fb.com>
2024-04-02 10:49:03 -04:00
Douglas Stebila
36be57445d
0.10.0 release (#1734)
* 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>
0.10.0
2024-03-23 13:34:28 +01:00
Tobias Frauenschläger
d183ed3266 Minor update for the Zephyr port
* 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>
2024-03-15 11:26:37 -04:00
Spencer Wilson
1bc6d11ef4
Always build "internal" library as static (#1725)
* Always build oqs-internal library as static

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-03-13 10:56:00 +01:00
Michael Baentsch
d03535006c
improve algorithm documentation [skip ci] (#1721)
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-03-07 14:35:04 -05:00
Spencer Wilson
565ab5c5f1
Fix SPHINCS+ naming in CT json file [skip ci] (#1720) 2024-03-07 10:48:54 -05:00
Basil Hess
0961090529
Fix for alg_support.cmake (#1716)
* 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
2024-03-07 11:18:15 +01:00
Spencer Wilson
7e5dbaf2e8
Support Falcon PADDED format (#1710)
Additionally:
- re-enable Falcon-1024 in weekly KAT tests
- Update Falcon licence documentation
- Update deprecated CircleCI image
2024-03-06 12:02:43 -05:00
Michael Baentsch
bdce954010
fix documentation generation (#1715) 2024-03-04 15:11:27 +01:00
Michael Baentsch
9ede9e232b
remove references to unsupported openssh [skip ci] (#1713) 2024-03-04 08:59:12 +01:00
Tobias Frauenschläger
5690baebe4
Fix for the Zephyr CI tests (#1714)
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>
2024-03-01 09:40:08 -05:00
Jason Goertzen
890a6aa448
Update liboqs readme to point to oqs-provider instead of deprecated openssl1.1.1 fork [skip ci] (#1699)
This PR updates the OpenSSL link to point to oqs-provider now that OpenSSL1.1.1 is deprecated.

Co-authored-by: Martyrshot martyrshot@gmail.com <>
2024-02-27 17:42:58 +01:00
Spencer Wilson
c119f20f63
Move macOS CI tests to GitHub Actions; add M1 CI tests (#1709)
* Move all CircleCI macOS jobs to GitHub

* Unify macOS and Linux workflows so that both pend minimal tests

* Fix a build warning on macOS
2024-02-27 10:35:53 -05:00
Basil Hess
154ae5cc33
Small fixes after adding ML-* (#1702)
* - Fixes list_standardized_algs fragment
- Fixes fetch_values.sh script to (re-)generate ML-* vectors

* consider aliases in STD filter
2024-02-23 09:38:57 +01:00
Basil Hess
60adf53107
Add ML-DSA-ipd and ML-KEM-ipd & NIST supplied test vectors (#1626)
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]
2024-02-19 10:28:28 +01:00
Jason Goertzen
6b06e87255
update brew install instructions to use openssl@3 instead of openssl@1.1.1 [skip ci] (#1701) 2024-02-17 11:46:05 -06:00
Spencer Wilson
ac164b4084
Fix bug in cross-compilation for Windows; update CI (#1696) 2024-02-13 10:43:27 -05:00
Jolene Tan
f371848268
set(OQS_USE_PTHREADS OFF) on MinGW/Cygwin (#1695) 2024-02-12 17:15:02 +01:00
Michael Baentsch
3e34ed1854
properly document release support level [skip ci] (#1688) 2024-02-08 15:35:36 +01:00
Spencer Wilson
f468d212f2
Update Markdown from YAML (#1690) 2024-02-07 16:32:06 -05:00
Spencer Wilson
da3dab860d
Update SPHINCS+ "clean" suppression files (#1683) 2024-02-07 13:30:32 -05:00
Spencer Wilson
dea517016c
Update McEliece suppression files for generic config (#1677) 2024-02-07 13:27:07 -05:00
Spencer Wilson
f1f11b5a16
Rename weekly runs and skip Falcon-1024 (#1684) 2024-02-07 13:25:50 -05:00
Martyrshot martyrshot@gmail.com
61b5e8caef Fix link in GOVERNANCE.md 2024-02-06 10:32:10 -05:00
Spencer Wilson
64b7921e34
Trigger oqs-provider release tests on releases or as requested (#1654)
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]".
2024-02-05 09:54:50 -05:00
Spencer Wilson
3b103f8495
Discontinue AppVeyor CI testing (#1682) 2024-02-05 09:05:08 -05:00
Jolene Tan
670cefd429
set_available_cpu_extensions with pthread_once (#1671) 2024-02-01 13:35:50 +01:00
Jolene Tan
688bdb431f
find_package(Threads) regardless of BUILD_ONLY_LIB (#1653)
* find_package(Threads) regardless of BUILD_ONLY_LIB

* New macro OQS_USE_PTHREADS conditioned on embedded
2024-01-31 09:17:56 +01:00
Spencer Wilson
6bce0103a0
Update BIKE documentation to exclude x86 (#1679)
* Update BIKE documentation to exclude x86; clarify comments in
alg_support

* Update Markdown
2024-01-30 16:03:15 -05:00
Spencer Wilson
7c56bcb6ce
Test against all 100 KAT values (#1560)
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>
2024-01-30 16:01:46 -05:00
Spencer Wilson
f606d3d326
Fix memory sanitizer compile flag (#1680) 2024-01-30 16:00:00 -05:00
Douglas Stebila
2f4a25c8de Minor wording changes based on suggestions 2024-01-23 09:59:30 -05:00
Douglas Stebila
901cff8fd2 Update GOVERNANCE.md [skip ci]
Co-authored-by: Jason Goertzen <Martyrshot@gmail.com>
2024-01-23 09:59:30 -05:00
Michael Baentsch
0f245e76be Update GOVERNANCE.md
Co-authored-by: Jason Goertzen <Martyrshot@gmail.com>
2024-01-23 09:59:30 -05:00
Michael Baentsch
5fcc0def3e Update GOVERNANCE.md
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-01-23 09:59:30 -05:00
Douglas Stebila
7f67d9175b Some more language about contributors 2024-01-23 09:59:30 -05:00
Douglas Stebila
d7c03c328b Edits to governance document 2024-01-23 09:59:30 -05:00
Michael Baentsch
3f67c90e9f explicitly adding lazy consensus as primary governance principle 2024-01-23 09:59:30 -05:00
Michael Baentsch
ce26db233b first cut at governance file [skip ci] 2024-01-23 09:59:30 -05:00
Spencer Wilson
93c5d489c7 Remove reference to old BIKE variants from CONFIGURE.md [skip ci] 2024-01-22 15:25:42 -05:00
Spencer Wilson
cc453db4a6
Make internal API available to (only) test programs (#1667)
* 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
2024-01-22 09:03:35 -05:00