1177 Commits

Author SHA1 Message Date
Jason Goertzen
769412623c
Adding multiple upstream support to doc generation (#1123)
* Fix an issue where run_tests tried to run tests from upstream. Fix by @DStebila

* No longer checking spdx on files copied from upstream

* Added compiler checking for gcc. Must be at least 9.4.0.

* Added pqclean's aarch64 optimized kyber implementation to liboqs

* stripping asimd flag for ARM64_V8 as it isn't needed and will cause errors when trying to specify it during compilation

* Updated kyber docs

* Updated kyber markdown so that no-secret-dependent-branching-checked-by-valgrind correctly says false for the new aarch64 implementation

* Added automated updating of legacy yaml format, and added some yaml files which don't get automatically updated

* Fixed a bug where optimized upstreams would use the primary upstream's supported platform

* Fixed a bug with copy_from_upstream.py's verify function where it would always use the default upstream location when comparing with diff

* Added reporting for implementations that are in upstream but aren't yet integrated into liboqs

* Added support to ignore implementations from upstream in copy_from_upstream.yml. This is to prevent implementations that haven't been integrated into LIBOQS yet from being pulled in by copy_from_upstream.py. It also silences the warning when verifying.

* Adding updated ymls and md files for docs

* copy_from_upstream.py now also calls update_docs_from_yaml.py
2021-11-18 06:56:19 +01:00
Christian Paquin
ba5b61a779
Added Keccak constant time exclusion for Picnic AVX2 (#1124) 2021-11-16 11:03:04 -05:00
Jason Goertzen
0807ecf9af
Adding support for multiple upstream to copy_from_upstream, as well as pqclean's aarch64 kyber implementation (#1117)
* 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
2021-11-10 14:22:49 -05:00
Christian Paquin
c366e19805
Updated valgrind constant time exception for picnic (new code, and updated some line numbers) (#1121) 2021-11-09 10:08:46 -05:00
Christian Paquin
70c822b590
Skip non-enabled algs in constant time tests (#1120)
* 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.
2021-11-08 12:27:20 -05:00
Christian Paquin
468533abea
Updated Picnic to v3.0.5 (#1116)
* Updated Picnic to v3.0.5
2021-10-30 07:52:56 +02:00
Michael Baentsch
6175da8246
Add S/NTRUP1277 (#1111)
* adds S/NTRUP1277

* disable McEliece for OSX shared CCI runs

* known sntrup constant_time issue suppressed
2021-10-22 09:31:47 -04:00
Basil Hess
5c2e13062c
Disable BIKE build on s390x (big endian) (#1115) 2021-10-21 20:57:07 -04:00
Douglas Stebila
d071f2bc8c
Add powerpc64le name as alternative to ppc64le (#1112)
* Add powerpc64le name as alternative to ppc64le

FreeBSD uses powerpc64le name for 64-bit POWER little endian.

* Remove parentheses

Co-authored-by: pkubaj <pkubaj@FreeBSD.org>
2021-10-19 08:48:51 -04:00
Douglas Stebila
fff05ccf92
Update BIKE documentation to reflect only little endian support [skip ci] (#1105)
Fixes #1104
2021-10-14 09:33:39 +02:00
Basil Hess
016404076d
S390x support (#1103)
* s390x support

* - Fix for FrodoKEM-SHAKE for big endian support
- Fix unused variable in Keccak code on big endian
2021-10-12 14:39:56 -04:00
Michael Baentsch
59c19872eb
skip more SPHINCS algs from weekly testing (#1102) 2021-10-06 10:12:50 -04:00
Douglas Stebila
36d8a49c88
Update to PQClean commit 5b8ef3baea3ffdfbf688a3a1bb8f02de44a67ec0 (#1097)
* Update to PQClean commit 5b8ef3baea3ffdfbf688a3a1bb8f02de44a67ec0

* executed python3 scripts/update_docs_from_yaml.py

Co-authored-by: Michael <57787676+baentsch@users.noreply.github.com>
2021-10-01 12:31:31 -04:00
Michael Baentsch
9be13d21ed
enable true out-of-source build (#1093) 2021-09-20 10:51:00 -04:00
Michael Baentsch
e9a086592c
adding pyyaml prerequisite to README [skip ci] (#1094) 2021-09-20 09:00:17 -04:00
Michael Baentsch
2757d16854
Enabling out-of-source build-and-test (#1091)
* removes further fixed build directory dependencies

* formatting corrected

* remove cleanup code unsuitable for win

* remove include unknown in windows

* adapt mkdir to win API
2021-09-18 16:06:07 -04:00
Ted Eaton
001a3aa3c6
Adding armv8 crypto extensions to AES (#1086)
* Adding armv8 crypto extensions to AES

* Adding SPDX License identifier for aes arm files

* tidying up some whitespace in armv8 encryption functions

* Prettyprint

* Remove whitespace [skip ci]

Co-authored-by: Ted Eaton <eeaton@uwaterloo.ca>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2021-09-15 19:59:02 -04:00
Michael Baentsch
c0a550f736
do full upstream doc generation (#1066)
* do full upstream doc generation 

* added Common_META merge logic

* integrated src and doc upstream copy

* 'upstream' information auto-generated

* sort 'required_flags' for reproducability
2021-09-14 17:42:03 +02:00
Basil Hess
75b648e9f6
Kyber/Dilithium copy_from_upstream (#1088)
* Kyber/Dilithium copy_from_upstream

* Updated algorithm docs
2021-09-13 21:07:25 +02:00
Michael Baentsch
86bfbf4a76
skip algorithms for constant_time tests (#1089)
* skip algorithms for constant_time tests

* skip alg tests only on haswell
2021-09-13 12:24:22 -04:00
Douglas Stebila
65f090d55e Revert "increase test timeout for slow runners [skip ci] (#1085)"
This reverts commit 74867b6a6254ae4171c131eebe46c8e832c16a59.
2021-09-07 10:50:39 -04:00
Michael Baentsch
74867b6a62
increase test timeout for slow runners [skip ci] (#1085) 2021-09-05 15:50:08 -04:00
Michael Baentsch
eb9ca1974d
run optimized constant time tests only on haswell (#1082) 2021-08-31 13:35:32 -04:00
Michael Baentsch
3bc89ee908
enabling flexible build dir name in testing (#1080) 2021-08-28 14:39:25 -04:00
Christian Paquin
8a5c29819d
Updated SIKE to upstream commit effa60, addressing issue 1056. (#1079) 2021-08-27 22:09:10 -04:00
Wandering Consciousness
2c23fa4d5a
Add instructions on how to build shared/dynamic library to the README (#1077)
* Add instructions on how to build shared/dynamic library

* Improve wording and add link to BUILD_SHARED_LIBS section in Wiki
2021-08-23 14:09:26 -04:00
Michael Baentsch
0d11cb4461
Run constant time and undefined sanitizer jobs weekly (#1078) 2021-08-21 16:34:47 -04:00
Douglas Stebila
b803b54179
Use Github Actions for some CI (#1069)
* Disable other CI's on ghactionsonly- branches

* Stylecheck in Github Actions

* Add runs-on

* Add buildcheck in Github Actions

* Typo

* Debugging

* Debugging environment variables

* More debugging

* Add alpine job in Github Actions

* Debugging

* Debugging

* More debugging

* Add alpine-noopenssl job in Github Actions

* Alpine as a strategy matrix

* Debugging strategy matrix

* Reorganize strategy matrix

* Add ARM emulated job in Github Actions

* Finalize initial move to Github Actions

* Skip alg info test on ARM emulated
2021-08-11 20:59:27 -04:00
Douglas Stebila
6f649807cd liboqs 0.7.0 0.7.0 2021-08-11 17:22:32 -04:00
Douglas Stebila
c2eedffb1f
Fix a bug where intrinsics were ignored when compiling for apple silicon (#1074)
* 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>
2021-08-09 13:02:50 -04:00
Douglas Stebila
2db7f97922 liboqs 0.7.0-rc4 0.7.0-rc4 2021-08-06 10:17:11 -04:00
Douglas Stebila
a934455362
Update Valgrind suppression files for recent implementation changes (#1068) 2021-08-06 09:47:08 -04:00
Douglas Stebila
b72b89efdb
Add test suite comparing parameters in C with parameters in YML (#1070)
* Add test suite comparing parameters in C with parameters in YML

* Fix/bypass CI failures for test_alg_info
2021-08-05 15:32:43 -04:00
Douglas Stebila
2049555b7c
Compile-time guard for some BIKE AVX2 and AVX512 code (#1067)
* Compile-time guard for some BIKE AVX512 code

* Compile-time guard for some BIKE AVX2 code

* Typo PCLMUL->PCLMULQDQ
2021-08-05 09:41:26 -04:00
Douglas Stebila
1d31f51fa4 Update CODEOWNERS [skip-ci] 2021-08-04 21:48:34 -04:00
Douglas Stebila
6e911621f8
Remove UNUSED macro from OQS API (#1065) 2021-08-04 09:43:22 -04:00
Michael Baentsch
35155ce481
use doc YMLs to count non-copy-from-upstream algs [skip ci] (#1063)
* use doc YMLs to count non-upstream provided algs [skip ci]
2021-08-03 17:49:45 +02:00
Douglas Stebila
0f6d6a93b6 liboqs 0.7.0-rc3 0.7.0-rc3 2021-08-01 17:04:06 -04:00
Douglas Stebila
30fbfd826f
Sync with PQClean (#1061)
* Sync with PQClean 6c1ea921ee4a06a6b50c742ca540bb9b5e51aee2

* Update documentation YML from PQClean

* Update documentation from PQClean
2021-08-01 17:02:22 -04:00
Douglas Stebila
d0ad484a46 liboqs 0.7.0-rc2 2021-07-30 15:28:36 -04:00
Douglas Stebila
286e68674c
Add CI job for x86 (#1058) 2021-07-30 15:23:41 -04:00
Goutam Tamvada
4de651c723
Refactoring documentation generation. (#1057) 2021-07-30 13:26:44 -04:00
Jason Goertzen
636d9725b2
Adding armv8 crypto extensions to SHA256/224 (#1052)
* sha256 cyrpto extensions seem to work, want to add neon version if crypto isn't available

* Added additional files to CMakeLists.txt

* SHA256 armv8 implementation is done. Still need to double check that everything is happen when complied on a non-arm system, and an arm system that doesn't have the cyrpto extensions

* Updated sha2 CMakeList.txt to resolve issue compiling on aws ARM system

* I think I have resolved the aws/rock1 build issues

* Removed an resolved TODO comment

* Fixed a cmake build bug when OQS_DIST_BUILD is "ON"

* Made CMAKE sha2 build more flexible when using OQS_DIST_BUILD

* Signature datasheets (#1053).

* Fixed a typo in the common CMakeLists.txt file related to SHA2

* Add runtime feature detection for macOS on Apple Silicon

* Changed macos_feature_detection to return unsigned int to fix warnings, and updated some uint32_t to const uint32_t to fix warnings on macOS on Apple silicon

Co-authored-by: Goutam Tamvada <xvzcf@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2021-07-29 20:09:47 -04:00
Karolin Varner
e0c7f33689
Fixes necessary to compile on raspberry pi 4 with clang (#1055)
* Make compile on raspberry pi 4 with clang

* asm -> __asm__

* Prettyprint

Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2021-07-29 13:25:52 -04:00
Goutam Tamvada
6315abe19e
Signature datasheets (#1053). 2021-07-23 14:35:24 -04:00
Goutam Tamvada
760b3886fa
New datasheets (#1030)
* Documentation YAML files and automatic markdown generation for KEMS.

* Escape underscores

Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
2021-07-15 13:50:46 -04:00
Douglas Stebila
f52f908715 liboqs 0.7.0-rc1 2021-07-14 11:13:01 -04:00
Vitaly Chikunov
9c2b485cd0
Support for x86 and ppc64le architectures (#1037)
* 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>
2021-07-09 10:30:20 -04:00
Basil Hess
568a9df20c
Suppression file update for Dilithium (#1048)
Simple TravisCI integration for ppc64le
2021-07-08 08:36:40 +02:00
Douglas Stebila
9b4d4bb683
Change CMake files to support macos on Apple Silicon (#1034) 2021-07-05 11:55:39 -04:00