Commit Graph

60 Commits

Author SHA1 Message Date
Douglas Stebila
9944e6a81d Rename aes256_keyexp based on #279 2020-04-06 15:39:32 -04: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
Douglas Stebila
dc401c40d7 Don't return void 2020-03-26 20:18:02 -04:00
Douglas Stebila
585a001fda Split aes*_keyexp up into ecb and ctr variants 2020-03-26 20:18:02 -04: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
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
1e2aac2e22
Don't use -march=native for keccak
CircleCI has AVX512 support and the compiler will generate instructions that Valgrind doesn't handle.
2019-11-19 11:13:29 +01:00
Thom Wiggers
88e59b3d61
Merge pull request #232 from PQClean/fix_incremental_sha512
Fix incremental sha512
2019-09-12 10:27:20 +02:00
Thom Wiggers
3779d4fcbf Fix clang-tidy complaint about result of subtraction being compared with possibly small size_t (#231) 2019-09-10 12:36:52 +02:00
Thom Wiggers
f4bd312180 Adds AVX2 variants of Kyber512, Kyber768, Kyber1024 (#225)
* Integrate Kyber-AVX2 into PQClean

* Fix types and formatting in Kyber

* Workaround a valgrind crash

* Remove comment in shuffle.s

* Remove some extraneous truncations

* fixup! Fix types and formatting in Kyber
2019-09-10 11:45:01 +02:00
Matthias J. Kannwischer
6ee774a593 fix incremental sha512 2019-09-10 11:27:37 +02:00
Douglas Stebila
83c974e45b
Merge pull request #207 from PQClean/sphincs-abstract-state-dupe
Add abstract state duplication for SHA256 incremental hashing API
2019-07-30 21:48:30 -04:00
Douglas Stebila
b70216eb8d Implement state clone for rest of SHA-2 incremental API 2019-07-30 13:25:23 -04:00
Douglas Stebila
4d7e5886c9 Rename dupe to clone 2019-07-30 13:23:22 -04:00
Thom Wiggers
133a38b890 Move test support files into tests directory (#200)
* Move test support files into tests directory

* Fix common tests dir in test

* Fix Windows Makefile for common tests

* notrandombytes.obj should be in TEST_COMMON_DIR
2019-07-26 10:26:14 +02:00
Douglas Stebila
6461896475 Add abstract state duplication for SHA256 incremental hashing API 2019-07-17 22:42:51 -04:00
Douglas Stebila
e53cf16fa8 Change sha3_512_inc_finalize output length to 64 2019-07-04 21:13:57 -04:00
Douglas Stebila
d7f745a0e6 Alternative no-op 2019-06-25 09:38:24 -04:00
Douglas Stebila
4157e0fbad Add release function for AES key schedule 2019-06-25 09:37:23 -04:00
Leon
32b3a97809 add sha3_384 2019-06-10 20:40:49 +02:00
Ko-
cf88fb781e Satisfy linter 2019-06-07 13:46:31 +02:00
Ko-
db7d3deb03 Add cSHAKE{128,256} to common. 2019-06-07 11:43:52 +02:00
Thom Wiggers
b153768783
Implement ctx struct for fips202 2019-05-20 10:22:51 +02:00
Thom Wiggers
7c30aa73c9
SHA2 state constants in common 2019-05-20 09:20:12 +02:00
Douglas Stebila
8e7cf2b5cd Fix linter complaints 2019-04-14 17:29:58 -04:00
Douglas Stebila
a815543f32 Add NIST KAT check for KEMs 2019-04-14 17:17:11 -04:00
Matthias J. Kannwischer
5587cdb4a8 Add -Wmissing-prototypes (#109)
* fix prototypes for sphincs and static functions in aes.c

* fix missing prototypes in all frodo variants

* fix missing prototypes in kyber

* remove const from non-pointer arguments in Frodo

* add missing prototypes to requirements in README
2019-04-13 11:47:29 -04:00
Douglas Stebila
aea72d3eb2 Add macros for AES block size 2019-04-10 11:50:23 -04:00
Peter Schwabe
4970379baf Added simple test for AES 2019-04-10 13:24:42 +02:00
Peter Schwabe
45a12595df Added const keyword to a few pointer arguments in AES 2019-04-09 15:41:44 +02:00
Peter Schwabe
40661601bd Eliminated unnecessary casts 2019-04-09 15:06:23 +02:00
Peter Schwabe
ed8a4ea2f4 Fixed wrong header name in aes.c 2019-04-09 14:57:52 +02:00
Peter Schwabe
93c24e34c6 Formatted AES code properly 2019-04-09 14:48:46 +02:00
Peter Schwabe
070db10cc1 Added (constant-time) AES implementation, based on BearSSL 2019-04-09 14:35:44 +02:00
Joost Rijneveld
d325e39c68
Add documentation for SHA2 blockwise functions 2019-03-13 17:23:30 +01:00
Joost Rijneveld
f0ffc59696
Add SHA224 for completeness 2019-03-11 16:50:00 +01:00
Joost Rijneveld
83810dcc47
Expose incremental SHA2 API 2019-03-11 16:50:00 +01:00
Joost Rijneveld
6d84aec3db
Add SHA256 2019-03-11 16:50:00 +01:00
Thom Wiggers
91c2fb59cf
Merge pull request #74 from PQClean/incremental-fips202
Add incremental API for SHAKE and SHA3
2019-03-11 15:19:36 +01:00
Joost Rijneveld
760b5926c4
Add incremental SHA3 2019-03-07 17:01:23 +01:00
Joost Rijneveld
23178c4c32
Add incremental API for shake128 and shake256 2019-03-07 17:01:16 +01:00
Thom Wiggers
a230c51cf5
Disable clang-tidy lint on windows.h include 2019-03-06 17:15:23 +01:00
Thom Wiggers
b7bc9b6cb0
Cast a value in notrandombytes.c 2019-02-27 17:18:07 +01:00
Thom Wiggers
ea19211d21
Cast size_t to DWORD on Windows 2019-02-27 17:06:27 +01:00
Thom Wiggers
06955dfc21
Explicit casts in conversions 2019-02-27 16:19:00 +01:00
Douglas Stebila
5f3e8ca2d5 Build functional tests and test vectors on Windows continuous integration 2019-02-25 21:40:43 -05:00
312616113a common: use fixed size integers 2019-02-17 13:16:21 +00:00
Thom Wiggers
3b73ea134d
Formatted everything with astyle
clang-format was not flexible enough to allow lining out things on
columns with spaces.
2019-02-14 14:08:16 +01:00
Thom Wiggers
fe46514836
Include full clangformat config.
Hopefully stabilizes behaviour between versions.
2019-02-11 10:05:54 +01:00