Commit Graph

951 Commits

Author SHA1 Message Date
Thom Wiggers
ac2c20045c Classic McEliece (#259)
* Add McEliece reference implementations

* Add Vec implementations of McEliece

* Add sse implementations

* Add AVX2 implementations

* Get rid of stuff not supported by Mac ABI

* restrict to two cores

* Ditch .data files

* Remove .hidden from all .S files

* speed up duplicate consistency tests by batching

* make cpuinfo more robust

* Hope to stabilize macos cpuinfo without ccache

* Revert "Hope to stabilize macos cpuinfo without ccache"

This reverts commit 6129c3cabe1abbc8b956bc87e902a698e32bf322.

* Just hardcode what's available at travis

* Fixed-size types in api.h

* namespace all header files in mceliece

* Ditch operations.h

* Get rid of static inline functions

* fixup! Ditch operations.h
2021-03-24 21:02:45 +00:00
Thom Wiggers
22e2551c95 Also run duplicate consistency checks on windows (#261) 2021-03-24 21:02:45 +00:00
Leon Botros
13c0317e25 Add ephemeral versions of ThreeBears 2021-03-24 21:02:45 +00:00
Thom Wiggers
f971718ef7 Fix clang builds to actually use clang 2021-03-24 21:02:45 +00:00
Thom Wiggers
77e9a23431 Move keys to heap for KEMs as well 2021-03-24 21:02:45 +00:00
Thom Wiggers
303a741192 Move keys in crypto_sign/functest.c to the heap
Having the keys on the stack increases the stack space consumption by
quite a bit, and this in turn results in the sanitizer tests failing
for Rainbow.

Moving the keys to the heap in the test seems like a harmless change.
2021-03-24 21:02:45 +00:00
Thom Wiggers
facb527c7c SPHINCS+ optimized implementations (#253)
* Add state destroy to SHA2 API

* Include optimized SPHINCS+ implementations

I've generated new implementations from the sphincsplus repository.

* Don't destroy sha256ctx after finalize

* Attempt to shut up MSVC

* Make sure to drop errors in rmtree
2021-03-24 21:02:45 +00:00
Thom Wiggers
784973a8fb Update PR template along practice (#254)
* remove automatically checked property

* Allow PR-submitters to self-document.

We don't ever use these, so allow submitters of PRs to self-document.
2021-03-24 21:02:45 +00:00
Thom Wiggers
a4e31f16a2 Fix isolation in test_metadata_sizes (#258) 2021-03-24 21:02:45 +00:00
Thom Wiggers
e4e6ef930e Add ccache to speed up builds (#257)
* Add ccache to speed up builds

* Fix circleci config

* fixup! Fix circleci config

* Try again with environment variables

* Set up ccache on MacOS
2021-03-24 21:02:45 +00:00
Thom Wiggers
7dc03bfc44 Specify arrays with sizes again 2021-03-24 21:02:45 +00:00
Thom Wiggers
2b9759912d Matthias' feedback 2021-03-24 21:02:45 +00:00
Thom Wiggers
9c35647461 MacOS ABI versions of Keccak 2021-03-24 21:02:45 +00:00
Thom Wiggers
08f96e8c71 fixup! Add MacOS support for Dilithium 2021-03-24 21:02:45 +00:00
Thom Wiggers
cb729b6a03 Fix duplicate consistency files
Every .s file is now handled through CC
2021-03-24 21:02:45 +00:00
Thom Wiggers
44b0522070 Add MacOS support for Dilithium 2021-03-24 21:02:45 +00:00
Thom Wiggers
ebb416a2ba Use more robust macro syntax 2021-03-24 21:02:45 +00:00
Thom Wiggers
a037d6ccf6 Don't use const integer arguments 2021-03-24 21:02:45 +00:00
Thom Wiggers
862d0d3094 Use PQClean int guidelines 2021-03-24 21:02:45 +00:00
Thom Wiggers
6cd265f5b9 fixup! Add Dilithium's AVX2 implementations 2021-03-24 21:02:45 +00:00
Thom Wiggers
377d0cbf1a Support unaligned vectors in pycparser 2021-03-24 21:02:45 +00:00
Thom Wiggers
6682216791 Add Dilithium's AVX2 implementations 2021-03-24 21:02:45 +00:00
Thom Wiggers
296177e079 Don't use -march=native for keccak
CircleCI has AVX512 support and the compiler will generate instructions that Valgrind doesn't handle.
2021-03-24 21:02:45 +00:00
Thom Wiggers
7da91aa360 Don't advertise MacOS support for Kyber-AVX2
In light of #251
2021-03-24 21:02:45 +00:00
Matthias J. Kannwischer
963e87af64 rainbow: memcpy -> memmove since buffers may overlap 2021-03-24 21:02:45 +00:00
Leon Botros
e3db88d7e4 use the same compiler flags as other implementations 2021-03-24 21:02:45 +00:00
Leon Botros
692e7bea39 add -Werror 2021-03-24 21:02:45 +00:00
Leon Botros
c95f1b4ebb move modulus function to source, namespace it 2021-03-24 21:02:45 +00:00
Leon Botros
36b6142794 remove empty lines at end of file 2021-03-24 21:02:45 +00:00
Leon Botros
4c84fd915b fix namespacing for mamabear, papabear 2021-03-24 21:02:44 +00:00
Leon Botros
e94842b0ef remove empty line, add version 2021-03-24 21:02:44 +00:00
Leon Botros
2d9e259608 add duplicate consistency checks 2021-03-24 21:02:44 +00:00
Leon Botros
3b740033ef add ThreeBears 2021-03-24 21:02:44 +00:00
Matthias J. Kannwischer
d1f2d16f46 remove ternary operator in rainbow to compute max
clang-tidy9.0.0 added a new check: bugprone-branch-clone
(https://releases.llvm.org/9.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html)
This doesn't like both branches of an if are the same.
This lead to a warning in rainbow, as where the maximum of two values (which
are always the same) is computed in a macro.
I don't always agree with this warning, but here I think it's worth to
remove the macro.
2021-03-24 21:02:44 +00:00
Matthias J. Kannwischer
6c98832774 remove unnecessary if in kyber768
clang-tidy9.0.0 added a new check: bugprone-branch-clone
(https://releases.llvm.org/9.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html)
This doesn't like both branches of an if are the same.
In this case I don't think there is any reason to do this, so I've removed it.
2021-03-24 21:02:44 +00:00
Matthias J. Kannwischer
873d176652 ignore new clang warning security.insecureAPI.DeprecatedOrUnsafeBufferHandling
clang9.0.0 (https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html)
adds a new satic analyzer: security.insecureAPI.DeprecatedOrUnsafeBufferHandling
which throws warnings if you use "unsafe" buffer handling functions which
includes memset and memcpy.
We have memset and mempy all over the place, so I think it's best to ignore this warning.
All the occurences that I looked at seemed perfectly "safe" to me.
2021-03-24 21:02:44 +00:00
Thom Wiggers
81a7e48d37 Run ARM64 tests on REAL HARDWARE 🎉 2021-03-24 21:02:44 +00:00
Matthias J. Kannwischer
071e541af7 Switch to gcc9.2 and xcode11.2 for MacOS builds (#246) 2021-03-24 21:02:44 +00:00
Thom Wiggers
367f29382f Make sure the emulated jobs upload their test results properly 2021-03-24 21:02:44 +00:00
Sebastian
56a0fcb135 qTESLA (#239)
* Copied qTESLA-p-I round2 (2019-08-19) code

* Code compiles, NIST-KAT works

* Included detached signature API

* Generated testvectors

* Fixed name in api.h

* code style

* Fixed error in Makefile

* Passing pytest

* Fixing types (uint8_t bytes and size_t indices)

* Replaced SHAKE with SHAKE128 where necessary

* Fixed bug: (signed) integer overflow

* Added qTESLA-p-III

* Code is now independent of machine endianness

* repaired Microsoft makefile
2019-10-21 14:26:27 +02:00
Thom Wiggers
f792b925b4 Enable optimizers on Windows (#244) 2019-10-21 14:23:59 +02:00
Sebastian
298dd2cf22 fix clang-tidy complaint about falcon (#242)
See https://circleci.com/gh/PQClean/PQClean/7991
2019-10-16 08:23:33 +02:00
mergify[bot]
abe2a5aa2c
Merge pull request #241 from PQClean/fix_kyber90s
Fix kyber-90s warning if size_t is not 32 bits
2019-10-15 18:16:00 +00:00
Matthias J. Kannwischer
df8cc49670 fix kyber-90s warning if size_t is not 32 bits 2019-10-15 15:20:57 +02:00
mergify[bot]
c39e85dddf
Merge pull request #238 from PQClean/kyber90s-aes
Update Kyber-90s to use aes256_ecb instead of local AES implementation
2019-10-04 12:48:58 +00:00
Matthias J. Kannwischer
39246b808d fix for big-endian 2019-10-04 13:10:29 +02:00
Matthias J. Kannwischer
9571a3b017 use common aes256_ecb instead of providing local AES implementation 2019-10-04 09:31:16 +02:00
Thom Wiggers
07543ba929 Document security issues (#236)
It seems wise to include _some_ form of guidance on what we know about
problems with certain (versions of) implementations.

[ci skip]
2019-09-25 10:47:49 +02:00
mergify[bot]
dd11ffc241
Merge pull request #230 from PQClean/fix_rainbow
Fix and re-add Rainbow
2019-09-24 20:44:43 +00:00
Matthias J. Kannwischer
1e04996465 re-add duplicate consistency checks 2019-09-24 14:43:23 +02:00