Commit Graph

304 Commits

Author SHA1 Message Date
John M. Schanck
f8503cbd71 simplify pack_unpack.c 2020-10-28 23:31:01 -04:00
John M. Schanck
135f95e15b Clean up AVX2 code 2020-10-28 12:07:07 -04:00
John M. Schanck
0a3146831f Update Saber and add AVX2 implementation 2020-10-28 12:07:07 -04:00
Thom Wiggers
32b066036d
Implement testing via Github actions
* Fix a bunch of issues in SPHINCS+ on Windows
* Fix testing makefile dependencies by fixing times of common files
  (affected Windows testing mainly)
2020-10-09 15:11:23 +02:00
Thom Wiggers
08154573f0
Fix test_symbol_namespace 2020-10-01 09:17:34 +02:00
John M. Schanck
8ec84d0c3a inspect initializations 2020-09-17 07:19:31 -04:00
John M. Schanck
720fe60ace Add test/test_boolean.py 2020-09-17 07:19:31 -04:00
Thom Wiggers
365319041a
Merge pull request #324 from jschanck/hqc
New HQC and HQC-RMRS from upstream
2020-09-17 10:29:06 +02:00
John M. Schanck
0dee1d6aa6 readability changes 2020-09-15 11:54:11 -04:00
John M. Schanck
d4008c7f1e uint8_t api for encode/decode in optimized rmrs 2020-09-13 14:44:34 -04:00
John M. Schanck
4da9f0b087 more endianness fixes 2020-09-13 12:23:25 -04:00
John M. Schanck
d9e093c1ad satisfy MS compiler 2020-09-12 20:15:07 -04:00
John M. Schanck
0ff7886b08 narrowing warnings 2020-09-11 17:02:19 -04:00
John M. Schanck
4aab2dcb23 Rename log and exp to gf_log and gf_exp 2020-09-11 12:38:08 -04:00
John M. Schanck
04f7375c32 Some MS compiler fixes 2020-09-10 19:30:03 -04:00
John M. Schanck
cc7eae7ce7 typo and more endianness fixes 2020-09-10 17:15:55 -04:00
John M. Schanck
2a261a3f36 Fix endianness issues 2020-09-10 16:27:12 -04:00
John M. Schanck
23238dbed5 Initialize arrays in fft.c and fix a few compiler warnings 2020-09-10 10:26:30 -04:00
John M. Schanck
834f546349 Avoid ==, !=, etc in arithmetic expressions. Some compilers will produce non-constant time code. 2020-09-09 16:07:20 -04:00
John M. Schanck
9113313eab Replace avx2 'reduce' in gf2x 2020-09-07 17:39:21 -04:00
John M. Schanck
c2083e13d7 New HQC and HQC-RMRS from upstream 2020-09-07 16:10:13 -04:00
John M. Schanck
4f6e00ed69 NTRU Prime: jump directly to crypto_sort_smallindices 2020-09-02 13:37:23 -04:00
John M. Schanck
55c6d04df6 NTRU Prime: Simplified patch set 2020-09-02 12:48:28 -04:00
John M. Schanck
70543bba37 Add sntrup{653,761,857} and ntrulpr{653,761,857}
Exported from SUPERCOP-20200826 using the scripts at:
https://github.com/jschanck/pqclean-package-ntruprime
2020-08-28 20:22:56 -04:00
John M. Schanck
f1287684e3 NTRU: duplicate consistency 2020-08-24 09:47:34 -04:00
Matthias J. Kannwischer
9fbfb230a9 remove threebears, ledakem, newhope, mqdss, qtesla
NIST announced the Round 3 finalists and alternate candidates today:
https://groups.google.com/a/list.nist.gov/d/msg/pqc-forum/0ieuPB-b8eg/Cl7Ji8TpCwAJ

