Commit Graph

334 Commits

Author SHA1 Message Date
Joost Rijneveld
3d09ea3ad5
Add duplicate consistency checks 2019-04-23 13:09:16 +02:00
Joost Rijneveld
85be522a16
Merge pull request #154 from PQClean/detect_travis_Cron
Detect cron builds on Travis CI
2019-04-23 12:53:17 +02:00
Joost Rijneveld
fa7d257832
Make diffs in dup_consistency files part of scheme
Previously, changing a duplicate_consistency file would be
considered a 'global' change, resulting in CI re-running all tests
for all schemes.
2019-04-23 12:21:38 +02:00
Thom Wiggers
029146566e
Detect cron builds on Travis CI 2019-04-23 09:42:10 +02:00
Thom Wiggers
da10273e52
Merge pull request #117 from PQClean/run-only-diffs
Be more selective in test runs
2019-04-19 17:09:29 +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
f39b300e4e
Reduce number of tests for functest 2019-04-18 11:26:28 +02:00
Thom Wiggers
15bd2d4fb4
another attempt at fixing appveyor 2019-04-18 11:26:28 +02:00
Thom Wiggers
65d43df241
Change permit test into a decorator
This way we can properly raise skiptest
2019-04-18 11:26:28 +02:00
Thom Wiggers
98780c6e8e
use yaml.safe_load to silence warning. 2019-04-18 11:26:28 +02:00
Thom Wiggers
a7a8c02c27
master may not be available 2019-04-18 11:26:28 +02:00
Thom Wiggers
33605f05d8
Set PQCLEAN_ONLY_DIFF on CI builds 2019-04-18 11:26:27 +02:00
Thom Wiggers
323b49ca6b
Merge pull request #147 from PQClean/slow-tests
Slow tests
2019-04-18 08:57:58 +02:00
Thom Wiggers
b5d4e93478
Add -O3 to CFLAGS 2019-04-17 11:56:16 +02:00
Thom Wiggers
3e95b0b4d7
Add slow test annotator 2019-04-17 11:17:46 +02:00
Thom Wiggers
157d7b7a78
Fix trailing whitespace 2019-04-17 11:10:49 +02:00
Joost Rijneveld
972315dec5
Move secret key length back to scheme-level META 2019-04-17 11:08:45 +02:00
Douglas Stebila
09632377f9 Skip clang-tidy on Windows 2019-04-16 20:59:37 -04:00
Douglas Stebila
24938353ac Merge branch 'master' into nist-kat 2019-04-16 14:19:20 -04:00
Thom Wiggers
546d9e41f2
Make output of sanitizer nicer 2019-04-16 13:28:43 +02:00
Thom Wiggers
327429b625
Make sure -fsanitizer binaries are always cleaned up 2019-04-16 13:28:43 +02:00
Thom Wiggers
9c4aebd8e3
sanitizers don't need valgrind 2019-04-16 12:39:14 +02:00
Joost Rijneveld
fc7afd8f76
Add distclean to clean entire ../bin folder 2019-04-16 10:35:48 +02:00
Thom Wiggers
09a35993da
Skip Valgrind on OSX 2019-04-15 16:21:44 +02:00
Thom Wiggers
a5e906a306
Fix sanitizer test 2019-04-15 16:05:20 +02:00
Douglas Stebila
b80eebdd71 Fix Windows type warning 2019-04-14 20:31:17 -04:00
Douglas Stebila
97260c2d69 Fix reference to nistkatrng 2019-04-14 19:35:28 -04:00
Douglas Stebila
c54cdca983 Build nistkat on Windows 2019-04-14 19:31:15 -04:00
Douglas Stebila
53ac90861c Temporarily skip NIST KAT check for kyber768 2019-04-14 17:19:52 -04:00
Douglas Stebila
a815543f32 Add NIST KAT check for KEMs 2019-04-14 17:17:11 -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
d07e8ae7cb
Filter tests when diff'ing against master branch (#103) 2019-04-11 15:23:39 -04:00
Douglas Stebila
518e8656be Merge branch 'master' into frodo-aes 2019-04-11 13:48:50 -04:00
Douglas Stebila
0bc19b3633
Fix a few nits (#107)
* Minor changes

* Gracefully degrade if clang-tidy segfaults

* Typo on returncode
2019-04-11 13:47:53 -04:00
Thom Wiggers
5b0174d282 Avoid clang tidy segfault (#106)
* Gracefully degrade if clang-tidy segfaults

* Typo on returncode
2019-04-11 13:22:50 -04:00
Douglas Stebila
1e7ee7a4c2 skip_windows decorator 2019-04-11 09:23:35 -04:00
Thom Wiggers
b2ef82e2da
Remove duplicate namespace_prefix 2019-04-11 15:11:18 +02:00
Douglas Stebila
b7f390368e Merge branch 'master' into frodo-aes 2019-04-11 08:15:40 -04:00
Joost Rijneveld
7dcedfc56c
Allow -fix-errors to fix linter errors 2019-04-11 10:10:05 +02:00
Joost Rijneveld
e9d1829de7
Merge pull request #95 from PQClean/aes
Aes
2019-04-11 09:58:46 +02:00
Joost Rijneveld
a7c147f410
Include 'common' in name of common test binaries 2019-04-11 09:54:52 +02: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
42a5e0e4ad Use environment variables to selectively filter tests 2019-04-10 17:03:02 -04:00
Douglas Stebila
8b4f656376 Skip too-slow valgrind tests on i386 CircleCI builds 2019-04-10 14:14:49 -04:00
Douglas Stebila
0ee03d4c3f Merge branch 'aes' into frodo-aes 2019-04-10 12:31:12 -04:00
Douglas Stebila
c40276dd4a Link against AES object on Windows 2019-04-10 12:30:02 -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
395f14a2f6 Allow multiple sources for duplicate consistency checks; break into multiple unit test to improve output 2019-04-10 12:07:49 -04:00
Joost Rijneveld
69b74706c1
Fix SHA3 test 2019-04-10 17:54:52 +02:00
Douglas Stebila
e9427afeb2 Add FrodoKEM-640-AES 2019-04-10 11:51:09 -04:00
Douglas Stebila
aea72d3eb2 Add macros for AES block size 2019-04-10 11:50:23 -04:00
Joost Rijneveld
e766700a81
Add test_aes to make clean 2019-04-10 17:43:04 +02:00
Douglas Stebila
a2c2521e81 Merge branch 'master' into frodo-aes 2019-04-10 11:37:44 -04:00
Joost Rijneveld
5d600a2543
Split tests into primitives
This ensures separate errors for separate common files
2019-04-10 16:42:28 +02:00
Joost Rijneveld
f4607265c6
Remove unused imports 2019-04-10 16:37:59 +02:00
Joost Rijneveld
03eb577a40
Pass list instead of single command to subprocess 2019-04-10 16:37:02 +02:00
Joost Rijneveld
280bc60b1b
Use standard helper to skip Windows for /common 2019-04-10 16:34:44 +02:00
Peter Schwabe
28337843b9 Added python test running all unit tests of common crypto functions 2019-04-10 16:02:45 +02:00
Peter Schwabe
4970379baf Added simple test for AES 2019-04-10 13:24:42 +02:00
Joost Rijneveld
5853cb8e50
Test for preprocessor conditionals 2019-04-09 17:23:31 +02:00
Joost Rijneveld
9e5fd74823
Test for prohibited includes in api.h 2019-04-09 17:19:20 +02:00
Douglas Stebila
6fabab1fd9 Merge branch 'master' into more-frodo 2019-04-09 09:06:20 -04:00
Joost Rijneveld
cffe944bbf
Check that implementations are uniquely named 2019-04-08 11:39:17 +02:00
Joost Rijneveld
fe010541ec
Move secret key length to implementation meta 2019-04-08 11:39:17 +02:00
Thom Wiggers
6257e9ea48
Merge pull request #91 from PQClean/detached-signatures
Test detached signatures
2019-04-08 11:37:36 +02:00
Joost Rijneveld
493d77d89b
Ensure tests do not break without schemes 2019-04-08 11:14:45 +02:00
Joost Rijneveld
87a3c6ab39
Add functest/testvectors for detached signatures 2019-04-08 10:23:24 +02:00
Douglas Stebila
e697ee7fdd Merge branch 'master' into more-frodo 2019-04-07 08:15:13 -04:00
Douglas Stebila
7a5f7b9941
Enable some extra warnings (#67)
Enable some extra warnings
2019-04-07 08:14:41 -04:00
Douglas Stebila
2d6be066e7 Add FrodoKEM-1344-SHAKE 2019-04-06 09:22:15 -04:00
Douglas Stebila
bef34697fb Pull pycparser submodule if it's not present 2019-04-06 09:21:40 -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
1e9defd090
build printparams on Windows 2019-04-05 17:21:56 +02:00
Thom Wiggers
d1fd8aa934
Check the specified sizes of the metadata match api.h consts
Fixes #88
2019-04-05 17:04:37 +02:00
Thom Wiggers
c95d2816bd
Enable some extra warnings
These warnings should help catch some non-obvious bugs.
2019-04-05 16:44:54 +02:00
Thom Wiggers
d39d7c66db
Add missing metadata to META 2019-04-05 16:38:26 +02:00
Joost Rijneveld
f355e77407
Clarify and reduce iterations for sig testvectors
This is actually different from signature functests,
which only tests mlen=32. Can be fixed later as that does
not impact the testvectors.
2019-04-05 16:32:39 +02:00
Douglas Stebila
19d177efb3 Use 5 iteractions for functional tests and test vectors 2019-04-05 10:22:52 -04:00
Joost Rijneveld
41edb79c0a
Clarify cc vs cpp 2019-04-05 13:04:32 +02:00
Thom Wiggers
4e47a0b513
Skip the prohibit-char test on Windows due to lack of cc 2019-04-05 10:39:08 +02:00
Thom Wiggers
bfa8589f96
Use cc -E instead of cpp 2019-04-05 10:31:31 +02:00
Douglas Stebila
0145ddaa1b More stack! 2019-04-04 12:45:24 -04:00
Douglas Stebila
301f7aca57 Always return negative numbers so positive+negative != 0 2019-04-04 12:39:47 -04:00
Douglas Stebila
49729d6da0 Larger stack size for FrodoKEM 976 on Windows 2019-04-04 12:39:04 -04:00
Douglas Stebila
ad4984fdad Improve skipping for duplicate_consistency test 2019-04-04 12:38:47 -04:00
Douglas Stebila
7a4e0d445b Skip duplicate consistency check on Windows (i.e., if sed not available) 2019-04-04 12:07:54 -04:00
Douglas Stebila
bc5d18e7cd Add duplicate consistency check 2019-04-04 12:05:43 -04:00
Joost Rijneveld
97e428a0b7
Skip preprocessing when cpp unavailable 2019-04-04 14:52:11 +02:00
Joost Rijneveld
17fc0da52e
Prohibit using char without explicit sign modifier
Related to #79
2019-04-04 13:49:15 +02: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
06973e6127 Force make clean on test_compile_lib
Helpful for local builds, even though it has no effect on fresh CI builds
2019-03-31 22:00:39 -04:00
Douglas Stebila
812c7f54ac Global search and replace on sed 2019-03-21 22:56:28 -04:00
Thom Wiggers
e811376a95
Do the test more properly 2019-03-19 15:20:59 +00: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
Joost Rijneveld
f0ffc59696
Add SHA224 for completeness 2019-03-11 16:50:00 +01:00
Joost Rijneveld
83810dcc47
Expose incremental SHA2 API 2019-03-11 16:50:00 +01:00
Joost Rijneveld
6d84aec3db
Add SHA256 2019-03-11 16:50:00 +01:00
Thom Wiggers
91c2fb59cf
Merge pull request #74 from PQClean/incremental-fips202
Add incremental API for SHAKE and SHA3
2019-03-11 15:19:36 +01:00
Joost Rijneveld
e959357f97
Remove fips202 test from all tests target
It's nice to be able to test this, but it does not need to happen
for every CI run.
2019-03-11 15:06:04 +01:00
Joost Rijneveld
760b5926c4
Add incremental SHA3 2019-03-07 17:01:23 +01:00
Joost Rijneveld
23178c4c32
Add incremental API for shake128 and shake256 2019-03-07 17:01:16 +01:00
Thom Wiggers
1399c7fd1f
Only ignore missing helper programs if not on CI
use randombytes in functest

Got dropped by the rebase

Work around missing clang-tidy on Travis

Also check if valgrind is available
2019-03-07 08:43:13 +01:00
Thom Wiggers
e450cd6042
Set modification time via os.utime
Hopefully quicker on Windows
2019-03-06 17:15:24 +01:00
Thom Wiggers
ff186b3dd6
Run AStyle if it is installed
Also try to install it on AppVeyor
2019-03-06 17:15:24 +01:00
Thom Wiggers
45e645c3a7
Fix Makefile.Microsoft_nmake header dependencies 2019-03-06 17:15:23 +01:00
Thom Wiggers
f25824246f
small improvements of reporting 2019-03-06 17:14:36 +01:00
Thom Wiggers
13867ab7b4
Fix tests on Windows 2019-03-06 17:14:36 +01:00
Thom Wiggers
dc1f7e204a
Add returncode support to helper.make 2019-03-06 17:14:35 +01:00
Thom Wiggers
7ad19a30a4
First start of windows test support 2019-03-06 17:14:31 +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
e74fcbecc0
Merge pull request #66 from PQClean/tidy-python
Move clang-tidy into python-based tests
2019-03-05 11:23:03 +01:00
Thom Wiggers
75be658074
Clean up tests
Modify the tests to no longer construct the classes multiple times and
to have them make use of the new helpers.make() function.
2019-03-04 17:02:46 +01:00
Thom Wiggers
4178768599
Skip clang-tidy if not available 2019-03-01 13:00:43 +01:00
Thom Wiggers
e8c4cf949b
Move clang-tidy into python-based tests 2019-03-01 11:44:22 +01:00
Matthias J. Kannwischer
7a36262f6a
Merge pull request #60 from PQClean/format-check-in-python
Add formatting tests to the python-based testing framework.
2019-03-01 11:27:37 +01:00
Thom Wiggers
facc293a21
Add format tests to python tests 2019-02-28 17:06:44 +01:00
Thom Wiggers
17c9840b57
Move valgrind tests to python-based testing framework 2019-02-28 16:45:15 +01:00
Thom Wiggers
dac7235643
Only skip ASAN on ppc with Clang 2019-02-28 16:44:10 +01:00
Thom Wiggers
53591961c9
Fix supported platform debug print 2019-02-28 16:32:24 +01:00
Thom Wiggers
ea47ab3dad
Fix arm platform names 2019-02-28 16:18:06 +01:00
Thom Wiggers
1180de5d30
Add environment to sanitizers on ARM 2019-02-28 16:17:58 +01:00
Thom Wiggers
73197c6516
Add sanitizers to functests 2019-02-28 16:17:06 +01:00
Thom Wiggers
f3e38dbfb2
Merge pull request #62 from PQClean/functestunalign
Un-align input byte arrays to catch assumptions about data alignment
2019-02-28 15:57:06 +01:00
Joost Rijneveld
da90b709d3
Merge pull request #58 from PQClean/containerized-build
Greatly simplify container builds
2019-02-28 15:56:54 +01:00
Thom Wiggers
3c81f6940d
Stupid typo 2019-02-28 13:42:04 +01:00
Thom Wiggers
7c5e671dac
Should fix the i386 build 2019-02-28 13:42:04 +01:00
Thom Wiggers
bd65daa615
Merge pull request #61 from PQClean/windows-W4
Set windows warnings to W4
2019-02-28 13:24:57 +01:00
Matthias J. Kannwischer
27344bd7ca un-align pointers. Resolves #24 2019-02-28 09:15:09 +01:00
Thom Wiggers
58aba49ca2
take out assignment in conditional because windows is not happy about it 2019-02-27 17:08:59 +01:00
Thom Wiggers
4d4504ac20
Set windows warnings to W4 2019-02-27 16:00:06 +01:00
Thom Wiggers
6f992f370f
Add sanity check to not just see if the scheme always rebuilds 2019-02-27 15:29:20 +01:00
Thom Wiggers
e29de416fb
Faster check of makefile dependencies
We do not actually need to compile the files.
2019-02-27 15:27:41 +01:00
Thom Wiggers
2b381e9a78
Merge pull request #54 from PQClean/no-dynamic-memory-allocations
Detect use of dynamic memory allocation functions
2019-02-27 14:24:11 +01:00
Joost Rijneveld
72007d3847
Detect use of dynamic memory allocation functions 2019-02-27 13:59:00 +01:00
Thom Wiggers
94224fb02c
Don't always Make clean
Undoes a7328f827c
2019-02-27 11:29:39 +01:00
Joost Rijneveld
0348ff7a11
Also include implementation namespace in Makefiles 2019-02-27 09:18:38 +01:00
Joost Rijneveld
879574b695
Include name of implementation in namespace 2019-02-27 09:18:38 +01:00
Douglas Stebila
2cb4cae4a4 Wrong source file for building functional tests 2019-02-26 20:46:09 -05:00
Douglas Stebila
2db9f22aac Compute touch timestamps in Python 2019-02-25 23:42:48 -05:00
Douglas Stebila
50801485f0 Add test to check that every .c / .h file triggers a library rebuild 2019-02-25 23:28:37 -05:00
Douglas Stebila
5f3e8ca2d5 Build functional tests and test vectors on Windows continuous integration 2019-02-25 21:40:43 -05:00
Douglas Stebila
a7328f827c Force rebuilding implementation when building test files 2019-02-19 10:02:25 -05:00
Douglas Stebila
19ebdd9ab4
Test for symbolic links (#42)
Test for symbolic links
2019-02-18 11:16:00 -05:00
Joost Rijneveld
2fbd02a076
Test for symbolic links
We disallow symbolic links to ensure implementations are standalone
and more portable.
2019-02-18 16:49:44 +01:00
Douglas Stebila
d07ce6389d Merge branch 'ds-test-vectors' into ds-make-headers 2019-02-18 10:24:10 -05:00
Douglas Stebila
0eb589ba2f Minor tweaks 2019-02-18 10:23:08 -05:00
Douglas Stebila
5297954630 Add dependency to header files in Makefile 2019-02-18 10:19:07 -05:00
Douglas Stebila
ae05ec9eba Merge branch 'master' into ds-test-vectors 2019-02-18 10:11:38 -05:00
Douglas Stebila
fde02ce2b1 Migrate test vector checks to pythonic testing framework 2019-02-18 10:07:01 -05:00
Joost Rijneveld
17fb1be01c
Ensure .a-file for scheme is up to date for tests 2019-02-18 15:06:46 +01:00
Douglas Stebila
c6dd00c6fa
Allow to easily run individual test modules and add instructions to README (#39)
Allow to easily run individual test modules and add instructions to README
2019-02-18 08:48:13 -05:00
Thom Wiggers
7168644c40
Also support nose2 2019-02-18 13:51:01 +01:00
Thom Wiggers
685098ce33
Allow to run the test modules as python3 module.py 2019-02-18 13:39:11 +01:00
Thom Wiggers
90071bfb97
Flake8ify python files 2019-02-18 13:04:59 +01:00
Douglas Stebila
d36626caac Move metadata check to Python testing framework 2019-02-16 10:07:59 -05:00
Douglas Stebila
ba359473b9 Remove old license check and reduce re-building 2019-02-14 11:36:24 -05:00
Douglas Stebila
e4c368ee49 Implement symbol namespace check using new Python testing framework. 2019-02-14 11:29:49 -05: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
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
72d514a6fe Call nose differently and add test documentation 2019-02-13 22:31:37 -05:00
Douglas Stebila
f64a7e0dd4 Reimplement Python tests using nose framework 2019-02-13 22:25:34 -05:00
Thom Wiggers
27a0eb47eb
Fix loading META.yml on Py35 2019-02-11 14:48:16 +01:00
Thom Wiggers
fe46514836
Include full clangformat config.
Hopefully stabilizes behaviour between versions.
2019-02-11 10:05:54 +01:00
Peter Schwabe
69e593427a Removed need for aligned types (which are not portable)
Resolves #22
2019-02-11 09:41:32 +01:00
d781d0d6ed enable undefined behaviour sanitizer 2019-02-09 01:09:46 +00:00
Thom Wiggers
c2747e6860
Further fix the zero return codes for bad kem ops 2019-01-29 17:32:30 +01:00
Thom Wiggers
8fe988fe51
Check META files (closes #6) 2019-01-29 17:25:29 +01:00
Thom Wiggers
37be4a2044
Don't fail if decapsulating with wrong keys doesn't return -1
Closes #11
2019-01-29 16:05:55 +01:00
Thom Wiggers
31449679bd
Partially validate return codes 2019-01-23 13:09:18 +01:00
Thom Wiggers
52671df19e
don't run the symbol namespace check on OSX 2019-01-23 12:42:52 +01:00
Thom Wiggers
07ca665f0b
Don't run Valgrind on OSX
It's poorly supported and reports false positives (See also #10)
2019-01-23 12:36:35 +01:00
Thom Wiggers
b657d988b4
Add success output to check_symbol_namespace
Otherwise Make is vague if it did anything
2019-01-23 12:12:08 +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
Thom Wiggers
d66bef0284
Install test dependencies and build on OSX GCC 2019-01-22 17:45:30 +01:00
Joost Rijneveld
8228363495
Include scheme namespace in tests 2019-01-22 17:40:27 +01:00
Thom Wiggers
e9015b4484
Add else condition because I was confused 2019-01-21 16:05:46 +01:00
Matthias J. Kannwischer
8c68841417 refactor testvector check 2019-01-18 14:45:14 +01:00
Matthias J. Kannwischer
f7fb850ecf check testvectors 2019-01-18 14:43:05 +01:00
Joost Rijneveld
dd445c1513
Add Python script to check function namespacing 2019-01-18 13:41:07 +01:00
Joost Rijneveld
e61a320aed
Move tests to separate directory 2019-01-17 17:44:55 +01:00