Commit Graph

346 Commits (cmake)

Author SHA1 Message Date
Jeffrey Walton bf717f47e6
Reduce C++ file scope class objects
Update comments and documentation
2017-11-12 11:55:57 -05:00
Jeffrey Walton 69c8a4f9c6
Prefix IS_LITTLE_ENDIAN and IS_BIG_ENDIAN with CRYPTOPP 2017-11-10 14:15:30 -05:00
Marcel Raad 4043164205 RFC: workarounds for original MinGW (#531)
* Set default target Windows version for MinGW to XP

The original MinGW from mingw.org targets Windows 2000 by default, but lacks
the <wspiapi.h> include needed for Windows 2000 support.

* Disable CRYPTOPP_CXX11_SYNCHRONIZATION for original MinGW

std::mutex is only available in libstdc++ if _GLIBCXX_HAS_GTHREADS is defined,
which is not the case for original MinGW. Make the existing fix for AIX more
general to fix this. Unfortunately, any C++ header has to be included to
detect the standard library and the otherwise empty <ciso646> is going to be
removed from C++20, so use <cstddef> instead.
2017-11-06 20:49:16 -05:00
Jeffrey Walton e4cef84883
Add CRYPTOPP_NO_CXX11 for fake C++11 standard libraries (GH #529)
This is a recurring problem, especially on MinGW and platforms that use STLport. See the bug report for some references
2017-11-06 09:09:45 -05:00
Jeffrey Walton 7ba8c6bc81
Cleanup Altivec and Power7 code paths
This changes the dependency from Altivec to Power7. Internally we needed Power7 but it was cut-in as a pseudo Altivec dependency. Also see http://groups.google.com/forum/#!topic/cryptopp-users/fmEKOG41SG8
2017-10-17 22:50:45 -04:00
Jeffrey Walton f8d97b83ed
Fix compile on old PowerPC
This cleans up the compile on old PwerMac G5's. Our Altivec and Crypto code relies on Power7 and Power8 extensions. There's no need to shoehorn Altivec and Power4 into old platforms, so we disable Altivec and Crypto unless Power7 is available. The GNUmakefile sets CRYPTOPP_DISABLE_ALTIVEC if Power7 is not available.
2017-10-17 20:47:14 -04:00
Jeffrey Walton 1315c1fe2f
Fix unwanted inlining of factory.h classes on AIX and Power7
Enable aligned allocations under IBM XL C/C++. Based on the AIX malloc man pages, "... the block is aligned so that it can be used for any type of data". Previously CRYPTOPP_NO_ALIGNED_ALLOC was in effect.

Use malloc instead of calloc on OS X. Based on the OS X malloc man pages, "... the allocated memory is aligned such that it can be used for any data type, including AltiVec- and SSE-related types". Additionally, calloc zero'd the memory it allocated which slowed things down on Apple systems.
2017-10-13 04:13:39 -04:00
Jeffrey Walton 4b7549a990
Use 'static const int' for constant Borland/Embarcadero (GH #512) 2017-09-20 18:18:51 -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 f0c2324f6b
Fix armeabi and armv7-a for Android (GH #509) 2017-09-17 20:07:53 -04:00
Jeffrey Walton 4c6a866a8d
Remove debug info statement from makefile 2017-09-13 18:51:45 -04:00
Jeffrey Walton 8d98417306
Add Aarch64 specific defines to Android cross-compile
Move <arm_acle.h> logic into "sonfig.h". Detecting when we can/should include <arm_acle.h> is proving to be troublesome
2017-09-13 17:16:57 -04:00
Jeffrey Walton fb78afba29
Add PowerPC support to cpu.h and validate.cpp 2017-09-11 03:05:04 -04:00
Jeffrey Walton 263c38d681
Avoid pthread gear for IBM XL C/C++ compiler on AIX 2017-09-09 16:25:15 -04:00
Jeffrey Walton 37e02f9e0e
Revert AltiVec and Power8 commits
The strategy of "cleanup under-aligned buffers" is not scaling well. Corner cases are still turing up. The library has some corner-case breaks, like old 32-bit Intels. And it still has not solved the AltiVec and Power8 alignment problems.
For now we are backing out the changes and investigating other strategies
2017-09-05 16:28:00 -04:00
Jeffrey Walton b9e871d1e8
Add PPC, PPC64, AltiVec and Power8 awareness
We are going to try AltiVec/Powe8 crypto. It appears to be a lot like ARMv8-a crypto
2017-09-02 19:25:37 -04:00
Jeffrey Walton 069ae2a179
Fix missing object factory of xlC on AIX 2017-09-01 03:58:45 -04:00
Jeffrey Walton 6c35eaf737
Update test script for AIX 2017-08-31 08:05:48 -04:00
Jeffrey Walton 0d6f349749
Fold CXX11 feature block 2017-08-31 06:41:44 -04:00
Jeffrey Walton 67bcdaed9a
Fix compile under AIX 7.1 2017-08-31 06:29:35 -04:00
Jeffrey Walton 8624587943
Remove WORKAROUND_MS_BUG_Q258000 from the config and osrng 2017-08-29 14:48:08 -04:00
Jeffrey Walton a3b035b6a8
Add CRYPTOPP_CXX11_ENUM (Issue 475) 2017-08-28 17:37:59 -04:00
Jeffrey Walton f488221992
Test align 16 for i386 and x86_64 2017-08-27 19:01:00 -04:00
Jeffrey Walton 5c6a32ba0f
Support Base Implementation + SIMD implementation on Solaris (PR #461) 2017-08-24 19:17:21 -04:00
Jeffrey Walton 7851a0d510 Remove BOOL macro value (GH #462)
Currently the CRYPTOPP_BOOL_XXX macros set the macro value to 0 or 1. If we remove setting the 0 value (the #else part of the expression), then the self tests speed up by about 0.3 seconds. I can't explain it, but I have observed it repeatedly.
This check-in prepares for the removal in Upstream master
2017-08-20 21:25:29 -04:00
Jeffrey Walton 61c8b74951
Add Divisor and MSR member variables
Guard ASM based on CRYPTOPP_X86_ASM_AVAILABLE
Increased depth of internal buffer
Update documentation for using the generator
Whitespace check-in
2017-08-20 04:09:19 -04:00
Jeffrey Walton a9534a7cf3
Use CRYPTOPP_SSE2_INTRIN_AVAILABLE for consistent naming 2017-08-18 02:11:41 -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 7779fa3e7a
Fix NEON detection on Aarch32 and Aarch64
I wish GCC would get its head out of its ass and define the apprpriate defines. NEON/ASIMD cannot be disgorged from Aarch32/Aarch64 just like SSE2 cannot be disgorged from x86_64. They are core instruction sets
2017-08-17 02:15:42 -04:00
Jeffrey Walton b0b749f392
Fold shuffles after loads for SHACAL2 2017-08-16 10:40:00 -04:00
Jeffrey Walton c5c6a6af5c
Fix Doxygen constant documentation 2017-08-16 05:11:37 -04:00
Jeffrey Walton 953252e44d
Move from 'static' to 'enum' for class constants
Enums don't take up space in class objects. Its should result in smaller objects and faster code
2017-08-11 17:13:15 -04:00
Jeffrey Walton 326700f6ec
Fix library version numbers
They were inadvertently checked-in with the SHA doc updates
2017-08-05 01:08:25 -04:00
Jeffrey Walton d779462a38
Update documentation 2017-08-05 01:05:58 -04:00
Jeffrey Walton 3fc7b104e6
Update documentation 2017-07-28 12:35:25 -04:00
Jeffrey Walton 5103f6dd41
Remove gyrations around CRYPTOPP_NO_UNALIGNED_DATA_ACCESS
CRYPTOPP_NO_UNALIGNED_DATA_ACCESS was required in Crypto++ 5.6 and earlier because unaligned data access was the norm. It caused problems at -O3 and on ARM NEON.
At Crypto++ 6.0 no unaligned data access became a first class citizen. Folks who want to allow it must now define CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS
2017-07-23 11:14:02 -04:00
Jeffrey Walton 00f9818b5d
Move byte to Crypto++ namespace (Issue 442)
Also see http://www.cryptopp.com/wiki/std::byte and http://github.com/weidai11/cryptopp/issues/442
2017-07-20 09:55:29 -04:00
Marcel Raad 32f715f1d7 Fix Windows XP support on Visual Studio 2015+ (#439)
When compiling with Visual Studio 2015+, Crypto++ uses CryptoNG by
default. CryptoNG is only available on Windows Vista and later and
Crypto++ currently ignores if the user explicitly wants to target
Windows XP. Unlike with other Windows SDK features, everything
compiles, but the application doesn't start on Windows XP because
bcrypt.dll is missing. That is an issue when updating Visual Studio
because the root cause is hard to find.
Making use of CryptoNG when targeting Windows 8+ instead by default,
regardless of the Visual Studio version, to fix this.
2017-06-24 17:41:20 -04:00
Jeffrey Walton 429047a8e9
Clear Visual Studio warnings (Issue 412) 2017-06-02 07:13:43 -04:00
Jeffrey Walton 7ac77ca9ac Revert "Revert "Clear Visual Studio warnings (Issue 412)""
This reverts commit c3871aec94.
2017-06-02 05:18:52 -04:00
Jeffrey Walton c3871aec94 Revert "Clear Visual Studio warnings (Issue 412)"
This reverts commit eb3b27a6a5. The change broke GCC 4.8 and unknown version of Clang on OS X. UB reported the OS X break, and JW found duplicated the break on a ARM CubieTruck with GCC 4.8.
2017-06-02 05:06:56 -04:00
Jeffrey Walton eb3b27a6a5
Clear Visual Studio warnings (Issue 412) 2017-05-30 16:37:41 -04:00
Jeffrey Walton f40c55810d
Add method for sanitizer suppression 2017-05-21 21:51:31 -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 0611e11507
Disable word128 for PPC64 and GCC 4.8 (Issue 421) 2017-05-12 23:51:27 -04:00
Jeffrey Walton 554b7a2747
Fix "error: inlining failed ... target specific option mismatch (Issue 407) 2017-05-01 17:54:05 -04:00
Jeffrey Walton 8ded8bc38d
Clear SunCC anachronism warning "Attempt to redefine IS_BIG_ENDIAN without using #undef" 2017-04-21 23:52:43 -04:00
Jeffrey Walton 65c3c63b52
Breakout and cleanup macros. Add CRYPTOPP_ENABLE_ARIA_SSE2_INTRINSICS, CRYPTOPP_ENABLE_ARIA_SSSE3_INTRINSICS and CRYPTOPP_ENABLE_ARIA_NEON_INTRINSICS.
Tune CRYPTOPP_ENABLE_ARIA_SSE2_INTRINSICS and CRYPTOPP_ENABLE_ARIA_SSSE3_INTRINSICS macro for older GCC and Clang. Clang needs some more tuning on Aarch64 becuase performance is off by about 15%.

Add additional NEON code paths.

Remove keyBits from Aarch64 code paths.
2017-04-13 17:45:58 -04:00
Jeffrey Walton 35f95fb739
Fix unaligned pointer crash on Win32 due to _mm_load_si128
The SSSE3 intrinsics were performing aligned loads using _mm_load_si128 using user supplied pointers. The pointers are only a byte pointer, so its alignment can drop to 1 or 2. Switching to _mm_loadu_si128 will sidestep potential problems. The crash surfaced under Win32 testing.

Switch to memcpy's when performing bulk assignment x[0]=y[0] ... x[3]=y[3]. I believe Yun used the pattern to promote vectorization. Some compilers appear to be braindead and issue integer move's one word at a time. Non-braindead compiler will still take the optimization when advantageous, and slower compilers will benefit from the bulk move. We also cherry picked vectorization opportunities, like in ARIA_GSRK_NEON.

Remove keyBits variable. We now use UncheckedSetKey's keylen throughout.

Also fix a typo in CRYPTOPP_BOOL_SSSE3_INTRINSICS_AVAILABLE. __SSSE3__ was listed twice.
2017-04-13 04:28:02 -04:00
Jeffrey Walton 59767be52e
Add Intel and ARM intrinsics
Win32 and Win64 benefited from the Intel intrinsics. A32 and Aarch64 benefited from the ARM intrinsics. The intrinsics shaved 150 to 350 cycles from key setup.

The intrinsics slowed modern GCC down a small bit, and did not appear to affect old GCC. As such, Intel intrinsics were only enabled for Microsoft compilers.

We were not able to improve encryption and decryption. In fact, some of the attempted macro conversions and intrinsics attempts slowed things down considerably. For example, GCC 5.4 on x86_64 went from 120 MB/s to about 70 MB/s when we tried to improve code around the Key XOR Layer (ARIA_KXL).
2017-04-12 23:28:41 -04:00
Jeffrey Walton c305e88127
Fix runtime crash when CRYPTOPP_INIT_PRIORITY=0
Couple use of initialization priorities to no NO_OS_DEPENDENCE
Add comments explaining what integer does, how it does it, and why we want to inprove on the Singleton pattern as a resource manager.
Update documentation.
2017-03-27 06:06:12 -04:00
Jeffrey Walton 0e55f5ac7d
Remove g_pAssignIntToInteger pointer, add CRYPTOPP_NO_ASSIGN_TO_INTEGER (Issue 389)
This effectively decouples Integer and Public Key from the rest of the library. The change means a compile time define is used rather than a runtime pointer. It avoids the race with Issue 389.
The Public Key algorithms will fail if you use them. For example, running the self tests with CRYPTOPP_NO_ASSIGN_TO_INTEGER in effect results in "CryptoPP::Exception caught: NameValuePairs: type mismatch for 'EquivalentTo', stored 'i', trying to retrieve 'N8CryptoPP7IntegerE'". The exception is expected, and the same happend when g_pAssignIntToInteger was present.
2017-03-25 16:38:42 -04:00
Jeffrey Walton f502ee9218
Simplify C++ dynamic object initialization
Wrap DetectArmFeatures and DetectX86Features in InitializeCpu class
Use init_priority for InitializeCpu
Remove HAVE_GCC_CONSTRUCTOR1 and HAVE_GCC_CONSTRUCTOR0
Use init_seg(<name>) on Windows and explicitly insert at XCU segment
Simplify logic for HAVE_GAS
Remove special recipies for MACPORTS_GCC_COMPILER
Move C++ static initializers into anonymous namespace when possible
Add default NullNameValuePairs ctor for Clang
2017-03-20 08:51:10 -04:00
Jeffrey Walton 301437e693
Updated static initializers
When MSVC init_seg or GCC init_priority is available, we don't need to use the Singleton. We only need to create a file scope class variable and place it in the segment for MSVC or provide the attribute for GCC.
An additional upside is we cleared all the memory leaks that used to be reported by MSVC for debug builds.
2017-03-17 20:47:32 -04:00
Jeffrey Walton 46c9cc725c
Use C++03 Singleton on select Microsoft platforms (Issues 372, 373, 389, 391)
We are back to the "... one object may end up being memory leaked" if faced with concurrent initialization
2017-03-15 06:20:45 -04:00
Jeffrey Walton a0bb490056
Define _XOPEN_SOURCE for Cygwin/Newlib (Issue 315) 2017-03-10 01:53:51 -05:00
Jeffrey Walton 5efb019d8b
Add C++ nullptr support (Issue 383) 2017-03-01 06:10:06 -05:00
Jeffrey Walton 62f92dd592
Change next version from 5.7 to 6.0
Crypto++ 5.7 was the increment after the 5.6.5 release. Crypto++ 6.0 accurately reflects compatibility
2017-02-21 12:59:20 -05:00
anonimal 8558bc519c
config.h: add DragonFly BSD support 2017-02-19 07:04:38 +00:00
Jeffrey Walton 81b1a18063
Change file preamble to include "originally written by Wei Dai"
We have made a fair number of changes, and we don't want WD to receive credit for issues he was not part of
2017-01-27 07:05:45 -05:00
Jeffrey Walton 79f3ab89f1
Removed remaining CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY (Issue 369) 2017-01-27 06:02:58 -05:00
Jeffrey Walton b129818c35
Add GCC inline ASM for PMULL and PMULL2
The macros that invoke GCC inline ASM have better code generation and speedup GCM ops by about 70 MiB/s on an Opteron 1100. The intrinsics are still available for Windows platforms and Visual Studio 2017 and above
2017-01-19 02:38:00 -05:00
Jeffrey Walton 8eb1b6cb6b
Update CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE availability (Issue 362)
PMULL and PMULL2 are available on Aarch64 only, and not Aarch32 or A-32
2017-01-16 05:35:53 -05:00
Jeffrey Walton c80502102a
Breakout __ARM_FEATURE_CRYPTO into PMULL, AES and SHA for Apple Clang (Issue 362)
It appears Apple Clang disgorges carryless multiply (PMULL) from Crypto (AES and SHA). The breakout added CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE for PMULL, and retained CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE for AES and SHA only
2017-01-15 00:22:14 -05:00
Jeffrey Walton 732601e8b6
Microsoft still does not suport ARMv8 and the ARM intrinscs
Remove the define for now. Maybe Microsoft will support it in 2019 or 2020
2017-01-13 23:57:11 -05:00
klemens 5a5c633073 spelling fixes 2016-12-27 18:34:57 +01:00
Jeffrey Walton 1a17ade299
Fixed version numbers
Version numbers are rolled back to update the docs. The rolled back versions got committed with the updated docs
2016-12-11 07:06:38 -05:00
Jeffrey Walton 99ae937d8b
Updated documentation (Issue 121) 2016-12-11 06:56:52 -05:00
Jeffrey Walton d01467b754
Use 'static const int' for constants in Doxygen documentation (Issue 343) 2016-12-04 16:07:10 -05:00
Jeffrey Walton d45763a7ae
Removed CRYPTOPP_DISABLE_X86ASM macro (Issue 70) 2016-12-03 05:16:23 -05:00
Jeffrey Walton ba75834ae9
Removed VC++ 5.0 and 6.0 workarounds (Issue 342) 2016-12-03 05:05:56 -05:00
Jeffrey Walton 40230dd3bf
Removed MAINTAIN_BACKWARDS_COMPATIBILITY_562 (Issue 70) 2016-12-03 00:32:07 -05:00
Jeffrey Walton c8b910aff5
Backed-off automatically setting CRYPTOPP_BOOL_SSE_SHA_INTRINSICS_AVAILABLE due to bad interaction with '-march=x86-64'. Disgorge SSE2 implementation from CXX implementation 2016-12-01 23:35:13 -05:00
Jeffrey Walton 82009ecf41
Increment version to 5.7 due to ABI break *Issue 337)
We still need to supply a patch for those maintaining 5.6.x
2016-12-01 18:10:56 -05:00
Jeffrey Walton 70d7297559 Merge pull request #339 from ralphtandetzky/master
Fix: GCC warning "type qualifiers ignored on function return type".
2016-12-01 09:56:39 -05:00
Ralph Tandetzky 35a2ef10a2 Fix: GCC warning "type qualifiers ignored on function return type".
This pedantic message appeared all over the code. Also removed one warning about an unused variable in release build.
2016-12-01 15:37:04 +01:00
Jeffrey Walton 7ab9b00f90
Add Intel SHA1 extension support 2016-12-01 00:49:59 -05:00
Jeffrey Walton 2b736bc6f1
Fix "deprecated conversion from string constant to ‘char*’" 2016-11-14 19:45:08 -05:00
Jeffrey Walton 76b11b010c
Add CRYPTOPP_STATIC_CONSTEXPR macro 2016-11-13 11:50:34 -05:00
Jeffrey Walton 61aa62bd8f
Add CRYPTOPP_STATIC_CONSTEXPR 2016-11-12 09:34:34 -05:00
Jeffrey Walton aa8260df2c
Use enum for Doxygen processing 2016-11-10 02:04:46 -05:00
Jeffrey Walton 84b602cc7d
Fix compile under Debian Hurd (i386)
Debian Hurd defines __MACH__, and it was picking up "#define CRYPTOPP_SECTION_INIT __attribute__((section (__DATA,__data)))" intended for Apple linkers
2016-10-28 00:33:43 -04:00
Jeffrey Walton 69de0d591b
Fix "operator '>=' has no left operand" (Issue 329) 2016-10-27 14:20:51 -04:00
Jeffrey Walton 5596f73371
Fix Cygwin Newlib signal handler (Issue 315) 2016-10-14 15:00:49 -04:00
Jeffrey Walton 4d562aaac7
Post-release version increment 2016-10-11 14:37:03 -04:00
Jeffrey Walton e09d8a2491
Fix Cygwin compile due to missing <signal.h> 2016-10-01 22:12:08 -04:00
Jeffrey Walton 2efedfb5ab
Reset config.h that cross-pollinated from AES dev-branch 2016-09-30 01:19:44 -04:00
Jeffrey Walton 4c1b5472cc Cutover to SecByteBlock member for AES (Issue 302, CVE-2016-7544) 2016-09-30 01:09:21 -04:00
Jeffrey Walton e0651b458f Fix Visual Studio 2005 compile (Part of Issue 300) 2016-09-22 23:54:10 -04:00
Jeffrey Walton 06e29357cb config.compat
Fix MSC compile under ARM
2016-09-21 02:02:55 -04:00
Jeffrey Walton 32ae3e52f1 Partially revert 714daaf570.
We were mostly OK under i686/x86_64, but Clang died completely under ARM-32 and Aarch64.
2016-09-21 00:35:59 -04:00
Jeffrey Walton 31a7b99f9e Remove CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 from block defining word64 based on data models
We use the samllest word size that meets requirements, not th e largest size. That helps us get to a word128 on more platforms
2016-09-20 02:26:04 -04:00
Jeffrey Walton 49d7187255 Cleanup feature defines in <config.h>. Cleanup intrinsic includes in <cpu.h> 2016-09-20 00:35:27 -04:00
Jeffrey Walton 0e9da81311 Fix compile under CentOS 5 with GCC 4.1 2016-09-19 23:00:33 -04:00
Jeffrey Walton 923efa865b Fix Solaris GCC and "constructor priorities are not supported" 2016-09-19 21:18:58 -04:00
Jeffrey Walton 6422ecfbeb Fix CRYPTOPP_UNUSED macro and CVE number 2016-09-19 17:55:36 -04:00
Jeffrey Walton 151521d68f Cleanup use of CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 2016-09-19 00:56:01 -04:00
Jeffrey Walton 714daaf570 Fix broken Clang compile with -march=x86-64 (Issue 283)
It would be great if Clang stopped pretending to be other compilers. In the absence of honesty, it would be nice if it consumed the same programs GCC does
2016-09-19 00:51:35 -04:00
Jeffrey Walton fb6a11ff08 Remove library supplied aesenc, aesdec and friends (Issue 206) 2016-09-18 21:06:41 -04:00
Jeffrey Walton f57c4dced5 Moved config.h → config.compat; moved config.recommend → config.h
Also see http://groups.google.com/forum/#\!topic/cryptopp-users/bWcRw1XgJ_Q
2016-09-18 12:36:50 -04:00
Jeffrey Walton 399a1546de Add CRYPTOPP_ASSERT (Issue 277, CVE-2016-7420)
trap.h and CRYPTOPP_ASSERT has existed for over a year in Master. We deferred on the cut-over waiting for a minor version bump (5.7). We have to use it now due to CVE-2016-7420
2016-09-16 11:27:15 -04:00
Jeffrey Walton aa5767cccf Post-release version increment 2016-09-11 14:35:21 -04:00
Jeffrey Walton 3074541e92 Bump Crypto++ version number from 5.6.3 to 5.6.4 2016-09-10 02:51:54 -04:00
Jeffrey Walton 677c09584c Removed workspace and project files from FileList.txt. Cleared 'make convert' error for makefile recipe 2016-09-09 03:33:06 -04:00
Jeffrey Walton 7f958575ea Squashed commit of the following:
commit 47c75c6e9397e240919207e50e5a611d3e2a2428
Merge: d7685c2 42085ee
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 20:20:39 2016 -0400

    Attempting to fix binary file merge conflict

commit d7685c2d946beecc419ddb6901c24e972c7cf3ee
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 16:39:23 2016 -0400

    Add vsClean.cmd to vs2010.zip

commit 4b96fdf1c551260da60eb021f324bcc3fcfec626
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 16:15:38 2016 -0400

    Add Keccak to vs2010.zip

commit 3962db73b7113ee805b46a5bb4da64e204fe6bb0
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 15:40:35 2016 -0400

    Fold hmqv.cpp and fhmqv.cpp into mqv.cpp. There's no need for three empty source files

commit 44401448cbb6c8125b0f1ab4419c5b174408ffd7
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 15:39:23 2016 -0400

    Fold hmqv.cpp and fhmqv.cpp into mqv.cpp. There's no need for three empty source files

commit 847bfccb8d5c388e67745dc8c69768fa503c5135
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 14:48:02 2016 -0400

    Whitespace cleanup

commit 46a37be6fef361704dcf852bc9a099ce0a1da4c8
Merge: aefb8f8 3697867
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 14:43:01 2016 -0400

    Merge 'master' into 'keccak'

commit aefb8f8ff2b81b967089c53b457a92fc6f7544d6
Merge: 51a828b 3c91d93
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 12:39:51 2016 -0400

    Merge 'master' into 'keccak'

commit 51a828b88e37a4d18abb00300cd5522bd0e110c5
Merge: 4152870 e7c7722
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 10:41:36 2016 -0400

    Merge 'master' into 'keccak'

commit 415287041e69ddadf5ca1f6fc794b87e145fc2db
Merge: 357a0c5 83ac849
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 10:34:45 2016 -0400

    Merge 'master' into 'keccak'

commit 357a0c510f75e4e58078b500dd469462e90f7650
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 10:13:32 2016 -0400

    Removed deprecated warning from SHA3 classes

commit 5cf9ec10d53b895b5a583e265e4e1298ed402195
Merge: 10ce0ed c2d60cc
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 09:43:15 2016 -0400

    Merge 'master' into 'keccak'

commit 10ce0ed4c5b8a1ea230062fd2dfdec0d87ec5b42
Author: Jeffrey Walton <noloader@gmail.com>
Date:   Thu Sep 8 09:37:40 2016 -0400

    Add Keccak implementation based on early SHA3. Change SHA3 to NIST FIPS 202 conforming implementation
2016-09-08 20:24:25 -04:00
Jeffrey Walton e609559f06 Use "unsigned long" rather than "unsigned long long" for word64 when '_LP64 || __LP64__'
Guard use of the change on CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562
2016-09-08 03:33:05 -04:00
Jeffrey Walton f0e7b45bcb Remove comma operator from return values for StaticGetDefaultRounds and StaticGetValidKeyLength in non-constexpr builds (Issue 255) 2016-09-07 09:32:06 -04:00
Jeffrey Walton 9205efda02 Add constexpr to CRYPTOPP_CONSTANT when CRYPTOPP_CXX11_CONSTEXPR is in effect 2016-09-06 08:53:55 -04:00
Jeffrey Walton a62aee441f Backed out use of "static const" to declare constant; switch to "enum" (Issue 255) 2016-09-06 04:04:03 -04:00
Jeffrey Walton f23314f731 Add configuration support for C++11 constexpr 2016-09-01 22:45:44 -04:00
Jeffrey Walton 3f6d499c19 Fix missing arm_acle.h under GCC 4.8. Rearrange some defines to better account for ARM and MIPS 2016-08-01 13:41:42 -04:00
Jeffrey Walton e2bf6824ff Fix cannot convert between 'word64*' and 'uint64_t*' and -fpermissive 2016-07-24 13:40:58 -04:00
Jeffrey Walton df47660605 Remove unneeded 'defined(__INTEL_COMPILER)' 2016-07-19 00:09:29 -04:00
Jeffrey Walton 686aef6028 Remove second definition of CRYPTOPP_ALIGN_DATA using alignas 2016-07-18 21:53:18 -04:00
Jeffrey Walton 5ad7bbd0c7 Guard CRYPTOPP_CXX11 for STLport
On Android, the compiler will define __cplusplus=201103L when using -std=c++11 even with STLport. STLport appears to be abandoned sometime around 2008.
2016-07-17 20:20:36 -04:00
Jeffrey Walton b0b7b71562 Aloow GCC to particpate in MACH-O initialization 2016-07-12 23:38:30 -04:00
Jeffrey Walton 5080a065ce Clear Valgrind findings under -Ofast 2016-07-12 23:05:00 -04:00
Jeffrey Walton ebef1f418b Disable automatic detection of CRYPTOPP_BOOL_SSE4_INTRINSICS_AVAILABLE for SunCC. Remove #error for C++17 (Issue 222) 2016-07-12 11:05:05 -04:00
Jeffrey Walton 268b261739 Update comment for Sun Studio 12.4 2016-07-11 00:39:13 -04:00
Jeffrey Walton 53e2147d8d Fix compile under Sun Studio 12.3 and below with -xarch=aes defines 2016-07-10 20:40:45 -04:00
Jeffrey Walton 6c0b120072 Go back to Commit 66ada4cc61 2016-07-06 14:39:18 -04:00
Mouse 87be783cd1 Revert "Merge remote-tracking branch 'upstream/master'" - not intended to be merged by me
This reverts commit 762c315566, reversing
changes made to b48866631a.
2016-07-06 12:01:28 -04:00
Jeffrey Walton fb72dbc8cb Add MacPorts GCC compiler and Clang integrated assembler support. This is a merge of the development branch 'clang-ia' 2016-07-05 02:48:27 -04:00
Jeffrey Walton 2d0dd95dda Fix "CRYPTOPP_USE_FIPS_202_SHA3 redfined" when using config.recommned with CRYPTOPP_USE_FIPS_202_SHA3 defined on command line 2016-07-04 17:51:09 -04:00
Jeffrey Walton ff8105404e Break build when we encounter Clang pretending to be VC++ (Issue 147) 2016-06-22 09:50:23 -04:00
Jeffrey Walton b1df5736a7 Merge 'solaris' dev branch into 'master' 2016-06-15 05:02:28 -04:00
Jeffrey Walton c1f025343a Add C++11 alignas support. Deleting 'alignas' branch 2016-06-14 19:14:09 -04:00
Jeffrey Walton 0414faff8e Revert "Add hack to pickup C++11 alignas"
This reverts commit 16df6e64a8. Detailed testing is revealing some fractures. The pain point seems to be C++11 is more strict about the location of the 'alignas(N)' in the statement-expression. Some compilers accept a looser grammar; while others do not.

Clang 3.3 is rejecting some of the statements with CRYPTOPP_ALIGN_DATA(N). Others may do the same, and we need to look at ICC in particular.
2016-06-07 15:22:11 -04:00
Jeffrey Walton 16df6e64a8 Add hack to pickup C++11 alignas 2016-06-06 23:57:46 -04:00
Jeffrey Walton e961c2da5b Merge Atomics branch into Master 2016-06-06 22:08:04 -04:00
Jeffrey Walton ec8c794a26 Removed duplicate C++11 atomics block. Fixed comment on CRYPTOPP_CXX11_ALIGNAS availability under MS toolchain 2016-05-30 17:46:00 -04:00
Jeffrey Walton 3a26c34721 Simplified tests ARM features. Tied ARM intrinsics to CRYPTOPP_DISABLE_ASM to allow easier user control and testing 2016-05-22 13:02:53 -04:00
Jeffrey Walton 733c78ba23 Relocate ARM defines to contribute to CRYPTOPP_BOOL_ALIGN16 2016-05-21 15:50:04 -04:00
Jeffrey Walton d7c832b813 Remove ILP32 from CRYPTOPP_L1_CACHE_LINE_SIZE. Clang defines it for all 32-bit data models, and not just X32 2016-05-20 16:38:42 -04:00
Jeffrey Walton 9534ce5bc5 Add ARM-64 defines for CRYPTOPP_L1_CACHE_LINE_SIZE 2016-05-20 16:28:55 -04:00
Jeffrey Walton 5e719b95bb Merge branch 'master' into windows-store 2016-05-16 20:38:02 -04:00
Jeffrey Walton f21c15d7af Fix iOS ARM CRC32 and Crypto detection 2016-05-16 20:37:22 -04:00
Jeffrey Walton b42cc4676f Merge branch 'master' into windows-store 2016-05-16 18:48:49 -04:00
Jeffrey Walton e846beac35 Add defines for ARMv8 CRC32 and Crypto extensions 2016-05-16 18:47:31 -04:00
Jeffrey Walton 1f70c6aecc Merge branch 'master' into windows-store 2016-05-15 08:25:45 -04:00
Jeffrey Walton 480532931b Improve Apple iOS support for ARM and NEON. Add ARM Crypto detection 2016-05-15 08:24:51 -04:00
Jeffrey Walton 8313d082ad Merge branch 'master' into windows-store 2016-05-15 05:59:30 -04:00
Jeffrey Walton 950cf4cdb9 Improve ARM feature detection for ARM64 2016-05-15 05:37:39 -04:00
Jeffrey Walton ba6e56e4a2 Merge branch 'master' into windows-store 2016-05-15 02:40:34 -04:00
Jeffrey Walton 01f77765d4 Add basic ARM and Windows Store support 2016-05-15 02:30:08 -04:00
Jeffrey Walton d294b4290b Add changes for Windows Sotre that went missing with my clumsy Git skills 2016-05-09 03:07:57 -04:00
Jeffrey Walton b499b8ba65 Fix Windows Phone compile (Issue 162) 2016-04-25 16:36:54 -04:00
Jeffrey Walton dfac7ec28b Fix Debian 8/GCC 4.9 compile on Core2 Duo 2016-04-25 01:43:45 -04:00
Jeffrey Walton d83e4a0704 Add comment on test vectors used for CRYPTOPP_USE_FIPS_202_SHA3 2016-04-24 00:03:21 -04:00
Jeffrey Walton 01d137155c Add SHA3/FIPS 202 test vectors. Add note to config.h on uncommenting sha3_fips_202.txt when defining CRYPTOPP_USE_FIPS_202_SHA3 2016-04-23 21:55:47 -04:00