Commit Graph

531 Commits

Author SHA1 Message Date
Jeffrey Walton
2d011dff34
Cleared GCC warning with -Wall 2018-01-20 17:09:23 -05:00
Jeffrey Walton
65963c5504
Fix Android x86 and x86-64 cross-compilesexit 2018-01-20 13:54:02 -05:00
Jeffrey Walton
5cee4a6573
Improve logic for <arm_acle.h> include (GH #568) 2018-01-20 13:23:41 -05:00
Jeffrey Walton
5adfe4e812
Sync setenv scripts 2018-01-20 12:46:34 -05:00
Jeffrey Walton
600fa4d107
Clear unary minus on unsigned warning under MSVC 2018-01-19 20:09:02 -05:00
Jeffrey Walton
347c0e56c6
Clear Coverity finding CID 186949
The finding is "Overflowed return value", and it is rooted in the constant time code bit manipulations
2018-01-19 18:28:56 -05:00
Jeffrey Walton
0bb73e7035
Add _unchecked versions of crypto_box, crypto_box_open and crypto_box_beforenm
This check-in adds three additional functions for backwards compatibility: crypto_box_unchecked, crypto_box_open_unchecked and crypto_box_beforenm_unchecked. The functions can be used for interoperability with downlevel clients, like old versions of NaCl and libsodium. It should also help some cryptocurrencies, like Bitcoin, Ethereum, Monero and Zcash.

Also see https://eprint.iacr.org/2017/806.pdf (low order element attack) and https://github.com/jedisct1/libsodium/issues/662 (Zcash break).
2018-01-18 12:43:57 -05:00
Jeffrey Walton
13ea8f374f
Add interface to TweetNaCl library (#566)
TweetNaCl is a compact reimplementation of the NaCl library by Daniel J. Bernstein, Bernard van Gastel, Wesley Janssen, Tanja Lange, Peter Schwabe and Sjaak Smetsers. The library is less than 20 KB in size and provides 25 of the NaCl library functions.

The compact library uses curve25519, XSalsa20, Poly1305 and SHA-512 as default primitives, and includes both x25519 key exchange and ed25519 signatures. The complete list of functions can be found in TweetNaCl: A crypto library in 100 tweets (20140917), Table 1, page 5.

Crypto++ retained the function names and signatures but switched to data types provided by <stdint.h> to promote interoperability with Crypto++ and avoid size problems on platforms like Cygwin. For example, NaCl typdef'd u64 as an unsigned long long, but Cygwin, MinGW and MSYS are LP64 systems (not LLP64 systems). In addition, Crypto++ was missing NaCl's signed 64-bit integer i64.

Crypto++ enforces the 0-key restriction due to small points. The TweetNaCl library allowed the 0-keys to small points. Also see RFC 7748, Elliptic Curves for Security, Section 6.

TweetNaCl is well written but not well optimized. It runs 2x to 3x slower than optimized routines from libsodium. However, the library is still 2x to 4x faster than the algorithms NaCl was designed to replace.

The Crypto++ wrapper for TweetNaCl requires OS features. That is, NO_OS_DEPENDENCE cannot be defined. It is due to TweetNaCl's internal function randombytes. Crypto++ used DefaultAutoSeededRNG within randombytes, so OS integration must be enabled. You can use another generator like RDRAND to avoid the restriction.
2018-01-17 22:02:09 -05:00
Jeffrey Walton
166d3f4363
Add C++20 elevated warnings test 2018-01-14 03:34:25 -05:00
Jeffrey Walton
3360e97ad9
Add C++20 testing to cryptest.sh
This is initial testing support for N4713, "Working Draft, Standard for Programming Language C++". We know GCC uses -std=c++20 and -std=gnu++20, so we can start testing things
2018-01-06 05:00:24 -05:00
Jeffrey Walton
e56caf72ec
Fix unwanted Git mode change 2017-12-15 19:13:20 -05:00
Jeffrey Walton
7aa3377bbd Prepare for changes to support latest NDK liek r16 (GH #546) 2017-12-15 19:10:02 -05:00
Jeffrey Walton
5856ab5a7e
Add Valgrind suppression file for Salsa20 and runtime's __memcmp_sse4_1 2017-12-08 17:46:44 -05:00
Jeffrey Walton
dbd79a1e49
Fix GCC inline asm register constraint for SSE register
Also see https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html
2017-11-17 01:01:12 -05:00
Jeffrey Walton
3c537f3e02
Remove master-merge script
We don't use branches for development because they pollute the logs on Master
2017-11-16 12:55:38 -05:00
Jeffrey Walton
156fedea7f Revert "Remove master-merge script"
This reverts commit d3dc091. A version number change used to build the docs cross-pollinated into the deletion of the script.
2017-11-16 12:53:33 -05:00
Jeffrey Walton
d3dc09120b
Remove master-merge script
We don't use branches for development because they pollute the logs on Master
2017-11-16 12:51:33 -05:00
Jeffrey Walton
4ec1f89ac6
Fix minimum arch test on OS X with MacPort compiler 2017-11-14 00:47:20 -05:00
Jeffrey Walton
91b8d85f4c
Fix SunCC compile with -xarch=sse2
Fix copy/paste messages in cryptest.sh
2017-11-13 19:10:15 -05:00
Jeffrey Walton
4990129f0f
Add summary total back 2017-11-13 17:32:26 -05:00
Jeffrey Walton
f56e4e193f
Fix summary output in cryptest.sh 2017-11-13 16:57:03 -05:00
Jeffrey Walton
51eca5dd87
Change sed strings for cryptest.sh 2017-11-13 12:11:31 -05:00
Jeffrey Walton
6fa0d8429d
Add shared object and dynamic library tests (GH #533) 2017-11-12 20:32:41 -05:00
Jeffrey Walton
8e06391ad3
Update setenv-ios.sh to export tools
This is needed for Autotools and cross-compiles. GNUmakefile-cross does not use it
2017-11-10 09:30:47 -05:00
Jeffrey Walton
fdc262e884
Add tests for CRYPTOPP_NO_CXX11 to cryptest.sh (GH #529) 2017-11-06 09:10:37 -05:00
Jeffrey Walton
5d7175bf03
Fix permissions 2017-11-05 07:22:18 -05:00
Jeffrey Walton
bbf10b1250
Remove cryptest-windows.pl
It was useless fodder
2017-11-01 09:44:45 -04:00
Jeffrey Walton
dcabbd2112
Fix Elevated Warnings test
We were using HAVE_GCC and HAVE_CLANG instead of GCC_COMPILER and CLANG_COMPIELR
2017-10-30 08:33:16 -04:00
Jeffrey Walton
5be2c777f7
Disable ShellCheck SC2181 warning in cryptest.sh
Add tests for Support for Control-flow Enforcement Technology (CET). This is an upcoming processor feature. We want to be out in front of breaks to our inline assembly
2017-10-30 08:19:50 -04:00
Jeffrey Walton
1eb49a8db6
Fix CPU frequency of 0 in script 2017-10-27 13:20:22 -04:00
Jeffrey Walton
27aa70c240
Fix checkshell warnings 2017-10-26 12:03:20 -04:00
Jeffrey Walton
9df87dc7d4
Cleanup cryptest.sh a bit 2017-10-16 06:39:50 -04:00
Jeffrey Walton
55fe79e5ee
Add governor.sh to run benchmarks from a performance state on Linux
The script is based on code by Andy Polyakov, http://www.openssl.org/~appro/cryptogams.
2017-10-08 14:12:16 -04:00
Jeffrey Walton
6102333fc3
Add CRYPTOPP_NO_CPU_FEATURE_PROBES (GH #511)
We determine machine capabilities by performing an os/platform *query* first, like getauxv(). If the *query* fails, we move onto a cpu *probe*. The cpu *probe* tries to exeute an instruction and then catches a SIGILL on Linux or the exception EXCEPTION_ILLEGAL_INSTRUCTION on Windows. Some OSes fail to hangle a SIGILL gracefully, like Apple OSes. Apple machines corrupt memory and variables around the probe.
2017-09-19 21:08:37 -04:00
Jeffrey Walton
1661ff127a
Fix dead code strip test on AIX 2017-09-18 02:45:03 -04:00
Jeffrey Walton
cc855dd181
Update cryptest-android.sh file with LLVM 2017-09-18 02:26:50 -04:00
Jeffrey Walton
f3c04dbcb7
Remove CMake testing support (GH #506)
CMake can now be found at http://www.cryptopp.com/wiki/CMake. The Cmake project files are now maintianed by the community.
2017-09-16 21:23:35 -04:00
Jeffrey Walton
e891347212
Clear TODO items for setenv-android.sh for 6.0 (GH #491) 2017-09-13 19:37:48 -04:00
Jeffrey Walton
40859a80da
Improve detection of ANDROID_NDK_ROOT
We were searching for R10 NDK's, but Android is at R15 in 2017
2017-09-13 17:00:52 -04:00
Jeffrey Walton
6e1a07025c
Build Android cpu-features from sources (GH #491)
Thanks to Deadpikle for suggesting the strategy
2017-09-13 07:16:41 -04:00
Jeffrey Walton
fcee76594c
Make armv7a-neon the default in 2017 with NDK R15 2017-09-13 05:22:19 -04:00
Jeffrey Walton
2375e87a5c
Fix unterminated close paren 2017-09-13 04:09:44 -04:00
Jeffrey Walton
66c84a9af4
Fix failed feature detections under IBM XL C/C++ compiler 2017-09-09 18:44:08 -04:00
Jeffrey Walton
e6f19111e0
Fix IBM XL C/C++ compiler version output in test script 2017-09-09 16:26:16 -04:00
Jeffrey Walton
2118ce8fea
Add Power8 support to cryptest.sh 2017-09-09 14:56:47 -04:00
Jeffrey Walton
a57cd5e193
Update test script 2017-09-02 06:18:08 -04:00
Jeffrey Walton
5b12be29e6
Update test script 2017-09-01 20:38:57 -04:00
Jeffrey Walton
6c35eaf737
Update test script for AIX 2017-08-31 08:05:48 -04:00
Jeffrey Walton
5cd854b2d3
Update comments 2017-08-30 21:47:05 -04:00
Jeffrey Walton
de8478af2a
Add ARMv7-a NEON tests (GH #481)
The tests were already present; they just needed some tuning
2017-08-30 19:31:11 -04:00
Jeffrey Walton
1aecb3d4ad
Use optimization level -O3 for release testing (GH #454)
This change should have been made with Commit 18a05659f3
2017-08-30 08:32:20 -04:00
Jeffrey Walton
796a5c1a02
Remove PLATFORM_CXXFLAGS tests (GH #481)
cryptest.sh still needs some tweaking from the recent changes
2017-08-30 07:58:34 -04:00
Jeffrey Walton
c06995a71b
Consistent use of grep and sed (GH #476)
MinGW is really messing things up for us.
2017-08-29 08:57:04 -04:00
Jeffrey Walton
a403c32cf2
Remove DISABLE_NATIVE_ARCH from test script (GH #380) 2017-08-25 19:59:34 -04:00
Jeffrey Walton
a6ddb5ec40
Remove Platform CXXFLAGS test
Add CMake build tests
Add Sun Studio 12.6 tests
2017-08-25 13:58:34 -04:00
Jeffrey Walton
0b31a12534
Fix missing backslash 2017-08-18 04:53:22 -04:00
Jeffrey Walton
e2c377effd Split source files to support Base Implementation + SIMD implementation (GH #461)
Split source files to support Base Implementation + SIMD implementation
2017-08-17 12:33:43 -04:00
Jeffrey Walton
e19fad007f
Fix library version number in script 2017-08-16 05:36:11 -04:00
Jeffrey Walton
93f085c44c
Fix test script when running on machine with RO mount of / 2017-08-14 19:31:36 -04:00
Jeffrey Walton
f8e77e0fe6
Add Apple Watch and TV to Travis testing 2017-08-14 07:54:10 -04:00
Jeffrey Walton
effa446a61
Fix test script when running on machine with RO mount of / 2017-08-14 01:48:11 -04:00
Jeffrey Walton
9a3f45cee6
Update VCXPROJ files for AppVeyor testing 2017-08-04 00:10:11 -04:00
Jeffrey Walton
64c098fbae Revert "Reinstate commit ac513c06f8c80"
This broke MSbuild, which can no longer build a static library. Attempting to build with 'msbuild /t:Build cryptlib.vcxproj' results in:

  ...
  X64\cryptlib\Debug\zinflate.obj
  X64\cryptlib\Debug\zlib.obj
  LINK : fatal error LNK1561: entry point must be defined [c:\Users\cryptopp\cryptlib.vcxproj]
  Done Building Project "c:\Users\Jeff\Desktop\cryptopp\cryptlib.vcxproj" (Build target(s)) -- FAILED.

Microsoft tools are so fucked up. It should be illegal to sell them.
2017-08-03 05:22:03 -04:00
Jeffrey Walton
1702c93b30
Reinstate commit ac513c06f8c80
Even though it breaks AppVeyor worse, its needed that way. Also see https://stackoverflow.com/a/45458443/608639.
2017-08-03 04:34:56 -04:00
Jeffrey Walton
a8084ae440
Add script to change library version numbers 2017-08-03 02:00:09 -04:00
Jeffrey Walton
fe9eb75dd2
Suppress warnings C4231, C4355 and C4505 (Issue 412)
This should not cross-pollinate like when they were present in config.h
2017-08-02 23:25:54 -04:00
Jeffrey Walton
77d2e4eaf5
Add AppVeyor rule to makefile
This should sidestep some problems we are experiencing with AppVeyor during x64 builds. Specifically, the missing VCUpgrade.exe and the poor job it does when upgrading our project for the platform\'s tools.
This recipe takes cryptlib.vcxproj and cryptest.vcxproj, and copies it into TestScripts. This ensures TestScripts always has the latest Visual Studio project files. Then, the recipe changes PlatformToolset to the undocumented $\(DefaultPlatformToolset\). Finally, our AppVeyor test script will copy TestScripts/*.vcxproj into PWD before executing MSbuild.
Also see http://stackoverflow.com/questions/43423761/cant-perform-64-bit-testing-under-appveyor, http://stackoverflow.com/questions/45452145/how-to-set-platformtoolset-property-from-msbuild and  http://stackoverflow.com/questions/43441273/how-to-run-vcupgrade-before-appveyor-build
2017-08-02 22:01:16 -04:00
Jeffrey Walton
50d1ea8314
Cleared fall through warnings under GCC 7 (Issue 441) 2017-07-17 04:48:28 -04:00
Jeffrey Walton
81c751314b
Add reset-fork script to testing 2017-05-28 16:11:28 -04:00
Jeffrey Walton
84e6961457
Updated makefile trim and convert rules
Whitespace check-in
2017-05-26 10:08:44 -04:00
Jeffrey Walton
3bb801101f
Updated test script 2017-05-26 09:29:05 -04:00
Jeffrey Walton
554ce2c577
Updated test script 2017-05-26 05:28:51 -04:00
Jeffrey Walton
6055aac84f
Updated test script 2017-05-26 04:36:38 -04:00
Jeffrey Walton
167d4ae1a5
Updated test script 2017-05-26 04:27:45 -04:00
Jeffrey Walton
306c88c857
Updated test script 2017-05-26 04:03:38 -04:00
Jeffrey Walton
b65ec291ea
Updated test script 2017-05-25 00:04:45 -04:00
Jeffrey Walton
1be7d29af9
Update test script to exercise -DDISABLE_NATIVE_ARCH=1 2017-05-21 14:52:20 -04:00
Jeffrey Walton
5b81b5c66c
Updated test scripts for ARM NEON 2017-05-17 10:59:22 -04:00
Jeffrey Walton
64f1b50b7f
Add pclmulqdq for OS X disassembly tests 2017-04-24 03:05:37 -04:00
Jeffrey Walton
422600c5b8
Update scripts for testing 2017-04-23 07:38:25 -04:00
Jeffrey Walton
4478e4cf39
Removed Unified ASM and Modern Compiler tests
Unified adds no value, and modern compilers are already tested
2017-04-22 21:22:32 -04:00
Jeffrey Walton
f818d4e50f
Updated code generation tests 2017-04-22 16:27:37 -04:00
Jeffrey Walton
e55560e1a2
Update Coverity modeling file 2017-03-15 15:46:23 -04:00
Jeffrey Walton
ab1477c7a5
Add GCC 7 warning checks (Issue 383) 2017-03-01 23:40:47 -05:00
Jeffrey Walton
11f0186fd0
Add DragonFly support to cryptest.sh 2017-02-19 22:30:02 -05:00
Jeffrey Walton
e757fad5ba
Add MOVBE test. Add guard for use of C++11 2017-01-27 13:48:01 -05:00
Jeffrey Walton
aaf43e3f1d Updated variable names 2017-01-27 06:31:55 -05:00
Jeffrey Walton
52f13eca9b
Add armv8 and aarch64 options in addition to arm64 2017-01-13 05:39:04 -05:00
Jeffrey Walton
9cc01defde
Add test for CRYPTOPP_INIT_PRIORITY=0
Once we made config.recommend the default, we needed to start testing the disabling of init_priority
2017-01-01 17:47:33 -05:00
Jeffrey Walton
61a2b285f1
Removed deprecated declaration workarounds
Commit bfbcfeec7c and Issue 345 was cleared some time ago. The warning suppression is no longer needed
2017-01-01 17:20:57 -05:00
klemens
5a5c633073 spelling fixes 2016-12-27 18:34:57 +01:00
Jeffrey Walton
06f79d904d
Remove vectorization test. This one test needs to be in its own script 2016-12-24 07:25:12 -05:00
Jeffrey Walton
40230dd3bf
Removed MAINTAIN_BACKWARDS_COMPATIBILITY_562 (Issue 70) 2016-12-03 00:32:07 -05:00
Jeffrey Walton
d91244a657
Sync'd cryptest.sh. Cleared shadow variable warning in poly1305.cpp 2016-12-01 21:11:48 -05:00
Jeffrey Walton
6970ef702d
Add Intel SHA1 code generation tests 2016-11-30 21:13:45 -05:00
Jeffrey Walton
6d898321e4
Fix cryptest-symbols.sh to account for bench.cpp rename (Issue 337) 2016-11-23 15:17:46 -05:00
Jeffrey Walton
8e4942bbfc
Add untracked files that git was not able to track when asked to perform a 'git mv' 2016-11-12 04:42:53 -05:00
Jeffrey Walton
a87092f123
Updated messages 2016-11-07 21:01:34 -05:00
Jeffrey Walton
4a4b9b14e4
Add additional error chcking 2016-11-07 09:56:24 -05:00
Jeffrey Walton
0d753f8014
Add additional error chcking 2016-11-07 09:28:55 -05:00
Jeffrey Walton
9866a7d148
Fix script on Solaris 2016-11-07 07:35:06 -05:00
Jeffrey Walton
795e47add6
Updated messages 2016-11-07 07:20:14 -05:00
Jeffrey Walton
b38edd49d8
Switch test params to 5.6.5 and Master 2016-11-07 06:20:24 -05:00
Jeffrey Walton
e4ddc44957
Add prompt to guard resetting local repo 2016-11-07 05:55:48 -05:00
Jeffrey Walton
4c67ae7168
Improve feedback messages 2016-11-07 05:44:18 -05:00
Jeffrey Walton
9ffd34a1c7
Sync cryptest.sh with TestScripts/cryptest.sh 2016-11-07 05:30:38 -05:00
Jeffrey Walton
c52ad8905f
Use latest makefile for building lastest library. Whitespace cleanup 2016-11-07 03:13:56 -05:00
Jeffrey Walton
385a3914d6
Add cryptest-symbols.sh to test for symbol changes in shared object across version 2016-11-07 02:52:34 -05:00
Jeffrey Walton
8cbb7a9500
$X86_OPTS → ${X86_OPTS[@]} 2016-10-26 04:24:41 -04:00
Jeffrey Walton
2cd0fc993a
Add GNUmake $strip to cleanup CXXFLAGS. Fols cryptest.sh tests 2016-10-26 03:53:28 -04:00
Jeffrey Walton
270a8d1cbb
Added SSE2/AESNI/RDRAND/RDSEED test 2016-10-26 03:10:52 -04:00
Jeffrey Walton
e8c55465d8
Fixed comment character. Added maximum compression 2016-10-10 06:06:02 -04:00
Jeffrey Walton
8fafb4e98c
Add cryptdll-windows.cmd to TestScripts 2016-10-06 00:02:33 -04:00
Jeffrey Walton
bcb7dffd5e
Update Windows test script 2016-10-02 02:12:50 -04:00
Jeffrey Walton
856d3d5508
Fixed Perl string expansion 2016-10-01 16:22:59 -04:00
Jeffrey Walton
46a4385db5
Add cryptest-windows.pl script 2016-10-01 14:44:40 -04:00
Jeffrey Walton
9b64112a11
Whitespace cleanup 2016-10-01 02:02:51 -04:00
Jeffrey Walton
fd64929389
Add benchmark tests 2016-09-30 16:58:27 -04:00
Jeffrey Walton
e2943d4530
Add coverity-macosx.txt instructions 2016-09-30 15:47:47 -04:00
Jeffrey Walton
639a11c74a
Update coverity-windows.txt to clean old artifacts 2016-09-29 15:29:31 -04:00
Jeffrey Walton
afe391571b
Make Singleton<Integer> static with function scope (Issue 310)
This may not fix the issue. Drilling into the issue from the web-based dashboard, Coverity is targeting:

    1. noescape: CryptoPP::Integer::operator =(CryptoPP::Integer const &) does not free or save its parameter t.

3049 Integer& Integer::operator=(const Integer& t)
3050 {
3051   if (this != &t)
3052   {
3053     if (reg.size() != t.reg.size() || t.reg[t.reg.size()/2] == 0)
3054       reg.New(RoundupSize(t.WordCount()));
3055     CopyWords(reg, t.reg, reg.size());
3056     sign = t.sign;
3057   }
3058   return *this;
3059 }
2016-09-29 14:31:54 -04:00
Jeffrey Walton
f61b9eda2e
Add Coverity modeling file 2016-09-29 13:09:10 -04:00
Jeffrey Walton
6a13f4f308 Add coverity-windows.txt script and instructions 2016-09-29 05:57:10 -04:00
Jeffrey Walton
794e071b1a
Add coverity-linux.txt with copy/paste recipe for scanning under Linux 2016-09-28 22:20:36 -04:00
Jeffrey Walton
c3e45b2e51
Updated 2016-09-27 19:34:46 -04:00
Jeffrey Walton
424a2bdf00
Add master-merge script
I think this script needs to be visible to the world so they can see how we handle the process
2016-09-27 11:59:44 -04:00
Jeffrey Walton
1b5f1b6cf9 Fixed typo in cryptest.sh 2016-09-23 23:22:11 -04:00
Jeffrey Walton
a2b3e8653f Fixed "cryptest.exe: '2.4+1e9' is not a value" (Issue 299) 2016-09-23 21:10:15 -04:00
Jeffrey Walton
2bafebe798 Organize test scripts (Issue 303) 2016-09-23 12:04:33 -04:00
Jeffrey Walton
01dbfc8151 Organize test scripts (Issue 303) 2016-09-23 11:32:48 -04:00
Jeffrey Walton
e8b9b7475f Organize test scripts (Issue 303) 2016-09-23 11:32:14 -04:00