* Fix OQS_PORTABLE_BUILD logic for schemes imported with copy_from_upstream
* Correct interpretation of pclmulqdq required flag
* Only run detect_gcc_clang_intrinsics on X86_64
* sha3: remove old implementations
* sha3: new implementations
* picnic: use liboqs sha3 and sha3x4
* frodo: use new sha3x4 interface
* sphincs: use liboqs sha3x4
* fixup
* skip test_spdx on xkcp_low directory
* xkcp_sha3: explicit casts to avoid narrowing warnings
* xkcp_sha3x4: explicit casts to avoid narrowing warnings
* sha3: disable platform specific xkcp if OQS_PORTABLE_BUILD
* sha3: fix Wcast-qual warnings on clang-9
* fix 'reset' functions
* xkcp_sha3: skip fastloop call if input is not long enough
* xkcp_low: Enable lane complementing for plain-64bits
* xkcp_low: remove Kravatte definitions from times4/avx2
* Add common OQS_MEM_aligned_alloc and OQS_MEM_aligned_free
* Require both OQS_USE_OPENSSL and OQS_USE_SHA3_OPENSSL to enable OpenSSL's SHA3
* Fix some undefined behaviour in KeccakP-1600/plain-64bits
* Fix some undefined behaviour in KeccakP-1600times4/avx2
* Expand shake tests
* Add sha3x4.h include to oqs.h
* Add xkcp_low license info to readme [skip-ci]
* Add copy_from_xkcp scripts [skip-ci]
* SPDX License Info for new scripts [skip-ci]
* 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