* 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
* 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.
* Start re-adding AES-NI with CPU feature detection
* Follow Goutam's feedback on CPU feature detection
* Macrify CPU feature detection logic in AES
* AES128 and AES256 using NI based on Romain Dolbeau's public domain code
* Fewer calls to C_OR_NI
* Restricting setting of OQS_USE_CPU_EXTENSIONS.
* Unroll AES loops
Co-authored-by: xvzcf <xvzcf@users.noreply.github.com>
* Add SPDX-License-Identifier in src/common
* Add SPDX-License-Identifier in FrodoKEM
* Add SPDX-License-Identifier in SIKE
* Add SPDX-License-Identifier in BIKE
* Add SPDX-License-Identifier in OQS headers
* Add SPDX-License-Identifier in files generated during copy-from-pqclean
* Add SPDX-License-Identifier in Picnic
* Add SPDX-License-Identifier in qTesla
* Add SPDX-License-Identifier in CMake files
* Update license info in README
* Add SPDX-License-Identifier in scripts
* Add SPDX-License-Info to CMakeLists
* Add SPDX-License-Info in tests
* Add SPDX-License-Info to various files
* Prettyprint
* Add test for SPDX-License-Identifier headers
* Updated license identifiers for CPU extension detection code.
* Use conjunction for SPDX in file with two licenses
Co-authored-by: xvzcf <xvzcf@users.noreply.github.com>
* Removed non-standard CMake build types and introduced new variables to customize the build.
* Added handling for new build variables to all KEMS and signatures and updated CI.
* Added clang-9 test to CI.
* More cleanup after replaced dashes in filenames
* Add Falcon from PQClean and sync with latest PQClean commits
* Try to fix type punning warning in Falcon
* Missed templating
* Formatting change
* Overhauled the propagation of compiler flags
* Added "Dependency" CMake build type
* Removed src/common/CMakeLists.txt and src/crypto/CMakeLists.txt
* Set default build type to exclude CPU extension-based optimizations
* Fix clang on macOS warnings
* Clear gcc-9 on macOS warnings
* Work around gcc-4.9 warnings
* Disable one Picnic compiler warning
* Fix compiler warning on WSL
* Initial format with astyle
* Fix templating to match
* Fix files with missing newline at EOF
* Remove old line
* Remove old .clang-format spec
* Add prettyprint target to CMake