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
906b3ca175
more endianness fixes
2020-09-11 13:36:03 -04:00
John M. Schanck
e95daec1dd
remove unused function
2020-09-11 12:47:03 -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
de4e3b49ab
remove spaces before semicolons
2020-09-10 17:02:22 -04:00
John M. Schanck
2a261a3f36
Fix endianness issues
2020-09-10 16:27:12 -04:00
John M. Schanck
1309009b59
compiler warnings
2020-09-10 16:26:03 -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
859522e1c4
Fix left shift overflow for MASK_N2
2020-09-09 17:20:11 -04:00
John M. Schanck
b3a651aebe
Remove BITMASK macro
2020-09-09 16:52:51 -04:00
John M. Schanck
8dc9f8fa89
Remove old HQC implementations
2020-09-09 16:10:44 -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
f0940f92f2
Avoid using log(a) to check if a==0
2020-09-09 16:05:44 -04:00
John M. Schanck
8b6b9ddbb6
Satisfy linter
2020-09-09 10:03:19 -04:00
John M. Schanck
4a301f1896
Simplify hqc-rmrs*/clean/reed_muller.c and fix potentially non-constant time behavior.
2020-09-09 09:44:31 -04:00
John M. Schanck
57282fe962
Fix an avx2/gf2x.c buffer overflow
2020-09-08 10:23:00 -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
7c342d2039
NTRU Prime: Get random bytes in one shot and use corresponding KATs
2020-09-07 09:27:39 -04:00
John M. Schanck
7b93f968f1
NTRU Prime: avoid narrowing in loop iteration
2020-09-02 17:30:26 -04:00
John M. Schanck
06ff242344
Revert "NTRU Prime: change prototype for clean/crypto_sort_int32"
...
This reverts commit 8a372ad2e8
.
2020-09-02 17:27:14 -04:00
John M. Schanck
8a372ad2e8
NTRU Prime: change prototype for clean/crypto_sort_int32
2020-09-02 16:41:51 -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
bf15d518ea
NTRU: remove unused .s file
2020-09-02 13:05:51 -04:00
John M. Schanck
75710108fb
NTRU Prime: satisfy linter
2020-09-02 13:01:19 -04:00
John M. Schanck
c433b8274d
NTRU: inline the one call that needed @plt
2020-09-02 12:54:00 -04:00
John M. Schanck
55c6d04df6
NTRU Prime: Simplified patch set
2020-09-02 12:48:28 -04:00
John M. Schanck
8bb37ad134
NTRU Prime: Disable -Wconversion for gcc
2020-09-01 17:34:55 -04:00
John M. Schanck
7f3228a9b3
NTRU Prime: more unary negations
2020-09-01 17:15:01 -04:00
John M. Schanck
a5b5633534
NTRU Prime: more explicit casts
2020-09-01 17:00:55 -04:00
John M. Schanck
22c4feb174
NTRU Prime: avoid unsigned unary negation
2020-09-01 16:18:21 -04:00
John M. Schanck
2b54c6570d
NTRU Prime: more compiler warnings
2020-09-01 15:56:45 -04:00
John M. Schanck
4c5a8326ef
NTRU Prime: More changes for MS compiler
2020-09-01 15:16:45 -04:00
John M. Schanck
bfd9e1e8fd
NTRU Prime: Explicit casts to avoid conversion warnings
2020-09-01 07:55:46 -04:00
John M. Schanck
5982bdffcc
NTRU Prime: Match the NIST submission's sequence of calls to randombytes
2020-08-31 10:22:31 -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
db7fad1232
ntruhrss701/avx2: fix non-PIC call
2020-08-27 11:05:07 -04:00
John M. Schanck
268b62f3ce
NTRU: Move crypto_sort_int32.h include to top of sample.c
2020-08-25 07:57:26 -04:00
John M. Schanck
146a3195e9
NTRU: more explicit casts for MS compiler
2020-08-24 10:56:18 -04:00
John M. Schanck
f49d18a75b
NTRU: add explicit cast for MS compiler
2020-08-24 10:43:44 -04:00
John M. Schanck
1d26f6a582
Update NTRU and add AVX2 NTRU implementations
2020-08-24 09:47:30 -04:00
John Schanck
4ea4b478ba
Update NTRU ( #311 )
...
* Update NTRU
version: https://github.com/jschanck/ntru/tree/485dde03
* Fixed ntruhrss701/clean/Makefile.Microsoft_nmake
2020-08-15 14:26:25 -04:00
Sofía Celi
534e7a1277
Fix overflow in multiplication in Saber
2020-08-11 10:47:55 -05: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
Douglas Stebila
ae1530d192
Fix timing leak in decapsulation.
...
As identified in: Qian Guo, Thomas Johansson, Alexander Nilsson. A
key-recovery timing attack on post-quantum primitives using the
Fujisaki-Okamoto transformation and its application on FrodoKEM. In
CRYPTO 2020.
Based on
155c24c3df
2020-06-19 13:15:13 -04:00
Thom Wiggers
f7c7af5155
Merge pull request #297 from PQClean/fix-kyber-meta
...
Kyber768 and Kyber1024 don't need -maes (see #296 )
2020-06-02 09:41:14 +02:00
Ko-
25b15e5791
Fix whitespace to satisfy test_duplicate_consistency
2020-05-29 18:54:15 +02:00
Ko-
bca4250d1f
Update KAT values
2020-05-29 18:50:37 +02:00
Ko-
4883f2ce89
Add domain separation to NewHope
...
NewHope announced a new version of their specification that adds
explicit domain separation. This is a port of
https://github.com/newhopecrypto/newhope/commit/607a9d3
2020-05-29 16:41:41 +02:00
Thom Wiggers
75416c93f0
Kyber768 and Kyber1024 don't need -maes (see #296 )
2020-05-29 10:01:44 +02: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
mergify[bot]
da46a96aca
Merge branch 'master' into fix_ub
2020-03-27 23:13:26 +00:00
Douglas Stebila
ce4bd09860
Use the right AES CTX
2020-03-26 21:11:07 -04:00
Douglas Stebila
585a001fda
Split aes*_keyexp up into ecb and ctr variants
2020-03-26 20:18:02 -04:00
Thom Wiggers
35e4b0faa1
fixup! Fix uint8_t to uint16_t upcast in Frodo
2020-03-13 16:30:01 -04:00
Thom Wiggers
5436ec0476
Fix uint8_t to uint16_t upcast in Frodo
2020-03-13 15:58:15 -04:00
Thom Wiggers
85de23bdfe
Fix too-large shift in mceliece*f
2020-03-13 13:27:02 -04:00
Thom Wiggers
ef38541c6e
Clean up SABER
2020-03-13 13:00:57 -04:00
Thom Wiggers
bc86182b93
Fix overflowing mults in NTRUHRSS701
2020-03-09 18:02:44 -04:00
Thom Wiggers
39fa1ccfc7
Fix reduce.c's overflowing multiplication
2020-03-09 17:57:43 -04:00
Matthias J. Kannwischer
85c6605bbf
fix MSVS warning
2020-03-09 15:45:20 -04:00
Matthias J. Kannwischer
de5cda4d7b
Fix NewHope verify
...
https://github.com/mupq/pqm4/issues/132 repoorted that the NewHope verify function does not actually return 0 or 1, but 0 or -1, which consequenctly breaks the cmov in the FO transform.
This bug was introduced when I integrated this into PQClean.
2020-03-09 15:45:19 -04:00
Thom Wiggers
8c2f5994b9
Fix duplicate consistency
2020-03-03 10:15:57 -05:00
Thom Wiggers
fe4e12308b
Fix memory leaks in LEDAkem
2020-03-03 10:15:56 -05:00
Thom Wiggers
81caa58b57
Fix memory leaks in NewHope
2020-03-03 10:15:56 -05:00
Douglas Stebila
b4de294f68
Fix memory leak in Kyber
2020-02-16 14:55:19 -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
Thom Wiggers
7862f7faae
Fix McEliece8192128f makefile
2020-02-11 09:17:55 +01:00
Thom Wiggers
53d50fd751
Fix alignment problems with vectors in McEliece AVX2 and fix McEliece 8192128f ( #267 )
...
* Fix alignment problems with vectors
* Fix required CPU flags for McEliece
* Fix McElice8192128f that was missed in #259
* fixup! Fix McElice8192128f that was missed in #259
* Fix initialization
2020-02-07 11:13:59 +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
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