1
1
mirror of https://github.com/henrydcase/pqc.git synced 2024-11-22 23:48:58 +00:00
Commit Graph

1093 Commits

Author SHA1 Message Date
ced21a0c79 makes MSan happy 2021-06-21 09:20:48 +01:00
9b7b7277ce remove not needed flag 2021-06-20 21:36:11 +01:00
77ca982b4c Redesign CMakeLists.txt for MemorySanitizer
The test programs use googletest and google-benchmark
libraries in order to ensure right level of optimizations
and proper unit testing.
Those two libraries are written in C++ and they
use C++ standard library.

If you want MemorySanitizer to work properly and not
produce any false positives, you must ensure that all
the code in your program and in libraries it uses is
instrumented. That includes C++ standard library.

(see here: https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo)

With this change, the Memory Sanitizer build (enabled
by -DMEMSAN=1) will also build MSan-instrumented libc++
from LLVM and will use it as a standard C++ library
when building unit tests and benchmarks.

In particular what I do is this:
1. Clone LLVM project and build libcxx and libcxxabi with
   MSan enabled
2. Build GTEST and GBENCH with -fsanitize=memory and -stdlib=libc++.
   Additionally link against -lc++abi
3. Then use this special version of libc++ and GTEST/GBENCH
   in order to build final binaries containing unit/benchmark tests

The actuall tests with memory sanitizer are disabled, as
I'm getting some errors which need to be investigated first.

Additionally I've splitted single build into multiple, for
release,debug,clang,gcc and AddressSanitizer.

On unrelated note, I've also added flags to ignore some errors
which I'm getting when using newer GCC (see GH#10 GH#11).
2021-06-20 21:34:58 +01:00
7be2562de5 Build libcxx and libcxxabi with Memory Sanitizer 2021-06-20 21:34:58 +01:00
24881fade8 Run KAT in separated step 2021-06-20 21:34:58 +01:00
74e87f1ae2 remove MSan build for now 2021-06-20 21:34:58 +01:00
af2cee5b17 adds address and memory sanitizer 2021-06-20 21:34:58 +01:00
a0e38afc59 Adds flags for memory and address sanitizer 2021-06-20 21:34:58 +01:00
950479bdee adds fpic 2021-06-20 21:34:58 +01:00
6cef14338a updates gbench 2021-06-20 21:34:58 +01:00
5ce7524c1d multiple compilations 2021-06-20 21:34:58 +01:00
944543c9b9 fix bug in kyber
previous commit introduced a bug in Barrett reduction
2021-05-27 10:16:04 +01:00
c98780b4d5 adds McEliece 2021-05-26 13:39:05 +01:00
f3aa725c4c don't use submodules
Use cmake FetchContent instead
2021-05-26 11:15:24 +01:00
974f62bb26
Update README.md 2021-05-26 11:15:16 +01:00
e9249a2bee remove duplication 2021-05-25 22:18:22 +01:00
1120727660 remove duplication 2021-05-25 22:16:57 +01:00
fd21b95a2d kat: run in release mode 2021-05-25 12:30:35 +01:00
7ff8d8fcef Implelments Falcon 512/1024 Round3
* Enable KAT testing for Falcon
* Prefix all algorithms with PQC_ALG_SIG/KEM_
2021-05-25 12:29:54 +01:00
8bf02c41cd henrydcase -> kriskwiatkowski 2021-05-17 16:06:36 +01:00
f0c2436311 change comment 2021-05-17 16:00:10 +01:00
791c59ef06 reorder scheme definitions 2021-05-17 11:24:49 +01:00
7a20d33c15
Update README.md 2021-05-15 22:21:09 +01:00
4e10c0925f prefix structs with pqc_ 2021-05-10 16:36:24 +01:00
895d9c0abd bench ntt 2021-05-09 18:11:18 +01:00
395896dc92 basemul bench 2021-05-06 12:09:28 +01:00
977d449ce3
Update README.md 2021-05-04 07:47:35 +01:00
832da09aa8 fix build 2021-04-26 12:36:24 +01:00
d7ca0ddad6 fix memory overrun 2021-04-26 12:20:39 +01:00
744461b0ff add drone.yml 2021-04-26 12:20:39 +01:00
89a34ac04b SIKE: enable optimized version
Adds cpu_features library from Google to
recognize CPU capabilities on which implementation
is running.

Uses that library to run either generic-C
or assembly optimized implementation of
some field operations
2021-04-26 12:20:39 +01:00
9cb7e5a265 SIKE/p434
Pulls SIKE/p434 from CECPQ2 implementation
changed to use SHAKE instead of SHA2
2021-04-26 12:20:39 +01:00
15b97bc74e Change variable name 2021-04-25 22:34:30 +01:00
128b5406cc Add bench for rejection sampling 2021-04-25 22:23:54 +01:00
40e3fff409 remove gtest header 2021-04-22 23:30:21 +01:00
2e14f263b0 kyber512 benchmarks 2021-04-22 23:05:15 +01:00
6e0b153ed3 kyber matrix generation bench 2021-04-22 22:34:14 +01:00
56629c53f9 add benchmarking framework 2021-04-22 21:41:46 +01:00
59df9a3f73
Create SECURITY.md 2021-04-21 10:50:15 +01:00
188e672764 use aes_ctr_drbg crate 2021-04-14 06:56:10 +01:00
ebaeebc5da
Update README.md 2021-04-06 15:15:28 +01:00
fba66facc6
Update README.md 2021-04-06 15:14:03 +01:00
de8d3ba43e fix KEM 2021-04-04 15:32:25 +01:00
cfcffcdef1
Merge pull request #2 from henrydcase/mt_kat
Run KAT in parallel 4 threads
2021-04-04 13:59:46 +01:00
95cc52f554 Run KAT in parallel 4 threads 2021-04-04 13:09:47 +01:00
0b72f78582 Adds DRBG based on AES
In order to enable all KAT tests, the AES based
DRBG is need (for seed expansion). This PR adds
port of DRBG, initialy written by NIST.

Afterwards, the katrunner is modified to enable
key generation, encapsulation and signing KATs.

Testing of NTRU prime is disabled, as it doesn't
pass KAT tests now. The tests for SPHINCS+ are
now very slow.
2021-03-30 01:12:51 +01:00
626032f425 remove nistseedexpander header from HQC KEM 2021-03-29 13:05:27 +01:00
94234297ea
Update README.md 2021-03-28 16:58:13 +01:00
fddd697fc4 adds HQC-RMS-128/192/256 2021-03-27 00:34:03 +00:00
770942ab92
Update README.md 2021-03-27 00:11:37 +00:00