364 Commits

Author SHA1 Message Date
Basil Hess
dd942d4344
Re-enable all ACVP tests [full tests] (#2283)
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
2025-09-24 09:14:53 -04:00
Douglas Stebila
bb60b41f56
Fix typo in test_kem (#2281)
Fixes #2280

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
2025-09-23 08:40:55 -04:00
Bruce
f629296e28
Remove Dilithium (#2275)
* Removed upstream `name: pqcrystals-dilithium` and signature `name: dilithium` from `copy_from_upstream.yml`.
Removed everything under `src/sig/dilithium`
Re-run `copy_from_upstream.py -d copy`, which produced downstream changes to various build files.

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* remove Dilithium entries from kats.json

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* remove Dilithium entries from constant_time tests

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Removed dilithium.yml and dilithium.md. Re-run copy_from_upstream.py, which also updated README.md and cbom.json

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Removed Dilithium from FUZZING.md

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* removed license information about pqclean Dilithium and pqcrystals-dilithium from README.md. README.md still mentions Dilithium but only to say that it has been excluded

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Upgraded CONFIGURE.md minimal build example to ML-KEM-768 and ML-DSA-44

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Upgraded C++ sig linking test to ML-DSA-44; also added option to make the test fail hard if the algorithm is not enabled

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* remove Dilithium from GitHub action workflows

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* removed Dilithium from zephyr configuration and examples

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Removed scripts/copy_from_upstream/patches/pqclean-dilithium-arm-randomized-signing.patch

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Removed dilithium from upstream.name==pqclean.ignore

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Removed orphaned patches

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

---------

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>
2025-09-22 20:52:14 -04:00
Bruce
1ae1b92302
initialize length_encaps_seed for NTRU implementations (#2266)
* initialize length_encaps_seed for NTRU implementations

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* Only allocate for keypair seed and encaps seed when derandomized

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* format test_kem.c according to astyle

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

* only call memcmp on keypair_seed and encaps_seed if derand

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>

---------

Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>
2025-09-15 15:53:48 -04:00
Saito Masataka
59bf831b47
Add NTRU back (#2176)
This commit includes following changes:
* Revert "Removed NTRU. (#1335)"
* Replace the uses of malloc with OQS_MEM_malloc
* Add a derandomized keypair function
* Add "all" entries of NTRU algorithms to the KATs file
* Fix reflecting the removal of NTRU from PQClean
* Update NTRU documents with the latest manners
* Change the CODEOWNERS of NTRU KEM

Signed-off-by: Saito Masataka <saitomst@intellilink.co.jp>
2025-09-09 17:10:28 -04:00
Rodrigo Martín
c62031ee75
Include DeriveEncapsulation functionality (Issue #2135) (#2221)
* Include 'encaps_derand' functionality

Signed-off-by: RodriM11 <62776780+RodriM11@users.noreply.github.com>

* Add changes pertaining to upstream copy

Signed-off-by: RodriM11 <62776780+RodriM11@users.noreply.github.com>

* Add co-author

Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: RodriM11 <62776780+RodriM11@users.noreply.github.com>

* Fix formatting

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Modify 'vectors_kem.c' to employ '_derand' API

Signed-off-by: Rodrigo Martin Sánchez-Ledesma <rmsanchezledesma@indra.es>

---------

Signed-off-by: RodriM11 <62776780+RodriM11@users.noreply.github.com>
Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
Signed-off-by: Rodrigo Martin Sánchez-Ledesma <rmsanchezledesma@indra.es>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
Co-authored-by: Rodrigo Martin Sánchez-Ledesma <rmsanchezledesma@indra.es>
2025-08-27 10:05:41 -04:00
h2parson
cbffa331d5
SLH-DSA ACVP tests (#2237)
* apply slh acvp branch

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* remove openssl/bio.h include

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix windows __attribute__ issue

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* Update tests/vectors_sig.c [skip ci]

Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>

---------

Signed-off-by: h2parson <h2parson@uwaterloo.ca>
Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
2025-08-27 09:43:57 -04:00
matlimatli
5f9736304f
Avoid invalid compiler options for MSVC (#2239)
Fixes #2238, Fixes #2177

Signed-off-by: Mattias Lindblad <matlin@gmail.com>
2025-08-19 08:26:13 -04:00
sukrucildirr
2dc4afc2cf
chore: fix typos across codebase (#2244)
* Update PROCEDURES.md

Signed-off-by: sukrucildirr <sukrucildirr@gmail.com>

* Update FUZZING.md

Signed-off-by: sukrucildirr <sukrucildirr@gmail.com>

* Update vectors_kem.c

Signed-off-by: sukrucildirr <sukrucildirr@gmail.com>

* Update ossl_functions.h

Signed-off-by: sukrucildirr <sukrucildirr@gmail.com>

---------

Signed-off-by: sukrucildirr <sukrucildirr@gmail.com>
2025-08-18 10:19:28 -04:00
h2parson
9e964cad5b
Integrate SLH-DSA-C Library (#2175)
* copy from slhdsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* integrate with copy from upstream

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* explicitly list slhdsa files to include and push generated code

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* format code script

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add to requirements.in

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix code conventions

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* copy from upstream changes

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add chdir to copy from slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* modify template

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* generate requirements.txt

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* modify requirments in workflows

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* format

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* a

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* sort filenames in cmake file generation for slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add newline at end of header file

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add whitespace and fix alg info tests

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* update docs with copy from upstream

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add whitespace to src files

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* initialize ctx in slh

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* explicitly set little endian for windows x86

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* temporarily disable ctx signing for slh tests

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* disable kats until hashes available for slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix issues in test sig mem

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* temporarily add namespaces so that slh dsa will not break test namespace

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* updates

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* formatted file

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* align jinja template to astyle

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* change addrnd size

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* copy from slhdsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* integrate with copy from upstream

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* explicitly list slhdsa files to include and push generated code

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* format code script

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add to requirements.in

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix code conventions

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* copy from upstream changes

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add chdir to copy from slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* modify template

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* generate requirements.txt

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* modify requirments in workflows

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* format

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* a

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* sort filenames in cmake file generation for slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add newline at end of header file

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add whitespace and fix alg info tests

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* update docs with copy from upstream

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* add whitespace to src files

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* initialize ctx in slh

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* explicitly set little endian for windows x86

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* temporarily disable ctx signing for slh tests

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* disable kats until hashes available for slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix issues in test sig mem

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* temporarily add namespaces so that slh dsa will not break test namespace

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* updates

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* formatted file

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* align jinja template to astyle

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* change addrnd size

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix std algs filtering issue

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* modifying windows amd toolchain file to fix endianness issue

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* disable leak testing on slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* disable slh dsa for arm emulated linux and zephyr tests

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix zephyr test skip logic

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix upstream issue with prehash naming and add variant specific nist levels

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* automatically update slh dsa yml file

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* get slh dsa md file generation working

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix naming in slh wrapper files

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* minor changes from review

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* separate slh dsa jobs from stfl sigs

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* separate slhdsa from sig stfl tests on mac and windows

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* fix macos yml format

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* modify zephyr timeout

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* re-enable some tests for slh dsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* separate leak tests

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* allow algorithm family level enablement and reconfigure slhdsa CI jobs

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* move slh dsa address sanitizer to extended tests and extend time limit to 90 minutes

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

* remove package deb from CI job, remove auto gen kat sig for slhdsa, add prime ctx step for sig testing slhdsa

Signed-off-by: h2parson <h2parson@uwaterloo.ca>

---------

Signed-off-by: h2parson <h2parson@uwaterloo.ca>
2025-08-13 15:41:47 -04:00
Abhinav Saxena
d39268b204
update ACVP to 1.1.0.40 (#2172)
Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>
2025-07-14 20:54:05 -04:00
Marcel Cornu
8f926065eb
Add AVX512VL-Optimized SHA3/SHAKE Implementations (#2167)
* Add SHA3-256/384/512 and SHAKE128/256 AVX512VL implementations

Co-authored-by: Tomasz Kantecki <tomasz.kantecki@intel.com>
Co-authored-by: Erdinc Ozturk <erdinc.ozturk@intel.com>
Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>
Signed-off-by: Tomasz Kantecki <tomasz.kantecki@intel.com>

* AVX512VL SHA3 is added as an extension of XKCP implementation

Co-authored-by: Marcel Cornu <marcel.d.cornu@intel.com>
Signed-off-by: Tomasz Kantecki <tomasz.kantecki@intel.com>
Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>

* Add SHA3-384 tests

Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>

* Update namespace test to include SHA3

Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>

* Release SHA3 context after triggering dispatcher

Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>

* Add linux CI for OQS_USE_SHA3_AVX512VL=OFF config

Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>

* Add AVX512 emulation to linux CI

Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>

---------

Signed-off-by: Marcel Cornu <marcel.d.cornu@intel.com>
Signed-off-by: Tomasz Kantecki <tomasz.kantecki@intel.com>
Co-authored-by: Tomasz Kantecki <tomasz.kantecki@intel.com>
Co-authored-by: Erdinc Ozturk <erdinc.ozturk@intel.com>
2025-06-20 13:37:32 -04:00
Aiden Fox Ivey
47b8fdd404
Adding code coverage (#2148)
* First stab at adding coverage tests

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Install dependencies for coveralls action

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Integrate code coverage into CI

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Properly parallelize

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Refine test coverage

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Ignore unused exclude path error

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Update exclude path

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Fix Markdown formatting

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Pin dependencies

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Update workflow badge path

Signed-off-by: Aiden Fox Ivey <aiden@aidenfoxivey.com>

* Fix path in CI.md

Signed-off-by: Aiden Fox Ivey <aiden@aidenfoxivey.com>

* Remove unnecessary call to install curl

Signed-off-by: Aiden Fox Ivey <aiden@aidenfoxivey.com>

---------

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Aiden Fox Ivey <aiden@aidenfoxivey.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2025-06-19 14:45:44 -04:00
Nathaniel Brough
8d9cfd7f33
test: Add basic kem fuzz testing (#2133)
Signed-off-by: Nathaniel Brough <nathaniel.brough@gmail.com>
2025-06-12 10:03:59 -04:00
Matthias J. Kannwischer
708b1052d5
Adjust constan-time test exception for mlkem-native [extended tests] (#2162)
The constant-time tests have been failing for mlkem-native as check_sk changed it's name and is no no longer recognized as an exception.
This function processes exclusively public data in the secret key and it's, hence, okay to branch both inside the function and depending on the return value.

This commit renames the function in the constant_time exceptions file.

Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu>
2025-06-10 08:49:19 -04:00
Sadiq Hussain M
a47d8926c9
tests: Check OQS_STATUS of RNG and fstore functions (#2153) 2025-06-06 13:26:31 -04:00
h2parson
f06ade9406
Wycheproof (#2145)
* added wycheproof vectors for mlkem

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* astyle formatting

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* add license and remove unused vars

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* random_bytes_free

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* remove unused rc

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* add assert

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* initialize variables before branching

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* fix dead code warning

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* explicit json encoding and helpers run subprocess addedd

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* styling

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* fixing dead code and linux issues

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>

* Skip failing CI test (#2157)

* Skip failing CI test

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Fix typo

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

---------

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

---------

Signed-off-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>
Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
Co-authored-by: Hayden Parsons <h2parson@eduroam-campus-10-36-104-59.campus-dynamic.uwaterloo.ca>
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
2025-06-05 19:47:02 -04:00
Sadiq Hussain M
9aa76bc130
tests: Remove unused variables (#2152)
signed_msg and signed_msg_len aren't used as
output parameters anywhere.
Hence, remove their occurrences.

Signed-off-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
Co-authored-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
2025-06-05 09:00:37 -04:00
Sadiq Hussain M
bf14f5fce2
tests: Use secure free for secret key objects (#2149)
Use OQS_MEM_secure_free() instead of
OQS_MEM_insecure_free() for secret key objects.

Signed-off-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
Co-authored-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
2025-06-05 09:00:20 -04:00
Sadiq Hussain M
894547b15c
Check for NULL dereference before using secure free (#2151)
* Check for NULL dereference before using secure free

Signed-off-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>

* Skip failing CI test (#2157)

* Skip failing CI test

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Fix typo

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

---------

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

---------

Signed-off-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
Co-authored-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
2025-06-04 16:18:45 -04:00
Sadiq Hussain M
65ed00c2f1
Use OQS_MEM_cleanse() instead of memset() (#2158)
* Use OQS_MEM_cleanse() instead of memset()

This is needed for secret objects as memset
maybe optimized out by the compiler.

Signed-off-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>

* Skip failing CI test (#2157)

* Skip failing CI test

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Fix typo

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

---------

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

---------

Signed-off-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
Co-authored-by: Hussain1811 <Sadiq.Hussain.M@ibm.com>
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
2025-06-04 16:18:36 -04:00
Abhinav Saxena
b75bfb8c56
Update ACVP vectors to latest release (#2131)
Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>
2025-05-02 21:07:50 -04:00
Jan Adriaan Leegwater
429c98ee7e
Integrate SNOVA into liboqs (#2109)
* Integrate SNOVA into liboqs

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Remove SNOVA_66_15_3

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Add ARM NEON

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Update, tighter constant_time passes and issues [full tests] [extended tests]

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Update remote commit

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Review comments SWilson4 [full tests] [extended tests]

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Fix newline at end of file [full tests] [extended tests]

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Restrict zephyr algorithms to the low stack ones. [full tests] [extended tests]

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Disable SNOVA_24_5_5 in zephyr test [full tests] [extended tests]

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Fix typos in KAT [full tests] [extended tests]

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

* Use Constant Time version for sign [full tests] [extended tests]

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>

---------

Signed-off-by: Jan Adriaan Leegwater <info@vacuas.nl>
2025-05-01 11:41:57 -04:00
Spencer Wilson
3ca1a36909
Add DeriveKeyPair API (#2070)
* Initial derive keypair commit

Signed-off-by: Eddy Kim <Eddy.M.Kim@outlook.com>
Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Add pqcrystals-ml_kem_ipd.patch

Signed-off-by: Eddy Kim <Eddy.M.Kim@outlook.com>
Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Fix encaps key in scheme and revert whitespace changes

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Hopefully corrected patch file

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Corrected missing derand in kem_scheme

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Fix indentation

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Run copy_from_upstream

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

derand testing tentative changes

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Add missing function declarations

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Add template for avx2 derand functions

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Run copy_from_upstream

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

WIP: Add changes for coin length

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>

Update patch to include coin lengths

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Bootstrap

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Conditional copy

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Run copy_from_upstream

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Separate coins variable into two distinct variables

Signed-off-by: Eddy Kim <Eddy.M.Kim@outlook.com>
Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Add derand fixes

- Add support for BIKE, FrodoKEM, sntrup
- Add hooks for testing
- Add missing kem comment to documentation
- Don't run decaps() in test_kem_derand if encaps_derand() fails
- Add markdown documentation changes

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

WIP trying to fix build errors

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Fix remaining build issues

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Resolve unused parameter issues for BIKE

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Resolve unused paramter issues for FrodoKEM

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Fix whitespace inconsistency

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Fix whitepace issue

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Insert unused attributes

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Void all unused parameters

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Use tab instead of spaces in kem_scheme

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Run copy_from_upstream

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Fix kem_derand python tests

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

Initialize coins in test_kem_derand

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Update patch to work with mlkem-native

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Update docs generation and templating

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Run copy_from_upstream [full tests] [extended tests]

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Don't call randombytes on zero-length arrays

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Run format script

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Remove encaps_derand support

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Run copy_from_upstream

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Skip encaps/decaps in test_kem_derand

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Refactor test code

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* s/coins/seed/g

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Improve output

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Improve formatting [full tests] [extended tests]

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

---------

Signed-off-by: Eddy Kim <e84kim@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Co-authored-by: Eddy Kim <Eddy.M.Kim@outlook.com>
2025-03-18 14:40:07 -04:00
Marco Gianvecchio
8ee6039c74
Add bitflip test for trivial SUF-CMA forgeries (#2090)
* add bitflip test to test_sig.c
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* format code
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* - add sig->suf_cma
- add command-line argument to test_sig.c (the number of bitflips)
- update CROSS upstream to SUF-CMA
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* %d to %ld for size_t bitflips

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* cast argument bitflips to size_t
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* replace atoi() with strtol()
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* cast bit_index to %llu

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* update bitflip tests:
- revert CROSS to EUF-CMA
- add test_bitflip_message
- exclude stateful signatures for now
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* remove bitflips_as_str in printf
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* test_bitflip as a single function, add support for stateful signatures
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* add OQS_TEST_CT_DECLASSIFY after test_bitflip_stfl
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* [extended tests]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* more OQS_TEST_CT_DECLASSIFY [extended tests]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* patch dilithium to add suf-cma
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* run copy_from_upstream.py
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* SUF-CMA in dilithium docs, run copy_from_upstream.py
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* correct sizeof in OQS_randombytes call (thank you @SWilson4!)
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* factor bitflip testing functions out into test_helpers.c
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* --allow-multiple-definition for Windows .dll in test_kem_mem
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* --allow-multiple-definition for Windows .dll in test_sig and test_sig_stfl
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

---------

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>
2025-03-14 11:53:05 -04:00
Matthias J. Kannwischer
8ed50816c1
Add UOV (#2094)
* update_docs_from_yaml.py: Do not rely on SPHINCS being last

Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu>

* allow pqov namespace

Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu>

* add uov implementations [full tests] [extended tests]

Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu>

* Typo [skip ci]

Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>

* add UOV to NIST_SIG_ONRAMP

Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu>

---------

Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu>
Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
Co-authored-by: Thing-han, Lim <15379156+potsrevennil@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
Co-authored-by: Basil Hess <bhe@zurich.ibm.com>
2025-03-10 10:33:27 -04:00
Basil Hess
fa5f792906
Update MAYO to NIST round 2 (#2095)
* Update MAYO to NIST round 2 [full tests] [extended tests] [trigger downstream]

Signed-off-by: Basil Hess <bhe@zurich.ibm.com>

* Update mayo yml with neon

Signed-off-by: Basil Hess <bhe@zurich.ibm.com>

---------

Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
2025-03-07 18:31:41 +01:00
Abhinav Saxena
38725ba063
Add checks for ML-KEM keys (#2009)
* add checks for ML-KEM keys

* add mod(3329) using barrett reduction

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>
2025-02-26 10:31:13 +01:00
Pablo Gutiérrez
c2a6559c22
Added alg_version details to test output (#2080)
* Added alg_version details as test output

Signed-off-by: Pablo Gutiérrez <pablogf@uma.es>
2025-02-25 17:21:11 +01:00
Marco Gianvecchio
77917043c4
Update CROSS to version 2.0 (#2078)
* Update CROSS to version 2.0
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* implementations-switch-on-runtime-cpu-features: false in CROSS [skip ci]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* update KAT "all" for CROSS [extended tests]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* update cross.md [extended tests]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* correct call stack in the suppression file for CROSS [extended tests]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

---------

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>
2025-02-20 07:51:12 +01:00
Spencer Wilson
b80240c348
Update example files (#2071)
* Update example files to use ML-KEM and ML-DSA

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

* Call example_sig_stfl in test_cmdline.py

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>

---------

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2025-02-07 15:22:07 -05:00
Basil Hess
a554b36dd3
Import ML-KEM from mlkem-native/PQ code package (#2041)
* Integrate ML-KEM from mlkem-native [full tests] [extended tests]

---------

Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
2025-02-04 16:26:27 +01:00
Abhinav Saxena
4b34efeaec
Update ACVP vectors for KEM and DSA (#2051)
* add latest ACVP vector tests

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* minor script improvements

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* fix build issues

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* fix build issues

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* minor improvements

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* test file improvements

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

---------

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>
2025-01-29 14:11:47 -05:00
Iyán
51708b699e
Remove hardcoded build paths & modify basic workflow to build in random path (#2019)
* Remove hardcoded build paths

This fixes #2018 using `helpers.get_current_build_dir_name()`

Signed-off-by: Iyán Méndez Veiga <me@iyanmv.com>

* Use a random build path in the basic build test

Signed-off-by: Iyán Méndez Veiga <me@iyanmv.com>

---------

Signed-off-by: Iyán Méndez Veiga <me@iyanmv.com>
2024-12-13 17:08:35 -05:00
Abhinav Saxena
bbf1dbec29
Minor changes to ML_DSA ACVP tests (#2007)
* minor improvements to dsa acvp tests

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* check method for NULL before dereferencing

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* change ctxlen to 256

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

---------

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>
2024-12-09 20:49:38 -05:00
Douglas Stebila
3224d553ef
Add defines for OQS version components (#2000)
* Add defines for OQS version components

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Set OQS_VERSION_TEXT based on new OQS_VERSION_* macros

Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>
Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Make OQS_VERSION_PRE_RELEASE optionally defined

Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>
Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Add documentation about OQS_VERSION macros

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>

* Clarify wording about definition of OQS_VERSION_PRE_RELEASE

Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>

---------

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
Signed-off-by: Douglas Stebila <dstebila@users.noreply.github.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-11-26 08:11:56 -05:00
Basil Hess
d9c214cc64
Add ML-DSA / FIPS 204 final (#1919)
* Pull ML-DSA from pq-crystals upstream.
* Removes ML-DSA-ipd
* Adds support for context strings to OQS SIG API.
* Adding _with_ctx_str APIs, templating
* Adds ACVP tests for ML-DSA
* export symbols for acvp tests (dynamic linking)
* remove IPD intermediate values
* adds flag for ctx support
* Update constant-time passes after line nubmer and function name changes
* Update KATs
* API with checks for signatures without ctx support
* Additional test for signatures with ctx
* Change alg_version to FIPS204
* Update ML-DSA security claim to SUF-CMA, according to FIPS204
* Update src/sig/sig.h
* Fix test_alg_info

---------
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-11-26 13:45:10 +01:00
Abhinav Saxena
507d03009c
Test Improvements for ML-KEM (#1947)
* test improvements for ML-KEM

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* update length type from int to size_t

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* fix windows dll + compilation issues

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* fix windows tests for ACVP vectors

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* fix build failure in vector_kem

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* remove const qualifier from prng_op_stream

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* add macros instead of hardcoding & declasify values before use

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* add ML-KEM rejection tests in seperate function

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* add ciphertext corruption test for kem rejection

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

* add conditional compilation for ML-KEM tests

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>

---------

Signed-off-by: Abhinav Saxena <abhinav.saxena@thalesgroup.com>
2024-11-13 13:30:57 +01:00
Nathaniel Brough
35cc700fe5
Make random/functions determinisitic during fuzzing (#1974)
Signed-off-by: Nathaniel Brough <nathaniel.brough@gmail.com>
2024-11-03 10:33:25 -05:00
Nathaniel Brough
60af4a99e2
Adapt existing sig fuzz harness including more algorithms (#1955)
Signed-off-by: Nathaniel Brough <nathaniel.brough@gmail.com>
2024-11-01 14:05:04 -04:00
Norman Ashley
3c8bde1b08
Add new API to cleanup OpenSSL threads. (#1959)
* Add new API to clean up OpenSSL threads.

Signed-off-by: Norman Ashley <nashley@cisco.com>

* Updates per review comments.

Signed-off-by: Norman Ashley <nashley@cisco.com>

* Update format

Signed-off-by: Norman Ashley <nashley@cisco.com>

* Apply suggestions from code review

Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Norman Ashley <nashley@cisco.com>

---------

Signed-off-by: Norman Ashley <nashley@cisco.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-10-30 12:20:05 -04:00
Marc Stevens
90030a4ae4
Add benchmarking for stateful hash based schemes: speed_sig_stfl (#1952)
* Add speed_sig_stfl

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* Fix speed_sig_stfl.c: limit timing with max sig ops & provide required secure keystore with dummy keystore

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* Cleanup speed_sig_stfl.c

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* speed_sig_stfl: fix for LMS (secure store context must not be NULL), refresh key when out of sigs for sig benchmark

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* tests/speed_sig_stfl.c: astyle fix

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* tests/speed_sig_stfl.c: stfl sig benchmarks require intermittent resetting of secret key

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* speed_sig_stfl: add speed_sig_stfl to: README scripts/nogress.sh tests/test_speed.py

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* test_speed.py: limit testing of stfl sigs to parameters with 2^10 max sigs

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* scripts/nogress.sh: limit regression tests on stfl sigs to only algorithms with 2^10 max sigs

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* speed_sig_stfl.c: astyle fix

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

* speed_sig_stfl: 1) fix use-after-free bug. 2) Simply return success if keygen and sign are not enabled.

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>

---------

Signed-off-by: cr-marcstevens <github@marc-stevens.nl>
2024-10-22 09:16:56 -04:00
songlingatpan
1d92135e80
[#1823] replace malloc/calloc/strdup/free with openssl allocator (#1926)
* [#1823] replace malloc/calloc/strdup/free with openssl allocator

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* [#1823] update memory allocator for copy_from_upstream

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* [#1823] Use OpenSSL Memory Allocator for BIKE, FrodoKEM, and NTRUPrime

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* [#1823] Add Comments for Doxygen

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* include openssl/crypto.h and resolve conflict varible for ntru

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Add openssl version check to fix build error

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Fix build for OQS_DLOPEN_OPENSSL

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* remove OQS_MEM_free

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Add allocator check in tests/test_code_conventions.py

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Add IGNORE memory-check

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Delect checked allocation functions

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Revert back p_param to p for sntrup

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Add allocator check for '.c', '.h', '.fragment'

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Add NULL for previous checked allocation

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* Add fprintf error for abort cases

Signed-off-by: Songling Han <shan@paloaltonetworks.com>

* use OQS_EXIT_IF_NULLPTR for checked malloc cases

Signed-off-by: Songling Han <shan@paloaltonetworks.com>


---------

Signed-off-by: Songling Han <shan@paloaltonetworks.com>
2024-10-19 07:21:51 +02:00
Nathaniel Brough
0310631c5f
Add a basic fuzz testing harness for Dilithium2 (#1905)
* Add a basic fuzz testing harness for dilithium2

Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Nathaniel Brough <nathaniel.brough@gmail.com>

* Add basic build checks for fuzz tests

Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Nathaniel Brough <nathaniel.brough@gmail.com>

---------

Signed-off-by: Nathaniel Brough <nathaniel.brough@gmail.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-10-18 13:16:23 -04:00
Iyán
a5528768a1
Remove hardcoded build patch from test script (#1938)
If a user has passed a custom build path to cmake, and then calls for
example `ninja -C <custom_build_path> run_tests`, the script
test_acvp_vectors.py fails due to having "build" harcoded in the calls.

Instead, let's use `helpers.get_current_build_dir_name()` to get the build
path and use that instead. This is already done in other scripts (e.g.,
test_binary.py)

Signed-off-by: Iyán Méndez Veiga <me@iyanmv.com>
2024-09-27 15:10:33 -04:00
Spencer Wilson
b37c937a64
Refactor liboqs CI and update Ubuntu images (#1909)
* Refactor liboqs CI to utilize reusable workflows
* Add CI.md documentation file
* Update all Focal jobs to Noble (the latest Ubuntu LTS)
* Minor fixes to address issues related to the update (CT files / syntax / static analysis)

Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-09-09 10:43:59 -04:00
Marco Gianvecchio
d93a431aaf
Add CROSS (#1881)
* add CROSS upstream

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* add KATs

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* add docs

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* add Zephyr config

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* run copy_from_upstream.py

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* fix: counter i in generate_merkle_proof shadows previous declaration

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* "claimed-security" is BUFF (instead of EUF-CMA)

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* add CROSS to NIST_SIG_ONRAMP

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* "claimed-security" is set to EUF-CMA by liboqs

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* don't use threads for CROSS variants with large stack usage

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* int defines in api.h don't need to be "L"

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* added auxiliary-submitters

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* fixed indentation
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* disabled variants with large stack usage in zephyr

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* added contributors
[trigger downstream]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* updated codeowners and contributors
[trigger downstream]
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

* moved test from ubuntu-focal-clang15 to ubuntu-jammy-clang14
Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>

---------

Signed-off-by: rtjk <47841774+rtjk@users.noreply.github.com>
Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>
Co-authored-by: Pravek Sharma <sharmapravek@gmail.com>
2024-09-03 15:45:37 -04:00
Basil Hess
dc4deaa4e1
Add ML-KEM / FIPS203 final (#1899)
* Add ML-KEM
* Add ACVP vectors for ML-KEM
* Removes ML-KEM-ipd

---------
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
2024-08-27 18:57:04 +02:00
Pravek Sharma
e520ec1c38
Integrate Kyber from libjade (#1745)
* Add copy_from_libjade.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Modify copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Add patches for libjade Kyber code

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update alg_support.cmake templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update KEM famiy templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Correct copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Modify copy_from_upstream.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update KEM family templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix KEM family templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix KEM family templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update templates for build system files

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update build system files

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix add_enable_by_alg_conditional.libjade

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Run copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update KEM family templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update KEM templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update KEM templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update copy_from_upstream.yml with libjade implementation info

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update KEM templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Edit KEM templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Run copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix KEM temlates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Run copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Add libjade_shim

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Add jasmin/libjade namespaces to test_binary.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update testing

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Allow manually triggering CI tests

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Change container for upstreamcheck in unix.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Edit unix.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Edit unix.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Restrict copying of code from libjade repo to relevant files

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Remove irrelevant libjade code

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Remove redundant KEM templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update KEM template to accomodate new dir structure

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Debug: tweak unix.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Re-build libjade with jasmin version used in CI

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Debug: undo unix.yml tweak

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Allow MSVC to ignore libjade_shims

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Simplify name scheme for libjade code

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update alg docs, libjade code name scheme, and license

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update copy_from_upstream documentation

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix copy_from_upstream.py and simply libjade code name scheme

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update alg docs and CBOM

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Correct alg doc generation

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Generate CBOM with unique bom-ref

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Cleanup unix.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix patches to include api.c; fix kem templates

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix kyber patch

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* turn off weekly constant time tests for libjade implementations

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* update documentation

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* change upstream to stable libjade release

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix kyber documentation

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix kyber documentation

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix kem template again

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix weekly.yml and unix.yml to test libjade code

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* rename libjade asm files from *.s to *.S

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* end libjade_kyber*/api.c files with newline

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix kem template to prevent duplicate symbols in object files

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix indentation in weekly.yml

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* skip testing libjade on macos-14 in CI

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* use release tag/branch with libjade upstream url instead of commit

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix build error when OQS_ENABLE_LIBJADE_KEM_ALG=OFF

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* initialize LIBJADE_RANDOMBYTES when OQS_LIBJADE_BUILD=OFF

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* remove redundant comment

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix comment typo

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* make string explicit when comparing with variable in cmake

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* add libjade kyber licensing to README.md

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* remove reference to oldpqclean_kyber* code from libjade if branchin kem_kyber_*.c

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update CMakeLists.txt

Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* track jasminc version in copy_from_libjade.yml; check jasminc version in copy_from_upstream.py

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* add OQS_LIBJADE_BUILD to build flags output

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* remove link from CONFIGURE.md

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Update libjade to dual license

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Patch gcc version for MacOS CI runs

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix doc generation

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* Fix libjade docs

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* fix license info in README.md

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

* update libjade_randombytes spdx-license

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>

---------

Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-08-18 12:02:37 -04:00
Spencer Wilson
fc2264d150
Fix overflow in example_sig_stfl (credit @wangweij) (#1887)
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2024-08-12 15:54:11 -04:00