* currently there is a bug where pytest doesn't work but the individual tests work... looking into it still.
* Fix an issue where run_tests tried to run tests from upstream. Fix by @DStebila
* No longer checking spdx on files copied from upstream
* pqclean's aarch64 kyber implementation is now being pulled from. Still need to clean things up.
* pqclean kyber fragment was left behind. It's now added
* Added compiler checking for gcc. Must be at least 9.4.0. Need to track down clang and appleclang
* Need to figure out how to handle commen dependencies from multiple upstreams
* Cleaned up copy_from_upstream.py a bit
* Added pqclean's aarch64 optimized kyber implementation to liboqs
* Added pqclean's aarch64 optimized kyber implementation to liboqs
* Fixed an isssue where 'empty' conditionals were added to kem_scheme.c files when there were no required flags
* reverting sabre to version prior to updated copy_from_upstream script
* stripping asimd flag for ARM64_V8 as it isn't needed and will cause errors when trying to specify it during compilation
* Fixed an issue where empty conditionals would appear when no required flags were specified
* Updated kyber docs
* Updated kyber docs with better formatting
* Adding updated kyber documentation
* Reverting documentation that was erroniously updated while updating kyber.
* Reverted ntruprime too far back by mistake
* Updated kyber doc's yml no-secret-dependent-branching-checked-by-valgrind to false
* Updated kyber markdown so that no-secret-dependent-branching-checked-by-valgrind correctly says false for the new aarch64 implementation
* Skip non-enabled algs in constant time tests
* Deleted previous test skipping code (replaced with common function)
* Added back SKIP_ALGS checks, for enabled-but-skipped algs.
* removes further fixed build directory dependencies
* formatting corrected
* remove cleanup code unsuitable for win
* remove include unknown in windows
* adapt mkdir to win API
* Found an error on apple silicon not reporting that it supports SHA2 instructions
* Update output of test_hash
Co-authored-by: Jason Goertzen <Martyrshot@gmail.com>
* Import BIKE Round-3 Additional code
* astyle fix
* Fix for the shared build
* Added KATs sha256sum for BIKE-L1 and BIKE-L3
* Add check if the compiler supports VPCLMUL flag (some older ones don't)
* Disable BIKE build on 32-bit ARM
* Addressing comments on the PR
Co-authored-by: Dusan Kostic <dkostic@amazon.com>
* test_sig: Add canaries around malloc'd regions
* test_sig/kem: disable canary checks in test_constant_time
* test_kem: test canaries after testing malformed ciphertext
* Fix potential NULL dereference in fix_test_kem
* Test without aligned pk, sk
This changes the test_kem.c functions like those in PQClean:
* also prefix magic bytes for checking for out-of-bounds access
* use odd numbers for breaking alignment
Includes #985
* Fix style
* CMake: ARM toolchain files
* CI: Cross compile for ARM instead of emulating the entire build
* CMake: do not use mcpu=native when cross compiling
* CI: Disable testapproval [skip ci]
* CI: Disable armel tests
* CI: Disable test_mem on ARM
* Replace OQS_PORTABLE_BUILD with OQS_DIST_BUILD
Also introduces OQS_OPT_TARGET and removes OQS_USE_CPU_EXTENSIONS
* Only compile sha3 avx2 code on Linux|Darwin
* Use new ARCH_ARM[X] flags in SIKE CMakeLists
* Update test_portability and rename to test_distbuild
* Update documentation for building Windows AMD64 from Ubuntu Bionic
* Update scripts/build-android.sh
* More specific CMAKE_SYSTEM_PROCESSOR for rasppi toolchain
* CI: Use OQS_DIST_BUILD in some jobs
* Replace OQS_get_available_CPU_extensions by OQS_CPU_has_extension
* ARM64v8/ARM32v7 runtime cpu feature detection
* Compile-time detection of some ARM features
* Toolchain files to cross compile for ARM32v7 and ARM64v8
* Remove unnecessary references to CMAKE_BUILD_TYPE=Release
* Use OQS_DIST_BUILD=ON on Windows
* 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]
* 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
* 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
* 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