Some of the schemes in PQClean did not make it to Round 3 and this commit
removes them.
2020-07-23 14:08:09 +08:00
Thom Wiggers
90630db2eb
Add MQDSS AVX2 implementations (#288)
* Add AVX2 version of mqdss

* Fix duplicate consistency
2020-06-26 14:01:23 +08:00
Thom Wiggers
9e4d07dba1
Speed up test collection (#298)
* don't do filesystem operations during collection

* Greatly speed up test collection

* fixup! Greatly speed up test collection

* Silence junit warning

* fixup! Greatly speed up test collection
2020-06-22 10:10:07 +08:00
Thom Wiggers
db0d5800c5
Merge pull request #279 from PQClean/ds-aes-keyexp
Split aes*_keyexp up into ecb and ctr variants
2020-04-03 10:00:50 +02:00
Sebastian
33232a0343
HQC submission (#202)
* Sebastian's HQC merge request

* Clean up changes to common infrastructure

* Fix Bitmask macro

It assumed that ``unsigned long`` was 64 bit

* Remove maxlen from nistseedexpander

It's a complicated thing to handle because the value is larger than size_t supports on 32-bit platforms

* Initialize buffers to help linter

* Add Nistseedexpander test

* Resolve UB in gf2x.c

Some of the shifts could be larger than WORD_SIZE_BITS, ie. larger than
the width of uint64_t. This apparently on Intel gets interpreted as the
shift mod 64, but on ARM something else happened.

* Fix Windows complaints

* rename log, exp which appear to be existing functions on MS

* Solve endianness problems

* remove all spaces before ';'

* Fix duplicate consistency

* Fix duplicate consistency

* Fix complaints by MSVC about narrowing int

* Add nistseedexpander.obj to COMMON_OBJECTS_NOPATH

* astyle format util.[ch]

* add util.h to makefile

* Sort includes in util.h

* Fix more Windows MSVC complaints

Co-authored-by: Sebastian Verschoor <sebastian@zeroknowledge.me>
Co-authored-by: Thom Wiggers <thom@thomwiggers.nl>
2020-04-01 13:57:21 +08:00
Thom Wiggers
cd8a6e684a
Filter out clang-tidy on alternate platforms 2020-03-31 14:05:05 +02:00
Thom Wiggers
b263cd07d7
Speed up circleci tests 2020-03-31 14:03:02 +02:00
Douglas Stebila
585a001fda Split aes*_keyexp up into ecb and ctr variants 2020-03-26 20:18:02 -04:00
Thom Wiggers
9b06aedefe
Make sure tests respond to undefined behaviour 2020-03-09 17:54:33 -04:00
Thom Wiggers
2b267defdb
Enable leak check in Valgrind 2020-03-03 10:15:56 -05:00
Thom Wiggers
acf7760f4d
Fix detecting of to-be-tested changes on Windows 2020-02-19 11:53:14 -05:00
mergify[bot]
b2bdf88091
Merge branch 'master' into functest_keys_on_heap 2020-02-12 01:36:23 +00:00
Thom Wiggers
1a4739e2bf
Move keys to heap for KEMs as well 2020-02-11 12:23:06 +01:00
Thom Wiggers
65a6a63e08
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
2020-02-11 11:15:14 +01:00
Thom Wiggers
b3f9d4f8d6
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
2020-02-05 13:09:56 +01:00
Thom Wiggers
8ffb087545
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.
2020-02-05 12:38:08 +01:00
Thom Wiggers
dcad0bd878 Also run duplicate consistency checks on windows (#261) 2020-01-22 10:05:20 -05:00
Leon Botros
f9d192036e
Add ephemeral versions of ThreeBears 2020-01-15 10:43:50 +01:00
mergify[bot]
7483647ddf
Merge branch 'master' into redo-dilithium 2019-12-13 09:35:58 +00:00
Thom Wiggers
a655ec8a9d 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
2019-12-12 14:29:29 +01:00
Thom Wiggers
770a421c16 Fix isolation in test_metadata_sizes (#258) 2019-12-12 11:36:34 +01:00
Thom Wiggers
281afa0323
MacOS ABI versions of Keccak 2019-12-11 16:04:59 +01:00
Thom Wiggers
7357da6995
Fix duplicate consistency files
Every .s file is now handled through CC
2019-12-11 15:23:40 +01:00
Thom Wiggers
faf1a80f1e
fixup! Add Dilithium's AVX2 implementations 2019-12-09 09:59:28 +01:00
Thom Wiggers
2e065c9860
Support unaligned vectors in pycparser 2019-12-09 09:57:55 +01:00