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
Leon Botros
f9d192036e
Add ephemeral versions of ThreeBears
2020-01-15 10:43:50 +01:00
Thom Wiggers
e762163478
Don't advertise MacOS support for Kyber-AVX2
...
In light of #251
2019-11-13 13:27:26 +01:00
Thom Wiggers
bb8ed7af9b
Merge pull request #248 from leonbotros/threebears
...
Add {Baby,Mama,Papa}Bear reference implementations
2019-11-04 11:45:49 +01:00
Leon Botros
f1511f35b9
use the same compiler flags as other implementations
2019-10-25 19:09:12 +02:00
Leon Botros
5720e25c54
add -Werror
2019-10-25 13:35:23 +02:00
Leon Botros
6a7506f520
move modulus function to source, namespace it
2019-10-25 13:14:25 +02:00
Leon Botros
cbbc9cd18f
fix namespacing for mamabear, papabear
2019-10-24 19:35:55 +02:00
Leon Botros
03b4153941
remove empty line, add version
2019-10-24 19:35:55 +02:00
Leon Botros
c53d332090
add ThreeBears
2019-10-24 19:35:55 +02:00
Matthias J. Kannwischer
762706f5fe
remove unnecessary if in kyber768
...
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.
In this case I don't think there is any reason to do this, so I've removed it.
2019-10-23 08:00:26 +02:00
Thom Wiggers
f792b925b4
Enable optimizers on Windows ( #244 )
2019-10-21 14:23:59 +02:00
Matthias J. Kannwischer
df8cc49670
fix kyber-90s warning if size_t is not 32 bits
2019-10-15 15:20:57 +02:00
Matthias J. Kannwischer
39246b808d
fix for big-endian
2019-10-04 13:10:29 +02:00
Matthias J. Kannwischer
9571a3b017
use common aes256_ecb instead of providing local AES implementation
2019-10-04 09:31:16 +02:00
Thom Wiggers
ac1f8cc74d
fixup! Add Kyber90s
...
Fix CRYPTO_ALGNAME
2019-09-24 08:01:54 +02:00
Thom Wiggers
526a841886
Add Kyber90s
2019-09-24 08:01:54 +02: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
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
Leon Botros
9190172f1a
fix a bug where error array is allocated way too big
2019-08-27 15:38:34 +02:00
Leon Botros
7dd7223587
more fixed sizes, hopefully fix mscv warnings
2019-08-24 16:40:47 +02:00
Leon Botros
9dd4a4b5da
fix requested changes
2019-08-24 15:48:38 +02:00
Leon Botros
823ba3f13b
fix msvc complaints #2
2019-08-23 14:21:09 +02:00
Leon Botros
50665606f0
serialize error before hashing
2019-08-23 12:57:17 +02:00
Leon Botros
46145a3183
hopefully fix msvc complaints
2019-08-23 12:41:58 +02:00
Leon Botros
537d2a1ac0
serialize pk/ct
2019-08-23 11:30:02 +02:00
Leon Botros
1fc2f51f82
fix clang-tidy warnings, replace variable-time schoolbook multiplications
2019-08-22 12:59:04 +02:00
Leon Botros
901d53ebe4
constant-time decapsulation/decryption failure
2019-08-21 21:27:53 +02:00
Leon Botros
d3d72f64cc
constant-time inverses
2019-08-21 18:54:04 +02:00
Leon Botros
e4a5cc3cf2
add karatsuba + toom-cook-3 without VLAs
2019-08-21 17:31:57 +02:00
Leon Botros
ca898f01bc
update implementations to leda v2.1
2019-08-21 14:28:31 +02:00
Thom Wiggers
2108bdcdb5
Make a static global explicitly const
2019-07-18 13:42:37 +02:00
Thom Wiggers
0ed5ba4a30
Merge pull request #192 from PQClean/saber
...
Add Saber
2019-07-04 15:53:57 +02:00
Matthias J. Kannwischer
756b550ceb
add Saber LICENSE
2019-07-01 07:48:17 +02:00
Douglas Stebila
4157e0fbad
Add release function for AES key schedule
2019-06-25 09:37:23 -04:00
Matthias J. Kannwischer
acde8afff2
Convert into a list for the Saber parameter sets
2019-06-24 09:18:58 +02:00
Matthias J. Kannwischer
515b04d87b
fix warnings
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
931f466937
switch to the polymul from the submission
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
8378132c5e
clean up of comments and packing
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
61b36e933b
remove wrong cast
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
cc94db88fa
fix vs warning
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
6aafbd56f2
add firesaber
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
8539bd8684
add lightsaber
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
15a9e77b4c
remove pre-processor conditionals
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
510a7baee8
move header guards to the top
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
ccfe87a4a3
refactoring to make vs more happy
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
03596d4705
another vs warning
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
ef0ad8e752
fix some vs warnings
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
31f9ee52ce
add license
2019-06-24 09:14:24 +02:00
Matthias J. Kannwischer
f18e464a68
add Saber
2019-06-24 09:14:00 +02:00
Thom Wiggers
4cea81d15f
Convert principal-submitter
into a list
...
There are schemes, like SABER (#192 ) that have more than one principal
submitter. Consistency warrants that we turn it into a list for all
schemes and don't do something with allowing either a str or a list:
that would just be very annoying to parse.
Closes #194
2019-06-21 09:30:55 +02:00
Leon
3c733b6691
resolve todo, remove asserts, add duplicate checks and make sure they pass
2019-06-17 14:03:59 +02:00
Leon
e5b9b13160
rename impl to leaktime
2019-06-16 17:01:29 +02:00
Leon
db99d3ec09
more msvc complaints
2019-06-14 16:07:31 +02:00
Leon
e353081cc2
fix msvc warnings
2019-06-14 15:04:30 +02:00
Leon
bf0aca644e
avoid global state by including 2nd round threshold in secret key
2019-06-14 14:23:58 +02:00
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