* Fix OQS_PORTABLE_BUILD logic for Frodo
* Refine 'OQS_PORTABLE_BUILD' by general architecture, e.g. x86_64
* Use CMake to define ARCH_X86_64 and ARCH_ARM_ANY used in common.{c,h}
* Avoid triggering portable build on ARM
* Set OQS_USE_CPU_EXTENSIONS even on MSVC
* Compile AES-NI code in portable x86_64 builds
* Fix minimal build support for McEliece avx
* mceliece avx consts.S: use .hidden to avoid putting consts in GOT
* mceliece avx int32_sort.c: avoid gcc extension __m256i_u
* cmake: Use target_compile_option when setting -Wno-language-extension-token for mceliece avx
* Constant time checks using Valgrind and suppression files
* Suppression file for Kyber (ref+avx), HQC, SIKE, NTRUPrime, McEliece, SIDH, Falcon (ref+avx), SPHINCS, Dilithium r2+r3, picnic
* mark all BIKE implementations as vartime
* Set OQS_DEBUG_BUILD in oqsconfig.h if CMAKE_BUILD_TYPE=Debug
* Add OQS_ENABLE_TEST_CONSTANT_TIME to oqsconfig.h
* Check build options before running
* test_{kem,sig}: avoid direct call to OQS_randombytes_system
* Remove picnic3 issue based on review #889
* fix Kyber namespacing
* Missing BIKE error type, skip BIKE
* Resolve SIDH/SIKE bingcd issue as per #888
* Mark Falcon hash_to_point_vartime issue as resolved
* Disable CI tests
* Add OQS_MINIMAL_BUILD option that builds only the default KEM/SIG
* CI: add buildcheck job, which uses minimal build
* Add buildcheck and testapproval to CI workflow
* CI: Only run address-sanitizer on audit branches
* CI: Disable centos-8 and debian-buster
* Point Kyber and Dilithium to pqcrystals-repo.
* Pulls Kyber and Dilithium from PQCrystals using copy_from_upstream
* Dilithium Round 3
* Kyber round 3
* Updates Dilithium Round 3 KAT
* Updates kyber.md and dilithium.md (manual changes after running copy_from_upstream)
* Update copy_from_pqclean / copy_from_upstream (#880)
* Renames copy_from_pqclean to copy_from_upstream.
* Adds 'upstreams' field to copy_from_upstream.yml, allowing to specify upstream repositories, branches and commits.
* Modifies "copy" command in copy_from_upstream: sources are pulled from specified git-repositories. Implementation folders in $LIBOQS_DIR/src will be prefixed with the upstream-name.
* Adds "verify" command in copy_from_upstream: Implementations in $LIBOQS_DIR/src are compared with expected upstream versions.
* Prepares for copying pqclean, pqcrystals-kyber and pqcrystals-dilithium from upstream.
* Updates copy_from_upstream to process common dependencies from an upstream.
* Adds reminder text to manually update algorithm docs .md files after copying
* Make `OQS_SHA3_shake128_4x` always available
* Simplify FrodoKEM SHA3
* Fix prettyprint
* Make SHAKE128 x4 always available and use CPU feature detection
Move contents of sha3x4.c into sha3x4_avx2.c
* CPU feature detection for FrodoKEM sa+e operation
Separate out the 4 versions (C, AVX2) x (AES, SHAKE) and then select
appropriate one
* Missing braces for single-line for statement
* Reorganize FrodoKEM AVX2 code into separate compilation units
* Move as+e so compiler can apply AVX2 optimizations
There isn't an explicit separate AVX2 implementation since Patrick
observed that the compiler can optimize this code well enough without
hand-written usage of intrinsics. This commit reorganizes the code so
that the compiler can separately compile a version with -mavx2 options
provided.
* added portability tests only on Ubuntu, documentation added
* using Westmere as test CPU type; disable avx2 for common code other than sha3x4 on portable builds
* removed extraneous PORTABLE_BUILD guards
* Upgraded picnic to v3.0.2.
* Fix explicit_bzero function.
* Fixed redefinition of AddByte on little endian platforms (picnic's and oqs's namespacing)
* Update picnic to v3.0.3
* Fixing some picnic functions namespacing
* Added namespacing for picnic function on little endian system.
* More picnic namespacing fixes
* More picnic namespacing fixes, round 2
* Added more namespacing prefix
* More picnic namespacing
* Explicit namespacing for KeccakP1600times4_StaticInitialize function