Commit Graph

1023 Commits

Author SHA1 Message Date
Thom Wiggers
d257525360 Fix UB in qTESLA
Lots of shifts left of signed integers
2021-03-24 21:02:46 +00:00
Thom Wiggers
507617f30f fixup! Run sanitizers after running AMD64 tests 2021-03-24 21:02:46 +00:00
Thom Wiggers
fcd81030d6 Fix too-large shift in mceliece*f 2021-03-24 21:02:46 +00:00
Thom Wiggers
c5f8131c8b fixup! Run sanitizers after running AMD64 tests 2021-03-24 21:02:46 +00:00
Thom Wiggers
73704e2224 Run sanitizers after running AMD64 tests 2021-03-24 21:02:46 +00:00
Thom Wiggers
3307f05c49 Clean up SABER 2021-03-24 21:02:46 +00:00
Thom Wiggers
5f02a4e80c Fix overflowing mults in NTRUHRSS701 2021-03-24 21:02:46 +00:00
Thom Wiggers
3ef983c459 Fix reduce.c's overflowing multiplication 2021-03-24 21:02:46 +00:00
Thom Wiggers
ea5ede6e80 Make sure tests respond to undefined behaviour 2021-03-24 21:02:46 +00:00
Thom Wiggers
83750a2fb2 Fix duplicate consistency 2021-03-24 21:02:46 +00:00
Thom Wiggers
698738c263 Enable leak check in Valgrind 2021-03-24 21:02:46 +00:00
Thom Wiggers
d8c9c431cf Fix memory leaks in LEDAkem 2021-03-24 21:02:46 +00:00
Thom Wiggers
0912b1821c Fix memory leaks in NewHope 2021-03-24 21:02:46 +00:00
Thom Wiggers
160030400d Fix FIPS202 API memory leaks in Dilithium 2021-03-24 21:02:46 +00:00
Thom Wiggers
a804c623de Force running brew update
This will add ~5m to the build time, but Travis CI SUCK at keeping their tools up to date...
2021-03-24 21:02:46 +00:00
Thom Wiggers
1b69c78763 Update Travis CI to XCode 11.3 2021-03-24 21:02:46 +00:00
Thom Wiggers
5bad0df0b6 Fix detecting of to-be-tested changes on Windows 2021-03-24 21:02:46 +00:00
Douglas Stebila
833a9d5129 Fix memory leak in Kyber 2021-03-24 21:02:46 +00:00
Thom Wiggers
b6b4c7d8ed Fix SHAKE256 memory leak in Dilithium (#271) 2021-03-24 21:02:46 +00:00
Thom Wiggers
07db9c1e60 Put all common primitives on the heap (#266)
* Put AES ctx on the heap

This forces people to use the ``ctx_release`` functions, because otherwise there will be leaks

* Put fips202 on the heap

* Add much more docs for fips202.h

* fixup! Put fips202 on the heap

* Put SHA2 on the heap-supporting API

* Fix clang-tidy warnings

* Fix unreachable free() in falcon

* Fix McEliece8192128f-sse GNU Makefile
2021-03-24 21:02:45 +00:00
Thom Wiggers
f20c77f718 Fix McEliece8192128f makefile 2021-03-24 21:02:45 +00:00
Thom Wiggers
6bfec2978e Fix alignment problems with vectors in McEliece AVX2 and fix McEliece 8192128f (#267)
* Fix alignment problems with vectors

* Fix required CPU flags for McEliece

* Fix McElice8192128f that was missed in #259

* fixup! Fix McElice8192128f that was missed in #259

* Fix initialization
2021-03-24 21:02:45 +00:00
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