Commit Graph

2847 Commits (e2c377effd9a4eca0291c217e9c3256b033511dc)

Author SHA1 Message Date
Jeffrey Walton 1be7d29af9
Update test script to exercise -DDISABLE_NATIVE_ARCH=1 2017-05-21 14:52:20 -04:00
Jeffrey Walton 2f58912fdd
Enable RDSEED and SHA for AMD processors
AMD donated a AMD Ryzen 7 1700X to the GCC Compile Farm. We were able to verify compatibility and correctness. Many thanks to AMD for the donation
2017-05-21 11:38:56 -04:00
Jeffrey Walton 5fd202077c
Add additional compilers for inline ASM (Issue 428) 2017-05-20 18:32:48 -04:00
Jeffrey Walton 9d2455a699
Add inline ASM for missing CRC intrinsics (Issue 428) 2017-05-20 18:03:53 -04:00
Jeffrey Walton bc0f943c6b
Add defines for GCC_INLINE and GCC_INLINE_ATTRIB (Issues 427 and 428) 2017-05-20 17:59:21 -04:00
Jeffrey Walton 8c02c60584
Add missing <sstream> header
This failed under C++03 builds. C++11 was OK, so it slipped past the initial smoke tests
2017-05-20 04:09:17 -04:00
Jeffrey Walton 1427f5ecf9
Clear coverity finding FORWARD_NULL (CID 147865) 2017-05-20 02:37:51 -04:00
Jeffrey Walton 1abb5c36bd Revert "Clear coverity finding FORWARD_NULL (CID 147865)"
This broke some self tests.
2017-05-20 02:20:25 -04:00
Jeffrey Walton 0bdbde2c21
Clear coverity finding FORWARD_NULL (CID 147865) 2017-05-20 02:12:43 -04:00
Jeffrey Walton 25fcb7bef8
Clear coverity finding CHECKED_RETURN (CID 147833) 2017-05-20 01:42:20 -04:00
Jeffrey Walton 555617d456
Clear coverity finding CONSTANT_EXPRESSION_RESULT (CID 147833) 2017-05-20 01:35:39 -04:00
Jeffrey Walton e0d856d0ca
Clear coverity finding CONSTANT_EXPRESSION_RESULT (CID 179384) 2017-05-20 01:27:23 -04:00
Jeffrey Walton 4fef9b8837
Rework benchmark code
This change moves test selections from test.cpp into bench.cpp. It also allows us finer control over test classes and algorithms
2017-05-19 23:29:59 -04:00
Jeffrey Walton 82accdc13b
Sort source list (Pull Request 426) 2017-05-19 20:12:29 -04:00
Bernhard M. Wiedemann 033fed8c92 have constant link order (#426)
Make builds reproducible
See https://reproducible-builds.org/ for why this is good.

Without this patch g++ would order functions in libcryptopp.so.5.6.5
depending on random order of files in the build system's filesystem.
2017-05-19 18:34:08 -04:00
Jeffrey Walton 9dcb72f9e5
Fix "error LNK2019: unresolved external symbol TestAutoSeededX917()" under Windows Phone 2017-05-18 09:35:09 -04:00
Jeffrey Walton a090aad8d2
Fix "warning C4702: unreachable code" under Windows Phone 2017-05-18 08:45:07 -04:00
Jeffrey Walton ddcd70b152
Fix "error C2065: prng undeclared identifier" under Windows Phone 2017-05-18 08:36:00 -04:00
Jeffrey Walton 3fe188ba89
Updated README with additional algorithms 2017-05-18 00:59:11 -04:00
Jeffrey Walton 1b1c32d7cf
Build RDRAND for all platofrms (Issue 419, PR 424)
We have not been able to determine a reliable way to detect cpu's and platforms with Cmake. We are side stepping the Cmake problem by building rdrand.cpp all the time. If its not avilable for a cpu or platform, then RDRAND or RDSEED throw an exception.
2017-05-17 16:21:20 -04:00
Jeffrey Walton 03a6a8fb73
Add separate Enc and Dec classes to Threefish
The change speeds up benchmarks for Threefish-256 and Threefish-512 by about 10 MiB/s on a 6th gen Skylake
2017-05-17 14:38:37 -04:00
Jeffrey Walton 5b81b5c66c
Updated test scripts for ARM NEON 2017-05-17 10:59:22 -04:00
Jeffrey Walton a59e32be73
Add missing Threefish test vectors to Filelist (Isse 422) 2017-05-16 04:49:33 -04:00
Jeffrey Walton c9d4ebb3d4
Cleared C4250 under MSVC (Issue 412) 2017-05-16 04:21:27 -04:00
Jeffrey Walton 5f0cbde980
Removed MSVC warning suppression for many warnings (Issue 412)
Most of these appear to have been cleared over the last couple of years.

C4127 is too prevelant. We are probably going to have to live with it.

We may be able to clear C4250 with a using statement. For example 'using ASN1CryptoMaterial::Load'.

MSVC resisted clearing C4661 by pushing/poping in iterhash.h and osrng.h. It was like MSVC simply ignored it.
2017-05-16 03:52:03 -04:00
Jeffrey Walton b083390d4f
Added some intelligence to truncated Gzip stream test 2017-05-16 01:59:09 -04:00
Jeffrey Walton 5bf43f4ef3
Add additional Threefish test vectors
The test vectors came from NIST submission archive (NIST_CD_102610), skein_golden_kat_short_internals.txt
2017-05-15 22:55:33 -04:00
Jeffrey Walton ae09662f43
Update Makefile to trim data files 2017-05-15 22:53:44 -04:00
Jeffrey Walton 30ac53ff41
Add support for word32 and word64 parsing 2017-05-15 21:55:39 -04:00
Jeffrey Walton 4da06919eb
Switch conversion switch from 'ce' to 'cvt'
There were some collisions in the RSA test vectors
2017-05-15 21:02:47 -04:00
Jeffrey Walton 30ac06dd0d
Fix substring length 2017-05-15 20:41:32 -04:00
Jeffrey Walton 7fd5c13e06
Fix PutDecodedDatumInto on OS X 2017-05-15 20:14:22 -04:00
Jeffrey Walton a61c97f7ee
Re-enable the Tweak on Threefish
We also add a helper to PutDecodedDatumInto which reverses the little-endian values from the Threefish test vectors. Test vectors will follow at next check-in.
2017-05-15 18:42:20 -04:00
Jeffrey Walton f60f212687
Remove Tweak handling.
We are arriving at incorrect result for G2 after the first Key Injection, and its not readily apparent why.
2017-05-15 14:38:24 -04:00
Jeffrey Walton b3399b4f86
Remove SSE2 intrinsics from Threefish
The benchmarks showed things ran slower with GCC and MSVC
2017-05-14 16:59:04 -04:00
Jeffrey Walton 54ca8b3a16
Whitespace check-in 2017-05-14 15:30:59 -04:00
Jeffrey Walton 32ab4af5ff
Add Threefish to project files
Whitespace check-in
2017-05-14 15:27:50 -04:00
Jeffrey Walton 8c34a5f7f5
Add Threefish block cipher (Issue 422) 2017-05-14 13:51:41 -04:00
Jeffrey Walton 7ee87af86b
Don't latch BlockSize or BlockPaddingScheme across tests 2017-05-14 05:26:33 -04:00
Jeffrey Walton 017f7f61b4
Rearrange characters in whitespace string
The arrangement saves about 1.3 seconds when running the test vectors. It looks like the tab character is dominant, so we profit by listing it first.
2017-05-14 04:09:26 -04:00
Jeffrey Walton 2c570e27a0
Explicitly add space on line continuation
Formatting of data for a failed self test was still off a bit. It was due to retaining a whitespace character from the test vector file. The problem was, the whitespace was a tab on occasion.
2017-05-14 02:41:22 -04:00
Jeffrey Walton bc2678478c
Add polynomial for 1024-bit block cipher.
This will support Threefish and its 1024-bit block size. I believe this is correct, but it may be wrong. According to "Table of Low-Weight Binary Irreducible Polynomials" (http://www.hpl.hp.com/techreports/98/HPL-98-135.pdf), the polynomial is x^1024 + x^19 + x^6 + x + 1.
2017-05-13 19:23:24 -04:00
Jeffrey Walton cea45eb024 Revert "Add polynomial for 1024-bit block cipher."
This reverts commit d654c893ef. The polinomial for 1024-bit block sizes had a typo.
2017-05-13 19:18:24 -04:00
Jeffrey Walton d654c893ef
Add polynomial for 1024-bit block cipher.
This will support Threefish and its 1024-bit block size. I believe this is correct, but it may be wrong. According to "Table of Low-Weight Binary Irreducible Polynomials" (http://www.hpl.hp.com/techreports/98/HPL-98-135.pdf), the polynomial is x^1024 + x^19 + x^6 + x + 1.
2017-05-13 19:15:46 -04:00
Jeffrey Walton 7697857481
Add polynomial for 512-bit block ciphers
I believe this is correct, but it may be wrong. According to the Kalyna team, the polynomial for GCM mode is x^512 + x^8 + x^5 + x^2 + 1. It appears the polinomial applies to other block cipher modes of operations, like CMAC.Dropping the first term and evaluating the remaining terms at X=2 results in 293 (0x125)
2017-05-13 17:36:29 -04:00
Jeffrey Walton e226523b05
Call cipher.SetKey() before cipher.BlockSize() (Issue 408)
Variable block size ciphers need the key set before they can return an accurate size for BlockSize(). This issue surfaced during Kalyna testing with authenticated encryption modes. In particular, EAX mode, which effectively uses CMAC:

    AlgorithmParameters params = MakeParameters(Name::BlockSize(), 64)
        (Name::IV(), ConstByteArrayParameter((const byte *)iv, 64));

    EAX<Kalyna>::Encryption kalyna;
    kalyna.SetKey(key, 64, params);
2017-05-13 16:28:05 -04:00
Jeffrey Walton 0611e11507
Disable word128 for PPC64 and GCC 4.8 (Issue 421) 2017-05-12 23:51:27 -04:00
Jeffrey Walton 78db20d939
Add FileName, FileTime and Comment to argnames.h
Add self tests to verify handling of filenames, filetimes and comments
2017-05-12 19:52:42 -04:00
Jeffrey Walton e3ae7000ea
Whitespace check-in 2017-05-12 16:53:07 -04:00
Jeffrey Walton cfa339535b Revert "Write MTIME in big-endian order"
This reverts commit 591b139343. RFC 1952 states the bytes are written in little-endian order, not big-endian. That includes MTIME.
2017-05-12 16:51:03 -04:00