Jeffrey Walton
2ba3c1fc73
Update documentation
2018-12-23 18:27:56 -05:00
Tanzinul Islam
b5142e044f
Use SSE2 intrinsics header in sse_simd.cpp only if needed ( #759 )
...
Embarcadero C++Builder v10.3 [has a bug](https://quality.embarcadero.com/browse/RSP-22883 ) where its old Intel intrinsics headers try to use retired Clang builtins and fail to compile. In devising a workaround with `-DCRYPTOPP_DISABLE_ASM`, I found that `sse_simd.cpp` includes `<emmintrin.h>` even when its code doesn't need the intrinsics.
With this patch, `-DCRYPTOPP_DISABLE_ASM` will be a sufficient workaround because `CRYPTOPP_SSE2_INTRIN_AVAILABLE` is derived from it in `config.h`.
2018-12-23 08:49:39 -05:00
Shmueli Englard
fc87f8666a
Add check for VS version and ExtendedControlRegister (PR #766 )
2018-12-21 19:54:24 -05:00
hygonsoc
6dfb428f10
Add Hygon Dhyana support to enable RDRAND/RDSEED/ADX/AVX2 Feature (PR #765 )
...
Hugh, interesting.
Thank you very much.
Ping @randombit. Botan may want or need this, too.
2018-12-20 17:33:16 -05:00
Jeffrey Walton
398964b87d
Add curve ids for x25519, ed25519, x448 and ed448
...
Also see https://tools.ietf.org/html/draft-ietf-curdle-pkix
2018-12-18 17:53:39 -05:00
Jeffrey Walton
4f7e2c984d
Make test vectors text files in VS filter file
2018-12-15 04:51:30 -05:00
Jeffrey Walton
33cb5e63ab
Add Test vectors and data to VS project files
2018-12-15 04:39:12 -05:00
Jeffrey Walton
704762ba2c
Add Test vectors and data to VS project files
2018-12-15 04:24:30 -05:00
Jeffrey Walton
9b5b3f4c13
Update vs2005.zip after x25519 cut-in (GH #761 )
2018-12-15 03:37:40 -05:00
Jeffrey Walton
67f6a1f0bd
Clear warning C4702: unreachable code
2018-12-14 15:39:54 -05:00
Jeffrey Walton
5226761662
Whitespace check-in
2018-12-14 13:44:10 -05:00
Jeffrey Walton
1b49bdc420
Enable x25519 SSE2 for MS compilers (GH #761 )
2018-12-14 13:43:01 -05:00
Jeffrey Walton
17d7a70501
Backout change to validate3.cpp
...
It was modified for local testing, and cross-pollinated into the last commit.
2018-12-14 12:25:15 -05:00
Jeffrey Walton
4f64bb8eb3
Clear warning C4163: '_umul128' : not available as an intrinsic function
2018-12-14 12:23:18 -05:00
Jeffrey Walton
91e5844625
Enable x25519 64-bit code path for Microsoft compilers
2018-12-14 12:17:50 -05:00
Jeffrey Walton
235c615a10
Make TestCurve25519 available in Release builds
2018-12-14 12:15:58 -05:00
Jeffrey Walton
00f777661d
Update comments and documentation
2018-12-14 04:35:07 -05:00
Jeffrey Walton
6f2188af79
Use byte instead of unsigned char
2018-12-14 04:19:03 -05:00
Jeffrey Walton
cac977856a
Clear alginment warning with Clang
...
The data is aligned, but Clang issues warning based on type and not the actual alignment of the variable and data.
2018-12-14 04:14:44 -05:00
Jeffrey Walton
d35124f304
Make SSE2 configurable via CRYPTOPP_SSE2_INTRIN_AVAILABLE
...
Benchmarking shows things run a little slower with SSE2 on modern Core i5's. Also update comments and links
2018-12-14 03:17:04 -05:00
Jeffrey Walton
67af746743
Update comments
2018-12-14 02:14:20 -05:00
Jeffrey Walton
c0150ed4bd
Fix placement of align attribute for 32-bit
2018-12-14 02:00:55 -05:00
Jeffrey Walton
6dc60888d9
Fix the cut-in of Moon's implementation (GH #761 )
...
The initial cut-in was missing preamble present in Moon's curve25519_donna function. It originally tested good because we only perform a pairwise consistency check in release builds. Comprehensive testing with debug builds revealed the problem. Debug builds cross-validate against Bernstein's TweetNaCl library.
2018-12-13 20:34:39 -05:00
Jeffrey Walton
8c3432473b
Update comments
2018-12-13 18:51:15 -05:00
Jeffrey Walton
27cd177209
Fix the cut-in of Moon's implementation (GH #761 )
...
The initial cut-in was missing preamble present in Moon's curve25519_donna function. It originally tested good because we only perform a pairwise consistency check in release builds. Comprehensive testing with debug builds revealed the problem. Debug builds cross-validate against Bernstein's TweetNaCl library.
2018-12-13 18:50:42 -05:00
Jeffrey Walton
eb749783da
Fix the cut-in of Moon's implementation (GH #761 )
...
The initial cut-in was missing preamble present in Moon's curve25519_donna function. It originally tested good because we only perform a pairwise consistency check in release builds. Comprehensive testing with debug builds revealed the problem. Debug builds cross-validate against Bernstein's TweetNaCl library.
2018-12-13 18:22:34 -05:00
Jeffrey Walton
83ddeadb65
Make clamped and small order tests static class members
2018-12-13 16:16:40 -05:00
Jeffrey Walton
b19abcde1f
Cleanup donna files
2018-12-13 14:17:36 -05:00
Jeffrey Walton
560c332f19
Cutover to Andrew Moon's 64-bit code (GH #761 )
...
The code is public domain without license restrictions. It is also faster than Langley's original implementation.
2018-12-13 13:25:22 -05:00
Jeffrey Walton
5f8dcbbb37
Cleanup Moon's donna_32.cpp
2018-12-13 13:24:14 -05:00
Jeffrey Walton
adf109a953
Cutover to Andrew Moon's 32-bit code (GH #761 )
...
The code is public domain without license restrictions. It is also faster than Langley's original implementation.
2018-12-13 12:03:41 -05:00
Jeffrey Walton
9156c49555
Update comments
2018-12-13 11:57:52 -05:00
Jeffrey Walton
c76f50ebbb
Add missing header guard
2018-12-13 11:33:26 -05:00
Jeffrey Walton
26fc727f8f
Increase precision on OutputResultOperations
...
Andrew Moon's x25519 SSE2 code broke reporting because it was too fast.
2018-12-13 10:48:07 -05:00
Jeffrey Walton
12e9d137b2
Fix copy/paste error
...
32-bit was copied into 64-bit, including the oversized declarations.
2018-12-13 10:27:35 -05:00
Jeffrey Walton
152ac6177c
Add Moon's curve25519 using SSE2 (GH #761 )
...
Moon's code is very fast. In fact it is so fast it broke our benchmarks. Moon's code registers 0.00 milliseconds and 0.00 megacycles/operation.
2018-12-13 10:19:54 -05:00
Jeffrey Walton
20f4d22055
Fix compile on 32-bit MIPS (GH #761 )
...
Testing on a ci20 dev-board with Debian 5 and GCC 4
2018-12-13 04:21:38 -05:00
Jeffrey Walton
0bdacf1496
Fix missing semi-colon in non-ASM path
2018-12-13 03:39:01 -05:00
Jeffrey Walton
459035fcaa
Cleanup donna_32.cpp arithmetic shift
2018-12-12 22:52:15 -05:00
Jeffrey Walton
a09d4024b7
Perform both is_clamped and is_small_order at level 2 validation
2018-12-12 10:48:53 -05:00
Jeffrey Walton
220ae9b914
Update documentation
2018-12-12 10:35:00 -05:00
Jeffrey Walton
b5cf4ff307
Remove unneeded TYPE_OF_SOCKLEN_T define.
...
This should have been removed at GH #208 , PR #703 .
2018-12-12 10:16:15 -05:00
Jeffrey Walton
131397ba5a
Documented Donna namespace for curve25519
2018-12-12 10:14:27 -05:00
Jeffrey Walton
0ad50c61ed
Switch to library integer types
...
The standard ints will cause trouble on older versions of Visual Studio. It looks like they were missed at the initial cut-in.
2018-12-12 09:48:41 -05:00
Jeffrey Walton
d481922a50
Re-enable UBsan tests on Travis
...
The Xenial image and the Xcode 10.1 toolchain are mature enough to enable the sanitizer.
2018-12-12 09:34:09 -05:00
Jeffrey Walton
3d98320b1e
Fix compile on 32-bit SunCC (GH #761 )
2018-12-12 09:05:56 -05:00
Jeffrey Walton
80c551121f
Remove duplicate test run
...
The test vector collection is run earlier in the process.
2018-12-12 05:59:20 -05:00
Jeffrey Walton
e97d6d0ff5
Fix failed self test when NO_OS_DEPENDENCE (GH #761 )
...
Add is_clamped for secret key validation.
Cleanup paramter names in Donna::curve25519 to follow function.
Overload Donna::curve25519 to implicitly use base point if not provided.
Add additional asserts to let the code debug itself.
Update documentation.
2018-12-12 03:56:09 -05:00
Jeffrey Walton
80776453f8
Fix x25519 test data (GH #761 )
2018-12-12 03:55:56 -05:00
Jeffrey Walton
34d42b6998
Cut-in x25519 weak points and validation
2018-12-11 18:26:44 -05:00