- The _mm256_loadu_si256() intrinsic is declared with a pointer to
non-const input. Apply const_cast accordingly.
- The XGETBV instruction isn't recognized, so apply the same
workaround as for old GCC versions.
<https://docs.oracle.com/cd/E53394_01/html/E54851/gnyen.html>
- Only AT&T syntax is supported; there is no directive to switch
Intel syntax. Therefore, disable mixed-ASM code paths.
This started as an update to travis.yml to support ARM64 testing. Autotools had a failure under Clang, and it required a modification to config_asm.h. We eventually guarded the availability defines in CRYPTOPP_DISABLE_ASM.
When using cryptopp in your own projects and using clang tooling (e.g.
clang-tidy) for inspecting your project, this currently errors out due to the #error
directive when done on Windows with MS Visual Studio.
The #error directive here is meant for code execution and not for code
inspection.
So we now don't error out when __clang_analyzer__ is defined. That
macro was introduced into clang tooling in
https://reviews.llvm.org/D46325.
* Test fix ARM headers
This problem has been festering for some time. The header file includes are slightly different than the ISA options. Some platforms need an include, others don't.
* Fix cryptest-android.sh and cryptest-ios.sh
* Fix MSVC ARM32 and ARM64 compile
* Split ARM32 and ARM64 recipes in GNUmakefile
Cryptogams is Andy Polyakov's project used to create high speed crypto algorithms and share them with other developers. Cryptogams has a dual license. First is the OpenSSL license because Andy contributes to OpenSSL. Second is a BSD license for those who want a more permissive license.
Andy's implementation runs about 45% faster than C/C++ code. Testing on a 1.8 GHz Cortex-A17 shows Cryptograms at 45 cpb, and C++ at 79 cpb.
The integration instructions are documented at [Cryptogams SHA](https://wiki.openssl.org/index.php/Cryptogams_SHA) on the OpenSSL wiki.