* Consistent type in KEM decaps API (#1004)
* uint8_t in non-PQClean KEM APIs
* uint8_t in PQCleam KEM APIs
* Additional uint8_t tweaks in PQClean KEM APIs
Co-authored-by: Sebastian <sebastianv89@users.noreply.github.com>
* rand.c: request at most 256 bytes per getentropy call
* CMake: Set OQS_HAVE_GETENTROPY
* rand.c: fopen/fread error handling
* rand.c: redundant test to silence warn_unused_result
* CMake: include CheckSymbolExists
UEFI/EDKII used openssl as crypto lib with OPENSSL_SYS_UEFI.
This patch adds OQS_SYS_UEFI macro in liboqs to indicate special build in UEFI/EDKII.
With this patch, we can start building liboqs in UEFI/EDKII.
For algorithm specific patches, we will submit one by one later.
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
* Move copy_from_xkcp/CMakeLists.txt out of copy_from_xkcp/package.sh
* Namespace xkcp_low implementations for dist builds
* Run-time dispatching of sha3 calls
* Disable sha3 avx2 on windows
* 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]
* 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
* 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