95 Commits

Author SHA1 Message Date
Douglas Stebila
a7d698ca9c
Temporarily disable HQC (#2122)
* Temporarily disable HQC

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

* Add logic to disable algorithms by default

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

---------

Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
2025-04-11 05:47:21 -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
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
Steven I Reeves
6a16ac68b5
NVIDIA: Adding cuPQC as a backend for ML-KEM. (#2044)
* Adding cuPQC as a backend for ML-KEM.

Signed-off-by: Steven Reeves <sreeves@nvidia.com>

* Fixing transposition error that left out OQS_USE_CUPQC in CMake system.

Signed-off-by: Steven Reeves <sreeves@nvidia.com>

* Add CMake dependent options for cupqc. Fixed formatting in kem_ml_kem_####.c and kem/family/kem_scheme.c

Signed-off-by: Steven Reeves <sreeves@nvidia.com>

* Move cupqc_ml-kem source files to correctly named dir

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

* Stop piggybacking on pqcrystals-kyber-standard and move cupqc_ml-kem metadata to separate upstream repo

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

* Update licensing information

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

* Update PLATFORMS.md

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

* Fix kem_family cmakelists template

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

* Run copy_from_upsream.py and pull updated upstream

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

* Add cupqc build test to basic.yml

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

* Move cupqc build test from basic.yml to linux.yml

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

* Fix error in linux.yml

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

* fixup! Fix error in linux.yml

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

* Redo cupqc build check

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

* Supply default CUDA arch to cupqc-buildcheck configuration stage

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

* Specify CUDAXX in cupqc-buildcheck

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

* Make cuPQC_DIR explicit in cupqc-buildcheck

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

---------

Signed-off-by: Steven Reeves <sreeves@nvidia.com>
Signed-off-by: Pravek Sharma <sharmapravek@gmail.com>
Co-authored-by: Pravek Sharma <sharmapravek@gmail.com>
2025-01-27 18:17:05 -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
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
Basil Hess
4cc88845e8
Add MAYO signature scheme from NIST onramp (#1707)
Add MAYO signature scheme from NIST onramp, C and AVX2 versions
Add AES128CTR to common code

Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
2024-07-13 21:38:01 +02:00
Duc Tri Nguyen
51ddd33cc0
Add XMSS-SHAKE256_{10, 16, 20}_256 parameters (#1819)
* add XMSS-SHAKE256_*_256 parameters

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

* [trigger downstream]

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

---------

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>
2024-06-25 15:29:30 +00:00
Duc Tri Nguyen
e3f05cbfba
add XMSS-SHAKE256_*_192 parameters (#1818)
make server astyle happy

update xmss.yml

update algorithm list and README



clean up



[trigger downstream]

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>
2024-06-18 18:31:43 +00:00
Duc Tri Nguyen
5e3111617b
Add XMSS-SHA256_{10, 16, 20}_192 parameters (#1817)
* add XMSS-SHA2_*_192 parameters

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

make astyle happy

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

update xmss.md

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

update algorithm list

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

* [trigger downstream]

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

* format xmss.md

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

* [trigger downstream]

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>

---------

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>
2024-06-18 13:34:21 -04:00
Norman Ashley
971173ad82
Add Stateful Signature (XMSS and LMS) (#1650)
Add support for LMS and XMSS. Key generation and signing are disabled behind a feature flag labelled "hazardous experimental."

---------

Signed-off-by: Duc Tri Nguyen <dnguye69@gmu.edu>
Signed-off-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Signed-off-by: Norman Ashley <nashley@cisco.com>
Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca>
Co-authored-by: Duc Tri Nguyen <dnguye69@gmu.edu>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
Co-authored-by: Duc Nguyen <106774416+ducnguyen-sb@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
Co-authored-by: Duc Nguyen <ductri.nguyen@sandboxquantum.com>
Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
Co-authored-by: Jason Goertzen <133878263+jgoertzen-sb@users.noreply.github.com>
2024-06-05 15:59:40 -04: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
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
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
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
aeac3a441d
Pull new HQC implementation from upstream (#1585)
* Update Sphincs+ PQClean patch

* Don't apply PQClean Dilithium and Kyber patches

* Run copy_from_upstream; don't apply Dilithium and Kyber changes

* Run HQC KATs with custom PRNG

* Satisfy astyle

* Add licence for common code

* Fix CI build errors

* Update HQC version, OQS version, and SOVERSION

* Move HQC PRNG into test file

* Satisfy astyle

* Fix SHA3 link error

* Reset HQC issues/passes

* fixup! Fix SHA3 link error

* fix kat_kem linkage to make HQC PR pass CI (#1601)

* fix kat_kem linkage

* remove armhf CI support

* Revert "remove armhf CI support"

This reverts commit af759bbf743bb3ecc2e7315cf10c1785e93bcc05.

---------

Co-authored-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
2023-11-06 16:40:50 -05:00
Spencer Wilson
f761b06c3d
Pull Neon implementation of Falcon from PQClean (#1547)
Pull aarch64 implementation of Falcon from PQClean

---------

Co-authored-by: Duc Nguyen <ductri.nguyen@sandboxquantum.com>
2023-09-13 08:59:11 -04:00
Pravek Sharma
0b64ca3c91
Update Classic McEliece (#1470)
* Update Classic McEliece

* Run copy_from_upstream.py

* Change crypto_declassify.h license

* Remove old McEliece vec/avx directories

* Add add_compile_options(-Wno-language-extension-token) to comipler_opts.cmake

* Fix CI errors. Reduce McEliece optimisation from -03 to -01. Patch PQClean McEliece.

* Update liboqs version number. Fix comments.

* Increment SOVERSION.

* Update Classic McEliece advisories. Replace

* Update Classic McEliece documentation YAML. Update KEM CMakeLists Jinja template.
2023-07-17 09:43:45 -04:00
Michael Baentsch
6e1f49aa48
Patch AVX2 support: No Win for Sphincs+ (#1478) 2023-05-20 12:38:14 -04:00
Goutam Tamvada
4d10a58abc
Renamed sphincs-sha256-X to sphincs-sha2-X and sphincs-shake256-X to sphincs-shake-X. (#1467)
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2023-05-17 13:12:03 -04:00
Douglas Stebila
fd1b89724a
Update SPHINCS+ (#1420)
* Switch to new PQClean commit for SPHINCS+ and remove old patch file

* Improve "compilability" on Apple M1 (ARM) (#1421)

* correct ARM SHA3 extension addition

* correct compile option for ARM SHA

* correct SHA3 enablement

* Remove SPHINCS+ robust and Haraka variants

* Fix SHA2 block sizes in OpenSSL wrapper

* enable Keccak for Sphincs even if OpenSSL shall provide SHA3

* properly handle xkcp enablement if only specific algorithms are selected

* correct conditional setting

* re-enable XKCP for other platforms

* Windows support

* alternate pqcrystals-AES removal

---------

Co-authored-by: Michael Baentsch <57787676+baentsch@users.noreply.github.com>
2023-05-16 10:54:28 -04:00
Michael Baentsch
9f912c957b
disable OpenSSL if neither AES,SHA2, or SHA3 are OSSL-provided (#1453) 2023-05-12 06:53:06 +02:00
Thom Wiggers
ec5c3be1ca
Update Falcon implementation (#1395)
* Update Falcon implementation

* Update license and upstream documentation

* Update Falcon constant-time suppressions

* Whitespace tweak from linter [skip ci]

* Update Falcon spec version [skip ci]

---------

Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2023-03-01 11:03:38 -05:00
Michael Baentsch
f96d9c2fff
Revert "Update Falcon to 20230207 (PQClean commit 96dfee95cc56207d1ec5e3a2df306d6614ad7c6c) (#1386)" (#1392)
This reverts commit 40b01fdbb270f8614fde30e65d30e9da18c02393.
2023-02-17 07:43:26 +01:00
Douglas Stebila
40b01fdbb2
Update Falcon to 20230207 (PQClean commit 96dfee95cc56207d1ec5e3a2df306d6614ad7c6c) (#1386)
Fixes #1315
2023-02-10 10:58:42 -05:00
dkostic
a1bdce9894
BIKE Round-4 update (#1369)
* BIKE Round-4 update

* Export BIKE symbols

---------

Co-authored-by: dkostic <dkostic@amazon.com>
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
2023-02-08 06:54:30 +01:00
Goutam Tamvada
924ea88cb0
Updated PQClean commit in copy_from_upstream.yml (#1359) 2023-01-16 11:06:08 -05:00
Michael Baentsch
fe3cb02cb1
NIST std algs list selection enablement (#1355)
* std/r4/all algs enablement

* Switch example to use Kyber-768.

* std algs as option only

Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2023-01-14 10:01:29 +01:00
Michael Baentsch
cdf709864f
Revert "Enable algorithm filtering (#1333)" (#1351)
This reverts commit 9ba752ea9b0b4db375e21d2b27a16ed1de30e2be.
2023-01-11 09:05:49 -05:00
Michael Baentsch
9ba752ea9b
Enable algorithm filtering (#1333)
* std/r4/all algs enablement

* add documentation

* make doxygen happy

* Revert "make doxygen happy"

This reverts commit 9aedf2a7e651e0a686b2c5cade38db9af1e4b988.

* fall back to doxygen 1.9.2

* update github workflow to new filter naming

* adding appveyor testing for new OQS_ALGS_ENABLED option

* don't enable disabled vars

* add empty input test

* documenting focus on standard algs

* correct alg name typo

* Update README.md

Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>

* Switch example to use Kyber-768.

Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2023-01-10 20:29:24 -05:00
Jeevesh Rishi Dindyal (Sarvesh)
2e42595804
Add ntruprime (#1328)
* Add back sntrup761
2022-12-22 07:37:44 +01:00
Goutam Tamvada
a7e1b8a32f
Removed NTRU. (#1335) 2022-12-15 12:19:29 -05:00
Goutam Tamvada
f5d96cab5c
Removed SABER. (#1326) 2022-12-01 14:04:08 -05:00
Goutam Tamvada
c50d38e5a8
Removed NTRU-Prime. (#1325) 2022-11-29 07:31:53 +01:00
Goutam Tamvada
fac5a818ed
Removed the Picnic signature scheme. (#1323) 2022-11-28 15:29:10 -05:00
Goutam Tamvada
203c9c269b
Removed the rainbow signature scheme (#1321). 2022-11-28 11:34:59 -05:00
Douglas Stebila
1e47e14556
Remove SIDH and SIKE (#1272)
Due to https://eprint.iacr.org/2022/975.

Fixes #1268.
2022-08-03 10:19:28 -04:00
Douglas Stebila
478ccba970
Remove Rainbow level 1 (#1263)
Fixes #1260
2022-07-27 15:12:16 -04:00
Basil Hess
719a84ecdd
Integrates pqcrystals with common-aes / extends common code AES CTR-API (#1221)
* Integrates pqcrystals (ref and avx2) with liboqs common AES code (for Kyber-90s and Dilithium-AES).
* Extends libOQS AES-CTR with Incremental API: OQS_AES256_CTR_inc_init, OQS_AES256_CTR_inc_iv, OQS_AES256_CTR_inc_ivu64, OQS_AES256_CTR_inc_stream_iv, OQS_AES256_CTR_inc_stream_blks.
* Adds some AES-CTR shim API.
* Faster AESNI CTR code (improved iv handling, 4x interleaved blocks for higher throughput).
* OpenSSL AES supporting CTR API.
* Updated pqcrystals patches (API, context releases).
* Removes redundant AES implementations from Kyber and Dilithium.
* Copy-from-upstream with updated patches.
* Uses internal AES on x86_64 (dist & AES) because of increased performance with the internal AESNI code.
* Adds AES-CTR benchmarks to speed_common
* Update CONFIGURE.md
2022-06-23 14:44:36 +02:00
Jason Goertzen
55bc8cb38d
ARMv8 optimized Dilithium (#1194)
* Updated sig templates to add support for arch specific upstreams. Currently behaves as expected, but still need to test (and integrate) dilithium

* Fixed a couple of build errors, and started work on dilithium integration from pqclean. Currently failing kat tests

* Updated templating for both sig and kem to make them look a little better

* Renamed dilithium folders so they are consistent across pqclean and pqcrystals so that copy_from_upstream script will function correctly

* Added arm optimized version of dilithium[2|3|5]

* Updating other signature schemes CMakeLists.txt to be the output of the updated templates

* Arm optimized implementation of dilithium is added, with randomized signing patched into it. copy_from_upstream script is working properly. Still need to update the update_docs scripts before ready to merge

* Finished updating docs scripts and yml files. Builds pass, so should be ready for a merge

* Fixed template issue with multiple compile flags

* Updated doc generation scripts so that all '_' in scheme names are replaced with '\_'
2022-03-09 15:17:42 -05:00
Michael Baentsch
18b3fe39b2
disable BIKE on all 32bitters except x86 (#1180) 2022-01-22 10:27:46 -05:00
Sebastian Ramacher
9227b2a233
Update to Picnic 3.0.9 (#1167)
* Update to Picnic 3.0.10 (fixes #1165)

* Disable Picnic SIMD optimizations on Cygwin (fixes #1163)

* Set WITH_OPT only if required

* Revert "remove picnic from cygwin build (#1171)"

This reverts commit 5608b465748281c8f84a97858dbd9887e77d6bd3.

* Update supported CPU extensions for Picnic
2022-01-09 11:28:56 -05:00
pkubaj
5ea49c2a44
Add support for powerpc64. (#1160)
This is 64-bit POWER big-endian. Since s390x (64-bit big-endian) and ppc64le
(64-bit POWER) are already supported, this shouldn't be an issue.
2021-12-23 18:03:25 -05:00
Sebastian Ramacher
4479f50da8
Update Picnic to 3.0.7 (#1158)
* Define PICNIC_EXPORT instead of PICNIC_STATIC

PICNIC_STATIC builds some internal functions only required for testing.

* Handle SSE2/AVX2/NEON in Picnic similar to other schemes

* Update to Picnic 3.0.8
2021-12-20 11:01:10 -05:00
Michael Baentsch
3b7b8d7816
aarch64 dist build (#1148)
* aarch64 dist generator run

* removing undocumented OQS_DIST_ARM64_V8_BUILD

* re-activate ARMV8 specific dist build
2021-12-09 11:47:45 -05:00