Commit Graph

2681 Commits (a090aad8d2bb30f71d0fb6162afece367b0c8034)

Author SHA1 Message Date
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
Jeffrey Walton 591b139343
Write MTIME in big-endian order
Whitespace
2017-05-12 15:29:03 -04:00
c0ff d901ecd9a4 Gunzip: added GetFilename() and GetComment() methods (#418)
Add Filename, Filtetime and Comment support to Gzip classes
2017-05-12 15:09:21 -04:00
Jeffrey Walton 973de7712a
Fix GetField for stray CR or LF
The test vector rsa_pkcs1_1_5.txt is the torture test. We calculated an incorrect index when a line continuation was part of a comment
2017-05-12 14:25:25 -04:00
Jeffrey Walton 3f9667f3cd
Remove VC++ 6.0 workaround in datatest.cpp 2017-05-12 03:50:37 -04:00
Jeffrey Walton b160cb40e1
Add comment concerning empty value 2017-05-12 03:09:06 -04:00
Jeffrey Walton d3986223a6
Add early continuation for parsing a continued line 2017-05-12 03:05:24 -04:00
Jeffrey Walton ac6db2fa91
Fix parser break on OS X
This was introduced at Commit e456cd2275, and affected Uri during his rounds of testing.
We also took the opportunity to write it in modern C++ (and remove the VC++ 6.0 bug workaround)
2017-05-12 02:20:44 -04:00
Jeffrey Walton 9850576d0b
Improve compressor error messages 2017-05-11 17:59:20 -04:00
Jeffrey Walton 35451f3ab6
Additional self tests for Decompressors 2017-05-11 13:00:17 -04:00
Jeffrey Walton 537ee61ade
Switch to _MSC_FULL_VER for SP1 releases 2017-05-11 12:05:57 -04:00
Jeffrey Walton aa287d6112
Fix compile under GCC 6.3 on Fedora 2017-05-11 11:55:00 -04:00
Jeffrey Walton 308336c4e1
Switch to COUNTOF in validat3.cpp 2017-05-11 11:18:52 -04:00
Jeffrey Walton 34edf7e12f
Fix subscript out of range in test 2017-05-11 04:14:13 -04:00
Jeffrey Walton ea5d003a9a
Move TestPolynomialMod2 to validat0.cpp 2017-05-11 03:56:19 -04:00
Jeffrey Walton c87b0d1485
Fix subscript out of range in test 2017-05-11 02:57:48 -04:00
Jeffrey Walton 598f838e0a
Reduce random string size.
Tests run faster without diminishing returns
2017-05-11 02:13:27 -04:00