* 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>
* disable OpenSSL if neither AES, SHA2, or SHA3 are OSSL-provided
* Fixes faulty OpenSSL incremental SHA2 API integration
* guard OpenSSL3 initialization
* initialize all OSSL3 statics if OQS_USE_OPENSSL=ON
* Strawman version of one-time fetching MD objects from OpenSSL
We need init them and free them in one place to avoid threading
issues.
* Moving initialization of OpenSSL objects to a separate file
* Call OQS_init to ensure OpenSSL methods are cached
* Fix typo
* Use prefetch OpenSSL cipher object in rand_nist
---------
Co-authored-by: Douglas Stebila <beldmit@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
* Make decode function void to avoid ct issues
* Update test documentation
* add suppression files
* forgot to add the file
* typo fix
* Compute threshold without floating point operations
* Replace division by a constant with mul+shift
---------
Co-authored-by: dkostic <dkostic@amazon.com>
* Refactor update_cbom and update_docs_from_yaml, allow copy_from_upstream to import them.
Workaround for issue in GitPython, caused update_cbom to fail in Github CI.
* updates after copy_from_upstream
* 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>
* Renamed sha2 C_OR_NI to C_OR_ARM since we only select between C and ARM
* Updated AES C_OR_NI_OR_ARM's formatting and logic
* Renamed sha2_ni.c to sha2_armv8.c and updated CMakeLists.txt to fix build issues with arm optimized AES linking
* Fixed a feature detection logic issue
* Found an issue when compiling a distributed version
* Only apply -march=armv8-a+crypto to arm builds
* updated some naming
* Solve '-Wstrict-prototypes'
Manual changes are applied to the following algorithms only:
* Bike
* Frodo
* Picnic
* Add prototype for implementation of `OQS_SIG_alg_count`
* Add prototype for implementation of `OQS_KEM_alg_count`
* Run `copy_from_upstream.py`
Now, the constructors have a full prototype. It compiles with clang 16.0