Commit Graph

324 Commits

Author SHA1 Message Date
Leon
5a4b7f24a3 (de)serialization instead of pointer casts 2019-06-12 15:33:20 +02:00
Leon
6811a40527 move implementations of functions to .c files 2019-06-11 22:50:33 +02:00
Leon
9e3f973f56 define a constant for max number of rng bytes, remove unnecessary check 2019-06-11 21:45:39 +02:00
Leon
889a1f1e53 fix mvsc warning 2019-06-11 17:09:28 +02:00
Leon
9c2449387a include stdint in api 2019-06-11 16:50:38 +02:00
Leon
26dad0211d remove unused functions 2019-06-11 16:39:41 +02:00
Leon
98e643e5c7 use size_t for index in aes xof buffer and not for index of digits 2019-06-11 16:20:31 +02:00
Leon
e5da5da9a6 use uint8_t in api 2019-06-11 16:18:21 +02:00
Leon
3caad74525 variable declarations at the beginning, namespace extern variables 2019-06-11 14:21:49 +02:00
Leon
737cb1bb2e add ledakemlt32 2019-06-10 20:42:31 +02:00
leonbotros
4f97fa82b6
Merge pull request #1 from PQClean/master
update fork
2019-06-10 18:56:06 +02:00
Leon
6aafab57ef add ledakemlt52 2019-06-10 18:57:26 +02:00
Leon
c0aa560186 remove commented code, update license 2019-06-07 15:07:22 +02:00
Leon
48912d76ff msvc warning + removing commented code 2019-06-07 13:57:15 +02:00
Leon
e4add57844 more cleaning 2019-06-07 13:40:02 +02:00
Leon
6f31e7e4c2 serialize error_vector before hashing instead of pointer cast 2019-06-07 13:02:25 +02:00
Leon
b320752f2a fix more msvc warnings 2019-05-27 23:58:49 +02:00
Leon
ca6d935bbc fix msvc warnings 2019-05-27 22:48:15 +02:00
Leon
7b9e254a8b fix reading outside buffer 2019-05-27 20:21:05 +02:00
Leon
a7b3aa73b2 fix gcc/clang-tidy warnings, remove preprocessor conditionals 2019-05-27 20:17:53 +02:00
Leon
1680f3f125 add nmake makefile 2019-05-27 19:16:31 +02:00
Leon
cc551546bf cleaning & fixing gcc warnings 2019-05-24 18:38:54 +02:00
Douglas Stebila
9a82706697
Merge pull request #176 from PQClean/frodoopt
Add optimized FrodoKEM
2019-05-22 11:45:20 +02:00
Matthias J. Kannwischer
c7c080568e add opt versions of frodokem976aes, frodokem976shake, frodokem1344aes, frodokem1344shake and the corresponding duplicate checks 2019-05-22 07:42:43 +02:00
Matthias J. Kannwischer
743b28f7a8 make VS compiler happy in matrix_aes.c 2019-05-22 07:31:03 +02:00
Joost Rijneveld
2244735a87
Merge pull request #175 from PQClean/hash_state_struct
Use opaque structs for the hashing API
2019-05-21 17:03:50 +02:00
Matthias J. Kannwischer
901761d88a make VS compiler happy in matrix_shake.c 2019-05-21 16:22:09 +02:00
Matthias J. Kannwischer
57ad79ae3a remove preprocessor conditionals from frodokem640shake 2019-05-21 15:51:56 +02:00
Matthias J. Kannwischer
cf8e4e5179 add optimized frodokem640aes 2019-05-21 15:46:59 +02:00
Matthias J. Kannwischer
7701666093 remove OPENSSL preprocessor conditionals 2019-05-21 15:17:57 +02:00
Matthias J. Kannwischer
081442bb8d use more recent version of the code 2019-05-21 15:15:52 +02:00
Thom Wiggers
199adb8072
Add -Wredundant-decls 2019-05-20 16:12:01 +02:00
Matthias J. Kannwischer
a4906713be use optimized matrix_shake.c for frodokem640shake 2019-05-20 15:12:51 +02:00
Thom Wiggers
98002329ad
Port NewHope to fips202 structs 2019-05-20 10:30:35 +02:00
Thom Wiggers
23e118207d
Port Kyber{512,768,1024} to fips202 ctx struct 2019-05-20 10:23:22 +02:00
Leon
17ea905952 moved license to one license file 2019-05-19 19:52:19 +02:00
Leon
7cbeeaee59 update META.yml 2019-05-19 19:51:36 +02:00
Leon
fcbd6918c2 create api.h 2019-05-19 19:41:03 +02:00
Leon
d02c1879e9 added todo 2019-05-19 19:40:38 +02:00
Leon
b40d53b0d8 added license 2019-05-19 19:39:57 +02:00
Leon
10aa790154 remove this one 2019-05-19 19:16:16 +02:00
Leon
587090e744 renamed to something more appropriate, copied source code, ran astyle 2019-05-19 19:14:46 +02:00
Douglas Stebila
82fdce64a2 Macro for loop length 2019-05-18 11:27:45 +02:00
Matthias J. Kannwischer
3d67b4c1c2 add duplicate consistency checks and remove some comments 2019-05-17 16:10:07 +02:00
Leon
752ff05b52 add folder + META.yml for ledacrypt kem lt for category 1 with n0=2 2019-05-16 15:20:06 +02:00
Matthias J. Kannwischer
0127ba93f5 Add IND-CPA/IND-CCA2 security field to METADATA. add test for it as well (#165) 2019-05-13 11:20:32 -04:00
Matthias J. Kannwischer
6659ba1d9c add IND-CPA/IND-CCA2 flag to newhope 2019-05-13 13:30:01 +02:00
Matthias J. Kannwischer
50b1bf959e Merge branch 'cpaccametadata' into newhope 2019-05-13 13:23:57 +02:00
Matthias J. Kannwischer
1597e62514 add IND-CPA/IND-CCA2 security field to METADATA. add test for it as well 2019-05-13 13:17:41 +02:00
Douglas Stebila
ba04db65d7 Fix wrong security level for FrodoKEM-976-AES
[skip ci]
2019-05-10 14:16:10 -04:00
Matthias J. Kannwischer
75015226a2 add newhope1024cpa 2019-05-08 17:38:41 +02:00
Matthias J. Kannwischer
4f4ed3cc8b add newhope512cpa 2019-05-08 17:33:08 +02:00
Matthias J. Kannwischer
12fafb1bf0 rename newhope1024ccakem -> newhope1024cca 2019-05-08 17:07:57 +02:00
Matthias J. Kannwischer
d879595da3 add newhope512cca 2019-05-08 17:06:55 +02:00
Matthias J. Kannwischer
01b3bde4bd remove testvector hash 2019-05-07 19:40:46 +02:00
Matthias J. Kannwischer
82e53bfdd1 fix MS compiler warnings 2019-05-07 19:40:46 +02:00
Matthias J. Kannwischer
5065f46aa7 add newhope1024ccakem 2019-05-07 19:40:46 +02:00
cryptojedi
56a3715ddc Kyberv2 (#150)
* Replaced round-1 Kyber code with round-2 Kyber code (not yet cleaned/namespaced)

* Namespacing for Kyber

* Some more work on round-2 Kyber (more namespacing)

* Added missing files

* Round-2 Kyber768 now passing all tests under Linux

* Various small tweaks to make MS compiler happy

* Two more tweaks for MS compiler

* Added Kyber512 and Kyber1024 (round-2 versions)

* Making MS compiler happy

* More fixes for MS compiler

* Replaced round-1 Kyber code with round-2 Kyber code (not yet cleaned/namespaced)

* Namespacing for Kyber

* Some more work on round-2 Kyber (more namespacing)

* Added missing files

* Round-2 Kyber768 now passing all tests under Linux

* Various small tweaks to make MS compiler happy

* Two more tweaks for MS compiler

* Added Kyber512 and Kyber1024 (round-2 versions)

* Making MS compiler happy

* More fixes for MS compiler

* Started more cleanup work on Kyber768

* Replaced round-1 Kyber code with round-2 Kyber code (not yet cleaned/namespaced)

* Namespacing for Kyber

* Some more work on round-2 Kyber (more namespacing)

* Added missing files

* Round-2 Kyber768 now passing all tests under Linux

* Various small tweaks to make MS compiler happy

* Two more tweaks for MS compiler

* Added Kyber512 and Kyber1024 (round-2 versions)

* Replaced round-1 Kyber code with round-2 Kyber code (not yet cleaned/namespaced)

* Namespacing for Kyber

* Some more work on round-2 Kyber (more namespacing)

* Added missing files

* Round-2 Kyber768 now passing all tests under Linux

* Various small tweaks to make MS compiler happy

* Two more tweaks for MS compiler

* Added Kyber512 and Kyber1024 (round-2 versions)

* Making MS compiler happy

* Making MS compiler happy

* More fixes for MS compiler

* More fixes for MS compiler

* Started more cleanup work on Kyber768

* Kyber768 passing all tests locally

* Kyber512 passes all tests locally

* Kyber1024 now also passing all tests locally

* Now passing all tests with -Wmissing-prototypes

* Local tests (on Linux) passing again
2019-05-06 14:50:27 +02:00
Douglas Stebila
3494c96e53
Update to latest changes from upstream, fix correctness on MS Visual Studio (#163) 2019-05-05 18:33:34 -04:00
Douglas Stebila
6e1f66d047
Don't run testvectors checks on KEMs (#161) 2019-04-30 11:15:57 -04:00
Douglas Stebila
266a40d2fe Move length-secret-key 2019-04-29 09:48:15 -04:00
Douglas Stebila
e568dd09c0 Copy ntru fixes from recent commits 2019-04-29 09:41:17 -04:00
Douglas Stebila
6e86989eb2 Undo breaking compiler warning fix 2019-04-29 09:41:17 -04:00
Douglas Stebila
2927f42c59 Fix Windows compiler warnings 2019-04-29 09:41:17 -04:00
Douglas Stebila
5b733ede1c Add ntruhrss701 2019-04-29 09:41:17 -04:00
Douglas Stebila
ea8fd5886c Add ntruhps4096821 2019-04-29 09:41:17 -04:00
Douglas Stebila
fb31e71e7e Metadata and duplicate consistency fixes for ntruhps2048677 2019-04-29 09:41:17 -04:00
Douglas Stebila
580b0d76e3 Add ntruhps2048677 2019-04-29 09:41:17 -04:00
Joost Rijneveld
68b12866ce
Use more standard Wvla 2019-04-24 13:52:02 +02:00
Joost Rijneveld
e32666a0ab
Throw errors when using variable-length arrays
Windows already complains about this in CI, but this will
let us catch these issues on Linux as well.
2019-04-24 12:35:17 +02:00
Joost Rijneveld
baf93e2826
Merge pull request #146 from PQClean/move-secret-key-to-scheme-meta
Move secret key length back to scheme-level META
2019-04-18 17:14:08 +02:00
Thom Wiggers
b5d4e93478
Add -O3 to CFLAGS 2019-04-17 11:56:16 +02:00
Joost Rijneveld
972315dec5
Move secret key length back to scheme-level META 2019-04-17 11:08:45 +02:00
Douglas Stebila
c0cf260113 Merge branch 'master' into nist-kat 2019-04-16 16:20:31 -04:00
Douglas Stebila
24938353ac Merge branch 'master' into nist-kat 2019-04-16 14:19:20 -04:00
Thom Wiggers
48bae57f24
Fix NTRU implementation according to c7fa0b98bc 2019-04-16 15:25:18 +02:00
Thom Wiggers
e711d6e3b9
Fix hash length in NTRU 2019-04-16 13:37:50 +02:00
Thom Wiggers
873216c702
Fix integer overflow problems in NTRU 2019-04-16 13:37:50 +02:00
Thom Wiggers
eb5f7f1e57
Fix int/size_t comparison in frodo 2019-04-16 13:37:50 +02:00
Thom Wiggers
3431dd2e0a
No reason for C source files to be executable 2019-04-16 13:28:44 +02:00
Douglas Stebila
c42619d855 Merge branch 'master' into nist-kat 2019-04-14 19:28:59 -04:00
Douglas Stebila
ff71e7de11 Correct FrodoKEM submitter list 2019-04-14 17:38:53 -04: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
Douglas Stebila
e72fd489ba
Add ntruhps2048509 (#105)
* Initial ntruhps2048509 implementation

* Turn compile-time #if's into runtime if's

* Test vector hash

* Resolve linter complaints

* Apply astyle

* Address Windows compiler complaints

* Address more Windows compiler complaints

* More Windows compiler complaints

* Apply astyle

* Add -Wmissing-prototypes

Co-Authored-By: dstebila <dstebila@users.noreply.github.com>

* Fix -Wmissing-prototypes errors, update LICENSE
2019-04-13 13:08:07 -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
6ca367e2e6 Apply astyle 2019-04-11 08:18:49 -04:00
Douglas Stebila
b7f390368e Merge branch 'master' into frodo-aes 2019-04-11 08:15:40 -04:00
Douglas Stebila
cfc9705751 test_format wasn't actually checking output of astyle
It was only checking the return code, but astyle was always returning 0. 
Changed to parse the output and look for the string "Formatted"
2019-04-10 21:23:33 -04:00
Douglas Stebila
7e8bd90d8c Fix Windows compiler warnings and endianness 2019-04-10 12:21:53 -04:00
Douglas Stebila
30c8661d82 Add FrodoKEM-1344-AES 2019-04-10 12:16:24 -04:00
Douglas Stebila
999ea3afed Add FrodoKEM-976-AES 2019-04-10 12:11:27 -04:00
Douglas Stebila
e9427afeb2 Add FrodoKEM-640-AES 2019-04-10 11:51:09 -04:00
Joost Rijneveld
dfe9508551
Remove preprocessor ignored codepath for Kyber 2019-04-09 17:23:31 +02:00
Joost Rijneveld
8d1ed9afc0
Remove include from Kyber's api.h 2019-04-09 17:19:23 +02:00
Douglas Stebila
37ccc09168 Move length-secret-key 2019-04-09 09:11:16 -04:00
Douglas Stebila
6fabab1fd9 Merge branch 'master' into more-frodo 2019-04-09 09:06:20 -04:00
Joost Rijneveld
fe010541ec
Move secret key length to implementation meta 2019-04-08 11:39:17 +02:00
Douglas Stebila
2d6be066e7 Add FrodoKEM-1344-SHAKE 2019-04-06 09:22:15 -04:00
Douglas Stebila
13e74c7b67 Update test vectors for new number of iterations 2019-04-06 09:22:04 -04:00
Douglas Stebila
624d82cc67 New required metadata fields 2019-04-06 09:09:45 -04:00
Douglas Stebila
46aa7ff9b2 Move duplicate consistency data outside of META.yml 2019-04-06 09:07:44 -04:00
Douglas Stebila
a296085e57 Merge branch 'master' into more-frodo 2019-04-06 08:51:03 -04:00
Joost Rijneveld
e2fcad2823
Merge branch 'master' into reduce-iterations 2019-04-06 13:10:21 +02:00
Thom Wiggers
d39d7c66db
Add missing metadata to META 2019-04-05 16:38:26 +02:00
Douglas Stebila
19d177efb3 Use 5 iteractions for functional tests and test vectors 2019-04-05 10:22:52 -04:00
Douglas Stebila
6b5d144415
Correct security level 2019-04-04 14:51:17 -04:00
Douglas Stebila
249bfb6197 Add FrodoKEM-976-SHAKE 2019-04-04 12:05:55 -04:00
Douglas Stebila
72ff0dae94 Minor reformatting 2019-04-04 12:05:20 -04:00
Douglas Stebila
4162be0401 Switch for int and unsigned char to size_to and uint8_t 2019-04-02 14:06:06 -04:00
Douglas Stebila
41bc57689c Fix more compiler warnings 2019-03-31 21:55:55 -04:00
Douglas Stebila
1e5e9d96f8 Fix compiler warnings and bug 2019-03-31 21:52:35 -04:00
Douglas Stebila
9cb1c56ac1 Make Frodo code endian-agnostic 2019-03-31 21:44:36 -04:00
Douglas Stebila
028fb2120e Fix typo 2019-03-21 23:53:53 -04:00
Douglas Stebila
ca798ee18a Fix Windows warnings 2019-03-21 23:51:34 -04:00
Douglas Stebila
f0ba4f2051 Add Windows Makefile 2019-03-21 23:48:52 -04:00
Douglas Stebila
e153dfdf56 Apply clang-tidy 2019-03-21 23:40:12 -04:00
Douglas Stebila
7485f35366 Apply astyle 2019-03-21 23:27:16 -04:00
Douglas Stebila
a2399091a7 Initial FrodoKEM-640-SHAKE implementation 2019-03-21 22:56:45 -04:00
Thom Wiggers
6558773b21
Check if header guard is defined properly
Does this slightly uglily, but it should work.
2019-03-19 15:02:09 +00:00
Thom Wiggers
05b0f6d9cc
Namespace the #define constants. 2019-03-19 13:28:15 +00:00
Thom Wiggers
45e645c3a7
Fix Makefile.Microsoft_nmake header dependencies 2019-03-06 17:15:23 +01:00
Thom Wiggers
d503a712ba
Fix nmakefiles
LIB is already an environment variable on Windows
2019-03-06 17:14:35 +01:00
Thom Wiggers
07b8c2ebe9
Make all apis use the uint8_t and size_t types 2019-03-05 14:14:47 +01:00
Joost Rijneveld
879574b695
Include name of implementation in namespace 2019-02-27 09:18:38 +01:00
Douglas Stebila
5297954630 Add dependency to header files in Makefile 2019-02-18 10:19:07 -05:00
Peter Schwabe
a96abac2de Removed FIXME comment 2019-02-14 19:16:52 +01:00
Peter Schwabe
bab1d185cd Made one more cast explicit 2019-02-14 16:18:17 +01:00
Peter Schwabe
393c7a3cde Fixed one cast (added appropriate parantheses) 2019-02-14 16:16:50 +01:00
Peter Schwabe
8b8f27b003 Make various casts in kyber explicit to make MS compiler happy with /W4 2019-02-14 16:14:47 +01:00
Peter Schwabe
81797c2c13 Increased warning level for compilation under Windows to /W4 2019-02-14 16:02:57 +01:00
Peter Schwabe
55b63353a8 Fixed Makefile 2019-02-14 16:00:52 +01:00
Peter Schwabe
9b29d34bf9 Merge branch 'reformat-kyber'
Fixed (hopefully) both formatting and astyle config to not break
formatting again
2019-02-14 15:32:12 +01:00
Peter Schwabe
8e594f3c23 Some cleanup, expanded dependencies, removed two unnecessary files in kyber768 2019-02-14 15:30:55 +01: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
Douglas Stebila
f64a7e0dd4 Reimplement Python tests using nose framework 2019-02-13 22:25:34 -05:00
Douglas Stebila
157977258c Make makefiles for Dilithium consistent with merged Kyber makefiles 2019-02-08 10:06:07 -05:00
Douglas Stebila
f1f0c1d332 Merge branch 'master' into make-dilithium 2019-02-08 10:02:24 -05:00
Douglas Stebila
24e28e3402 Use a single Makefile for BSD and GNU Make and add comments 2019-02-08 09:42:53 -05:00
Douglas Stebila
2d684ea323
Revert temporary error 2019-02-07 10:01:06 +01:00
Douglas Stebila
5d931897e6
Temporary check that errors really make the build fail 2019-02-07 10:01:06 +01:00
Douglas Stebila
7c0ecc0cdb
Create nmake file for building on Windows and fix compilation error 2019-02-07 10:01:06 +01:00
Douglas Stebila
e98d053623
Rename 2019-02-07 10:01:06 +01:00
Douglas Stebila
4a387d7896
Rename GNU Makefile 2019-02-07 10:01:06 +01:00
Douglas Stebila
84d8d5a6c2
Clean up Makefile 2019-02-07 10:01:05 +01:00
Douglas Stebila
da2667a846
Add local Makefile for kyber768 2019-02-07 10:01:05 +01:00
Douglas Stebila
dcc18d9b66 Revert temporary error 2019-02-06 20:24:26 -05:00
Douglas Stebila
c22d445e98 Temporary check that errors really make the build fail 2019-02-06 20:22:59 -05:00
Douglas Stebila
e914d18696 Create nmake file for building on Windows and fix compilation error 2019-02-06 18:37:50 -05:00
Douglas Stebila
06223ecb3a Rename 2019-02-06 12:46:50 -05:00
Douglas Stebila
d6d7217742 Rename GNU Makefile 2019-02-06 12:41:55 -05:00
Douglas Stebila
da6dd5f792 Clean up Makefile 2019-02-06 12:22:58 -05:00
Douglas Stebila
65918c0fa8 Add local Makefile for kyber768 2019-02-01 20:58:26 -05:00
Matthias J. Kannwischer
3b47fb2db7 check for license files 2019-01-29 17:45:37 +01:00
Thom Wiggers
66d5284e43
Fix specification of current implementations
See #2
2019-01-29 17:25:55 +01:00
Thom Wiggers
0c65364f34
Remove obsolete SHA3 hash from META.yml files.
We moved to SHA256 for compatibility with older versions of Python 3, and this hash is thus unchecked. It will only get out of date, so it seems better to remove it.
2019-01-29 16:39:27 +01:00
Joost Rijneveld
5d5b6f26a3
Ensure Python3.5 compatibility
This means we must downgrade to SHA256, as SHA3 is not in hashlib.
2019-01-23 11:27:43 +01:00
Joost Rijneveld
4cac434f47
Namespace Kyber768 and Dilithium-III 2019-01-22 17:40:27 +01:00
Matthias J. Kannwischer
f7fb850ecf check testvectors 2019-01-18 14:43:05 +01:00
Joost Rijneveld
e61a320aed
Move tests to separate directory 2019-01-17 17:44:55 +01:00
Joost Rijneveld
9760f45a46
Move scheme-specific META to scheme directory 2019-01-16 18:09:21 +01:00
Thom Wiggers
4d0082fa43
Add travis config
Also fixes some tidy issues

Not sure why my local clang-tidy doesn't complain
2019-01-16 14:54:24 +01:00
Matthias J. Kannwischer
e32b091ead add testvector generation 2019-01-16 14:21:52 +01:00
Thom Wiggers
c0deaa4952
Add automatic testing 2019-01-16 13:52:53 +01:00
Thom Wiggers
6a8a9a0bf3
Fix tidy for signing 2019-01-16 13:02:35 +01:00
Joost Rijneveld
7028025eb9
Normalize whitespace 2019-01-16 11:02:32 +01:00
Thom Wiggers
b22a21c08a
Add clang-tidy, only require SCHEME where needed 2019-01-16 10:45:27 +01:00
Joost Rijneveld
2a5a628e48
Add Dilithium-III 2019-01-16 10:21:05 +01:00
Joost Rijneveld
d3d6f7b7b7
Replace functional test by tests from PQM4
This also adds some code for canaries, and unifies crypto_{kem,sign}
2019-01-15 17:13:19 +01:00
Joost Rijneveld
8c5f2773cb
Reduce the number of functional tests 2019-01-15 16:50:22 +01:00
Joost Rijneveld
39dfbe4e32
Add list of submitters to kyber768/META.yml
Separating this into principal and auxiliary submitters was
chosen by NIST. If we do not do the same thing, we would have to
decide how to order names. People seem to have opinions on ordering.
2019-01-15 16:38:16 +01:00
Matthias J. Kannwischer
39aba8ac24 add .clang-format and formatted all the files 2019-01-15 16:34:01 +01:00
Joost Rijneveld
b35856eece
Add a META.yml for Kyber768 2019-01-15 16:25:37 +01:00
Joost Rijneveld
fa6aedb068
Add minimal Makefile and kyber768 as startingpoint 2019-01-15 16:03:38 +01:00