* std/r4/all algs enablement
* add documentation
* make doxygen happy
* Revert "make doxygen happy"
This reverts commit 9aedf2a7e651e0a686b2c5cade38db9af1e4b988.
* fall back to doxygen 1.9.2
* update github workflow to new filter naming
* adding appveyor testing for new OQS_ALGS_ENABLED option
* don't enable disabled vars
* add empty input test
* documenting focus on standard algs
* correct alg name typo
* Update README.md
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
* Switch example to use Kyber-768.
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
* Updated sig templates to add support for arch specific upstreams. Currently behaves as expected, but still need to test (and integrate) dilithium
* Fixed a couple of build errors, and started work on dilithium integration from pqclean. Currently failing kat tests
* Updated templating for both sig and kem to make them look a little better
* Renamed dilithium folders so they are consistent across pqclean and pqcrystals so that copy_from_upstream script will function correctly
* Added arm optimized version of dilithium[2|3|5]
* Updating other signature schemes CMakeLists.txt to be the output of the updated templates
* Arm optimized implementation of dilithium is added, with randomized signing patched into it. copy_from_upstream script is working properly. Still need to update the update_docs scripts before ready to merge
* Finished updating docs scripts and yml files. Builds pass, so should be ready for a merge
* Fixed template issue with multiple compile flags
* Updated doc generation scripts so that all '_' in scheme names are replaced with '\_'
* Update to Picnic 3.0.10 (fixes#1165)
* Disable Picnic SIMD optimizations on Cygwin (fixes#1163)
* Set WITH_OPT only if required
* Revert "remove picnic from cygwin build (#1171)"
This reverts commit 5608b465748281c8f84a97858dbd9887e77d6bd3.
* Update supported CPU extensions for Picnic
* Define PICNIC_EXPORT instead of PICNIC_STATIC
PICNIC_STATIC builds some internal functions only required for testing.
* Handle SSE2/AVX2/NEON in Picnic similar to other schemes
* Update to Picnic 3.0.8
* Added aarch64 optimized version of saber, lightsaber, and firesaber from pqclean
* Updated to latest commit of pqclean which fixes saber aarch64.
* Updated saber docs as per @dstebila's comment
* Removed duplicate lines from README.md
* Fixed local issue for duplicate lines in README.md. This is the output of the update docs script after fixing my local issue
* 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
* x86: Optimistic port to x86
No processor extensions support.
Tests are passed.
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
* ppc64le: Optimistic port to ppc64le
No (AltiVec/VSX) processor extensions support is detected.
Tests are passed.
Note that `secure_cmp32` may require additional treatment for this
architecture.
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
* 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>
* 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 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
* 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