Commit Graph

150 Commits

Author SHA1 Message Date
Thom Wiggers
74bc3e74e1
Fix UB in qTESLA
Lots of shifts left of signed integers
2020-03-13 15:02:24 -04:00
Thom Wiggers
9a4e9da47e
Fix FIPS202 API memory leaks in Dilithium 2020-03-03 10:15:56 -05:00
Thom Wiggers
bbad7871d2
Fix SHAKE256 memory leak in Dilithium (#271) 2020-02-16 10:18:05 -05: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
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
6d13a3dffc
Specify arrays with sizes again 2019-12-12 14:11:12 +01:00
Thom Wiggers
3943dde3f1
Matthias' feedback 2019-12-12 13:51:46 +01:00
Thom Wiggers
8a5e83c2ea
fixup! Add MacOS support for Dilithium 2019-12-11 15:47:38 +01:00
Thom Wiggers
bff1ba5c74
Add MacOS support for Dilithium 2019-12-11 15:06:02 +01:00
Thom Wiggers
dbf2d34235
Use more robust macro syntax 2019-12-11 13:01:07 +01:00
Thom Wiggers
a1fb93da73
Don't use const integer arguments 2019-12-11 08:51:26 +01:00
Thom Wiggers
00b17e0740
Use PQClean int guidelines 2019-12-09 12:05:25 +01:00
Thom Wiggers
faf1a80f1e
fixup! Add Dilithium's AVX2 implementations 2019-12-09 09:59:28 +01:00
Thom Wiggers
b4e4964315
Add Dilithium's AVX2 implementations 2019-12-06 16:16:41 +01:00
Matthias J. Kannwischer
b830b6c1d5 rainbow: memcpy -> memmove since buffers may overlap 2019-11-13 10:47:26 +01:00
Matthias J. Kannwischer
42c2525efb 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.
2019-10-23 08:00:26 +02: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
Matthias J. Kannwischer
db7200dc54 fix algorithm names in META.yml 2019-09-24 14:38:18 +02:00
Matthias J. Kannwischer
f08f65c8b6 remove unsupported -Wcast-align=strict 2019-09-24 13:50:38 +02:00
Matthias J. Kannwischer
3a4673bfd6 refactor gf16+gf256 arithmetic of rainbow to fix undefined behaviour 2019-09-24 13:48:51 +02:00
Matthias J. Kannwischer
0523cd693b fix and re-add rainbow 2019-09-24 13:48:51 +02:00
Thomas Pornin
2515f13378 Updated version number, and added an explicit cast to appease some versions of clang-tidy. 2019-09-20 09:01:32 -04:00
Thomas Pornin
44a050106a Fixed sampler bug (update to new upstream Falcon code 2019-09-18). 2019-09-19 15:55:28 -04:00
Matthias J. Kannwischer
7d10484030 fix algo names for schemes that are inconsistent with the api.h 2019-09-19 12:44:26 +02:00
Thom Wiggers
aa46b5239d Enable valgrind exit errorcode and remove Rainbow (#223)
* Enable valgrind exit errorcode

It seems we were not doing anything with the valgrind results... D:

* Use --exit-on-first-error if available

* Revert "Merge pull request #182 from PQClean/rainbow"

This reverts commit 8a008417fe, reversing
changes made to d4b612fe9a.
2019-09-05 10:08:42 +02:00
Thom Wiggers
210937a66f
Fix SPHINCS+ clang-tidy warnings 2019-08-01 09:13:05 +02:00
Thomas Pornin
bad9956869 Fixed some buffer handling bugs that should never happen in practice (but may occur if reusing the internal functions with different parameters). 2019-07-31 16:17:23 -04: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
4d7e5886c9 Rename dupe to clone 2019-07-30 13:23:22 -04:00
Matthias J. Kannwischer
7e4c4c5112
Merge pull request #211 from PQClean/fix-205
Fix documentation for Dilithium `crypto_sign_open`
2019-07-25 12:51:24 +02:00
Thom Wiggers
e00c556699
Merge pull request #213 from kste/fix_haraka_msghash
Only absorb root part of pk in haraka message hashing.
2019-07-25 09:04:28 +02:00
Thom Wiggers
575d2d688b
Update hashes in META files 2019-07-24 16:35:10 +02:00
Thom Wiggers
8a008417fe
Merge pull request #182 from PQClean/rainbow
Add Rainbow
2019-07-24 15:56:14 +02:00
Matthias J. Kannwischer
1fca5ec068 unsigned -> unsigned int 2019-07-24 10:42:15 +02:00
Matthias J. Kannwischer
2bf9d8b3e9 ran clang-format 2019-07-24 10:42:15 +02:00
kste
1a27f40937 Only absorb root part of pk in haraka message hashing. 2019-07-24 08:24:33 +02:00
Thomas Pornin
65e6514be0 Set the version for "round two". 2019-07-22 08:59:08 -04:00
Thom Wiggers
3c2967b5a1
Fix documentation for Dilithium crypto_sign_open
It mentioned `sk` instead of `pk` as specified in the arguments.

Closes #205.
2019-07-22 09:20:54 +02:00
Thomas Pornin
7175413a5c Renamed local variable to avoid a warning about a redefinition; also disabled the MSVC warning C4146 (it is raised whenever negation is applied on an unsigned type, but this has a portable and standard behaviour, and there are good reasons to do that). 2019-07-20 22:21:11 -04:00
Thomas Pornin
dba40c7d43 Removed 'restrict' keyword (it's C99, but MSVC 2017 does not support it...). This does not seem to impact performance. 2019-07-20 21:27:27 -04:00
Thomas Pornin
87bc13c761 Some cosmetic changes to appease clang-tidy. 2019-07-20 20:35:30 -04:00
Thomas Pornin
192e72144b Falcon implementations (integer-only code, constant-time). 2019-07-20 19:44:25 -04:00
Thom Wiggers
debc9f8fd8
Document what exactly hash_state.h defines 2019-07-18 09:16:50 +02:00
Douglas Stebila
6461896475 Add abstract state duplication for SHA256 incremental hashing API 2019-07-17 22:42:51 -04:00
Thom Wiggers
12c8a642ce
Fix Makefile (primitive.h->hash_state.h) 2019-07-17 15:53:33 +02:00
Thom Wiggers
74efb10807
Incorporate feedback
* Names passed around (mostly constant) value more clearly
* Put ``const`` where applicable (almost everywhere)
* Renamed ``primitive.h``
* Fixed some nits
2019-07-17 08:37:38 +02:00
Douglas Stebila
33ce5e14ce Remove const
This was causing compilation failures with clang, that there were 
duplicate const keywords once the macro was expanded in hash.h
2019-07-16 20:22:45 -04:00