Commit Graph

4498 Commits

Author SHA1 Message Date
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