Skip to content

Releases: weidai11/cryptopp

Crypto++ 8.9 release

01 Oct 18:30
843d74c
Compare
Choose a tag to compare

Crypto++ 8.9 was released on October 1, 2023. The 8.9 release was a minor, unplanned release. There were no CVEs and one memory error.

The 8.9 release was driven by the fix for ProcessData, and the failures when inString==outString. Also see GH #1231, Rabbit Produces null Keystream When inString == outString.

Release notes

  • minor release, recompile of programs required
  • expanded community input and support
    • 88 unique contributors as of this release
  • add additional tests to datatest.cpp
  • fix SIMON128 Asan finding on POWER8
  • fix AES/CFB and AES/CTR modes self test failures when using Cryptogams AES on ARMv7
  • fix ARIA/CTR mode self test failures when inString==outString
  • fix HIGHT/CTR mode self test failures when inString==outString
  • fix Rabbit/CTR mode self test failures when inString==outString
  • fix HC128/CTR and HC256/CTR mode self test failures when inString==outString
  • fix Prime Table and dangling reference to a temporary
  • fix Singleton::Ref() when using C++11 memory fences
  • remove unneeded call to Crop() in Randomize()

Crypto++ 8.8 release

26 Jun 07:18
CRYPTOPP_8_8_0
4d0cad5
Compare
Choose a tag to compare

Crypto++ 8.8 was released on June 25, 2023. The 8.8 release was a minor, planned release. There were no CVEs and no memory errors.

Release notes

  • minor release, recompile of programs required
  • expanded community input and support
    • 88 unique contributors as of this release
  • fix crash in cryptest.exe when invoked with no options
  • fix crash in library due to GCC removing live code
  • fix RSA with key size 16 may provide an invalid key
  • fix failure to build on 32-bit x86
  • fix failure to build on iPhone Simulator for arm64
  • fix failure to build on Windows arm64
  • test for SSSE3 before using the ISA
  • fix include of <x86intrin.h> when using MSVC
  • improve performance of CRC32C_Update_SSE42 for x86-64
  • update documentation

GCC 12 crash

cryptest.exe began experiencing crashes under GCC 12 and above. It appears GCC started removing live code. Building with GCC 12 and above now requires -fno-devirtualize option. See GH #1134 and GH #1141 for details.

CMake support

Abdessattar Sassi is now maintaining the CMake build system. Please visit abdes | cryptopp-cmake on GitHub.

Please note alternate build systems like Autotools and CMake are still not officially supported by the Crypto++ project. The project uses the makefile on Unix & Linux, and Visual Studio on Windows.

FIPS DLL deprecation

The FIPS DLL used to be an important artifact for Windows builds. NIST moved the Crypto++ library to the Historical Validation List in 2014. The Windows DLL is no longer validated.

The project files to build the FIPS DLL are cryptdll.vcxproj and dlltest.vcxproj. The projects are now deprecated and subject to removal.

Crypto++ 8.7 release

07 Aug 20:24
511806c
Compare
Choose a tag to compare

Crypto++ 8.7 was released on August 7, 2022. The 8.7 release was a minor, planned release. There were no CVEs and one memory error fixed.

Release Notes

  • fix RSA key generation for small moduli
  • work around GCC 12 bad code generation for ECGDSA-RIPEMD
  • fix AES-GCM with AESNI but without CLMUL
  • work around GCC 9 bad code generation for POWER8
  • fix Clang warning with C++17
  • work around GCC 9 bad code generation for POWER8
  • fix MinGW builds due to use of O_NOFOLLOW
  • rework CFB_CipherTemplate::ProcessData and AdditiveCipherTemplate::ProcessData
    • restored performance and avoided performance penalty of a temp buffer
  • use arc4random_buf for non-blocking generator on FreeBSD
  • work around Microsoft ARM64 bug with SHA-1
  • work around GCC 11 bug on armhf
  • fix undersized SecBlock buffer in Integer bit operations
  • update documentation

FIPS DLL deprecation

The FIPS DLL used to be an important artifact for Windows builds. NIST moved the Crypto++ library to the Historical Validation List in 2014. The Windows DLL is no longer validated.

The project files to build the FIPS DLL are cryptdll.vcxproj and dlltest.vcxproj. The projects are now deprecated and subject to removal.

Crypto++ 8.6 release

24 Sep 16:06
69bf6b5
Compare
Choose a tag to compare

Crypto++ 8.6 was released on September 24, 2021. The 8.6 release was a minor, unplanned release. There was one CVE and no memory errors.

This release clears CVE-2021-40530 and fixes a problem with ChaCha20 AVX2 implementation. The CVE was due to ElGamal encryption using a work estimate to size encryption exponents instead subgroup order. The ChaCha20 issue was due to mishandling a carry in the AVX2 code path. The ChaCha20 issue was difficult to duplicate, so most users should not experience it.

Release Notes

  • fix ElGamal encryption (GH #1059, CVE-2021-40530)
  • fix ChaCha20 AVX2 implementation (GH #1069)
  • add octal and decimal literal prefix parsing to Integer (Commit e154280)
  • add missing overload in ed25519Signer and ed25519Verifier (Commits fae9943, 08f3fc5)
  • make SHA-NI independent of AVX and AVX2 (GH #1045)
  • fix OldRandomPool GenerateWord32 (Commit fabd88e)
  • use CPPFLAGS during feature testing (Commit 7e0f678)
  • fix compile on CentOS 5 (Commits b51383c, ef3a9e8)
  • fix compile on FreeBSD (Commit 2619dbe)
  • fix feature testing on ARM A-32 and Aarch64 (Commit 203a47a)
  • enable inline ASM for CRC and PMULL on Apple M1
  • fix Intel oneAPI compile (PR #1027)
  • rename test files with *.cpp extension (GH #1024)
  • fix GCC compile error due to missing _mm256_set_m128i (Commit 2cfa8a6)
  • add LSH-256 and LSH-512 hash functions (GH #1025, PR #1026)
  • add ECIES_P1363 for backwards compatibility (Commit 8e02d0d)
  • fix AdditiveCipherTemplate ProcessData (GH #1010)
  • remove CRYPTOPP_NO_CXX11 define (Commit 6911928)
  • add -fno-common for Darwin builds (Commit a70662d)
  • update documentation

FIPS DLL deprecation

The FIPS DLL used to be an important artifact for Windows builds. NIST moved the Crypto++ library to the Historical Validation List in 2014. The Windows DLL is no longer validated.

The project files to build the FIPS DLL are cryptdll.vcxproj and dlltest.vcxproj. The projects are now deprecated and subject to removal.

Crypto++ 8.5 release

08 Mar 04:29
f210224
Compare
Choose a tag to compare

Crypto++ 8.5 was released on March 7, 2021. The 8.5 release was a minor, planned release. There were no CVEs and no memory errors.

Crypto++ 8.5 was released in support of Apple M1 hardware. Feature detection was added for the platform to ensure the proper code paths are used at runtime.

Release Notes

  • port to Apple M1 platform

FIPS DLL deprecation

The FIPS DLL used to be an important artifact for Windows builds. NIST moved the Crypto++ library to the Historical Validation List in 2014. The Windows DLL is no longer validated.

The project files to build the FIPS DLL are cryptdll.vcxproj and dlltest.vcxproj. The projects are now deprecated and subject to removal.

Crypto++ 8.4 release

02 Jan 07:02
434e318
Compare
Choose a tag to compare

Crypto++ 8.4 was released on January 1, 2021. The 8.4 release was a minor, unplanned release. There was no CVEs and one memory error fixed. A recompile of programs is required due to an unintentional ABI break in Crypto++ 8.3.

The Crypto++ 8.4 release reverted the changes for constant-time elliptic curve algorithms. Marcel Keller reported some operations broke under the new algorithm in Issue 992. The revert reactivated CVE-2019-14318.

The release also cleared a memory error reported by Daniel McRobb in Issue 988. McRobb discovered FixedSizeAllocatorWithCleanup could write to memory outside of the allocation if the allocated memory was not 16-byte aligned.

Release Notes

  • fix SIGILL on POWER8 when compiling with GCC 10
  • fix potential out-of-bounds write in FixedSizeAllocatorWithCleanup
  • fix compile on AIX POWER7 with IBM XLC 12.01
  • fix compile on Solaris with SunCC 12.6
  • revert changes for constant-time elliptic curve algorithms
  • fix makefile clean and distclean recipes

FIPS DLL deprecation

The FIPS DLL used to be an important artifact for Windows builds. NIST moved the Crypto++ library to the Historical Validation List in 2014. The Windows DLL is no longer validated.

The project files to build the FIPS DLL are cryptdll.vcxproj and dlltest.vcxproj. The projects are now deprecated and subject to removal.

Crypto++ 8.3 release

20 Dec 10:58
d71bc51
Compare
Choose a tag to compare

Crypto++ 8.3 was released on December 20, 2020. The 8.3 release was a minor, planned release. There was one CVE cleared and no memory errors.

Release Notes

  • fix use of macro CRYPTOPP_ALIGN_DATA
  • fix potential out-of-bounds read in ECDSA
  • fix std::bad_alloc when using ByteQueue in pipeline
  • fix missing CRYPTOPP_CXX17_EXCEPTIONS with Clang
  • fix potential out-of-bounds read in GCM mode
  • add configure.sh when preprocessor macros fail
  • fix potential out-of-bounds read in SipHash
  • fix compile error on POWER9 due to vec_xl_be
  • fix K233 curve on POWER8
  • add Cirrus CI testing
  • fix broken encryption for some 64-bit ciphers
  • fix Android cpu-features.c using C++ compiler
  • disable RDRAND and RDSEED for some AMD processors
  • fix BLAKE2 hash calculation using Salt and Personalization
  • refresh Android and iOS build scripts
  • add XTS mode
  • fix circular dependency between misc.h and secblock.h
  • add Certificate interface
  • fix recursion in AES::Encryption without AESNI
  • add missing OID for ElGamal encryption
  • fix missing override in KeyDerivationFunction-derived classes
  • fix RDSEED assemble under MSVC
  • fix elliptic curve timing leaks (CVE-2019-14318)
  • add link-library variable to Makefiles
  • fix SIZE_MAX definition in misc.h
  • add GetWord64 and PutWord64 to BufferedTransformation
  • use HKDF in AutoSeededX917RNG::Reseed
  • fix Asan finding in VMAC on i686 in inline asm
  • fix undeclared identifier _mm_roti_epi64 on Gentoo
  • fix ECIES and GetSymmetricKeyLength
  • fix possible divide by zero in PKCS5_PBKDF2_HMAC
  • refine ASN.1 encoders and decoders
  • disable BMI2 code paths in Integer class
  • fix use of CRYPTOPP_CLANG_VERSION
  • add NEON SHA1, SHA256 and SHA512 from Cryptogams
  • add ARM SHA1, SHA256 and SHA512 from Cryptogams
  • make config.h more autoconf friendly
  • handle Clang triplet armv8l-unknown-linux-gnueabihf
  • fix reference binding to misaligned address in xed25519
  • clear asserts in TestDataNameValuePairs

FIPS DLL deprecation

The FIPS DLL used to be an important artifact for Windows builds. NIST moved the Crypto++ library to the Historical Validation List in 2014. The Windows DLL is no longer validated.

The project files to build the FIPS DLL are cryptdll.vcxproj and dlltest.vcxproj. The projects are now deprecated and subject to removal.

Crypto++ 8.2 release

29 Apr 00:41
9dcc26c
Compare
Choose a tag to compare

Crypto++ 8.2 was released on April 28, 2019. The 8.2 release was a minor, unplanned release. There are no CVEs or memory errors.

Two bugs were cleared that could cause discomfort for users. First, PowerPC switched from Power7 to Power8 for unaligned loads and stores. The bug affected Debian users on some PowerPC machines. Second, SHAKE-128 and SHAKE-256 constructors were fixed. The bug affected older GCC and some other compilers.

Release Notes

The release notes for Crypto++ 8.2 follows.

  • minor release, no recompile of programs required

  • expanded community input and support

    • 56 unique contributors as of this release
  • use PowerPC unaligned loads and stores with Power8

  • add SKIPJACK test vectors

  • fix SHAKE-128 and SHAKE-256 compile

  • removed IS_NEON from Makefile

  • fix Aarch64 build on Fedora 29

  • fix missing GF2NT_233_Multiply_Reduce_CLMUL in FIPS DLL

  • add missing BLAKE2 constructors

  • fix missing BlockSize() in BLAKE2 classes

Bug fixes and Minor Issues

The bug fix and minor issue list for Crypto++ 8.2 follows. Many non-trivial issues are tracked for auditing and C&A purposes, but the list may not be complete. A number in parenthesis is the GitHub Issue number, if it was tracked. Sometimes a Git commit is referenced, but many trivial GitHub commits are omitted. Missing Issue numbers or lack of consecutiveness usually indicates feature requests and "won't fix/can't fix" type reports.

  • use PowerPC unaligned loads and stores with Power8 (GH #825)

  • add SKIPJACK test vectors (GH #824)

  • fix SHAKE-128 and SHAKE-256 compile (GH #805, GH #818, GH #820, GH #822)

  • removed IS_NEON from Makefile (GH #813)

  • fix Aarch64 build on Fedora 29 (GH #812)

  • fix missing GF2NT_233_Multiply_Reduce_CLMUL in FIPS DLL (GH #783)

  • add missing BLAKE2 constructors (Commit 3183970)

  • fix missing BlockSize() in BLAKE2 classes (GH #811)

setenv-android.sh

The cross-compile script setenv-android.sh is no longer viable for building the library using the Android NDK. Recent NDK changes has mostly obsoleted the script. We are moving to a new script but it is not ready at the moment. Also see Issue 763, Building for Android using NDK not supported on Windows hosts.

We have a GitHub setup with yet another build system at cryptopp-android. It provides Android.mk for Android's build system.

FIPS DLL deprecation

The FIPS DLL used to be an important artifact for Windows builds. NIST moved the Crypto++ library to the Historical Validation List in 2014. The Windows DLL is no longer validated.

The project files to build the FIPS DLL are cryptdll.vcxproj and dlltest.vcxproj. The projects are now deprecated and subject to removal.

Crypto++ 8.1 release

23 Feb 05:48
1c34979
Compare
Choose a tag to compare

Crypto++ 8.1 was released on February 22, 2019. The 8.1 release was a minor, planned release. There are no CVEs or memory errors.

Release Notes

The release notes for Crypto++ 8.1 follows.

  • minor release, no recompile of programs required
  • expanded community input and support
    • 56 unique contributors as of this release
  • fix OS X PowerPC builds with Clang
  • add Microsoft ARM64 support
  • fix iPhone Simulator build due to missing symbols
  • add CRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE
  • add carryless multiplies for NIST b233 and k233 curves
  • fix OpenMP build due to use of OpenMP 4 with down-level compilers
  • add SignStream and VerifyStream for ed25519 and large files
  • fix missing AlgorithmProvider in PanamaHash
  • add SHAKE-128 and SHAKE-256
  • fix AVX2 build due to _mm256_broadcastsi128_si256
  • add IETF ChaCha, XChaCha, ChaChaPoly1305 and XChaChaPoly1305
  • fix missing symbols in Windows DLL

Bug fixes and Minor Issues

The bug fix and minor issue list for Crypto++ 8.1 follows. Many non-trivial issues are tracked for auditing and C&A purposes, but the list may not be complete. A number in parenthesis is the GitHub GH #number, if it was tracked. Sometimes a Git commit is referenced, but many trivial GitHub commits are omitted. Missing GH #numbers or lack of consecutiveness usually indicates feature requests and "won't fix/can't fix" type reports.

  • avoid use of <stdint.h> types in Donna source code (Commit 9c58ba8)
  • fix missing ExtendedControlRegister when CRYPTOPP_DISABLE_ASM (Commit 29d1c17)
  • fix GCM build on x86 when using GCC 3.3 (Commit 8edc5cf)
  • fix SIMECK build on x86 when SSSE3 not available (Commit fc2ead4)
  • fix SIMON build on x86 when SSSE3 not available (Commit 58772f3)
  • fix SPECK build on x86 when SSSE3 not available (Commit a9bd504)
  • fix LEA build on x86 when SSSE3 not available (Commit d00b614)
  • fix CHAM build on x86 when SSSE3 not available (Commit df47185)
  • fix OS X PowerPC builds with Clang (GH #769)
  • add Microsoft ARM64 support (GH #776)
  • fix iPhone Simulator build due to missing symbols (GH #779)
  • fix Donna self-test failure on PowerPC with IBM XLC/C++ at -O3 (Commit 3d07010)
  • fix _M_IX86 typo in Integer class (Commit 1f1c90c)
  • add CRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE (GH #782)
  • add carryless multiplies for NIST b233 and k233 curves (GH #783)
  • fix OpenMP build due to use of OpenMP 4 with down-level compilers (GH #787)
  • move NumericLimitsMin and NumericLimitsMax to CryptoPP namespace (GH #793)
  • add SignStream and VerifyStream for ed25519 and large files (GH #796)
  • add SecretToPublicKey function for x25519 (Commit cae5f8e)
  • use IsPowerOf2 in Integer::Divide (Commit 4853178)
  • fix Fedora 7 compile using SSE4.2 (Commit 5b1e6fd)
  • add GNU Hurd support (Commits 4d24876, ef1c8c2)
  • latch previous ROUNDS in Salsa and ChaCha (GH #800, PR #804)
  • switch to RFC 8439 for ChaCha-TLS (commit 76bdb32)
  • refactor ChaCha and ChaChaTLS use a common core (Commit 70dcd29)
  • fix missing AlgorithmProvider in PanamaHash (GH #801)
  • add SHAKE-128 and SHAKE-256 (GH #805)
  • fix AVX2 build due to _mm256_broadcastsi128_si256 (PR #809, Commit a809dbd)
  • add IETF ChaCha, XChaCha, ChaChaPoly1305 and XChaChaPoly1305 (GH #727)
  • fix missing symbols in Windows DLL (Commit 3185e93)

Crypto++ 8.0 release

28 Dec 04:27
5e5fb6c
Compare
Choose a tag to compare

Crypto++ 8.0

Crypto++ 8.0 was released on December 28, 2018. The 8.0.0 release was a major, planned release. There are no CVEs or memory errors.

This release was scheduled as a minor version bump, but we lost ABI compatibility due to adding AlgorithmProvider at PR 681.

Release Notes

The release notes for Crypto++ 8.0 follows.

  • major release, recompile of programs required
  • expanded community input and support
    • 54 unique contributors as of this release
  • add x25519 key exchange and ed25519 signature scheme
  • add limited Asymmetric Key Package support from RFC 5958
  • add Power9 DARN random number generator support
  • add CHAM, HC-128, HC-256, Hight, LEA, Rabbit, Simeck
  • fix FixedSizeAllocatorWithCleanup may be unaligned on some platforms
  • cutover to GNU Make-based cpu feature tests
  • rename files with dashes to underscores
  • fix LegacyDecryptor and LegacyDecryptorWithMAC use wrong MAC
  • fix incorrect AES/CBC decryption on Windows
  • avoid Singleton&lt;T&gt; when possible, avoid std::call_once completely
  • fix SPARC alignment problems due to GetAlignmentOf&lt;T&gt;() on
    word64
  • add ARM AES asm implementation from Cryptogams
  • remove CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS support
  • ported to MSVC 2017, Xcode 10.0, Sun Studio 12.6, GCC 8.0.1, MacPorts GCC 7.0, Clang 7.0, Intel C++ 17.00, IBM XL C/C++ 13.3

Bug Fixes and Minor Issues

The bug fix and minor issue list for Crypto++ 8.0 follows. Many non-trivial issues are tracked for auditing and C&A purposes, but the list may not be complete. A number in parenthesis is the GitHub Issue number, if it was tracked. Sometimes a Git commit is referenced, but many trivial GitHub commits are omitted. Missing Issue numbers or lack of consecutiveness usually indicates feature requests and "won't fix/can't fix" type reports.

  • add ed25519 signatures (Issue 764, PR 767)
  • add x25519 key exchange (Issue 761, PR 762)
  • add Hygon Dhyana processor support (PR 765)
  • add Power9 DARN rng support (Issue 747, PR 748)
  • add HC-128 stream cipher (Issue 679)
  • add Rabbit stream cipher (Issue 678)
  • add Simeck lightweight block cipher (Issue 675)
  • add HIGHT lightweight block cipher (Issue 672)
  • add CHAM lightweight block cipher (PR 670)
  • add LEA lightweight block cipher (Issue 669)
  • add ARM AES asm from Cryptogams (Issue 683)
  • add Make-based cpu feature tests (Issue 741, Issue 737)
  • add VectorSource (Issue 730)
  • add AES-NI accelerated SM4 encryption (Issue 540)
  • add XOP aware ChaCha (Commit ed4d57c)
  • add XOP aware SIMON and SPECK (Commit 210995b)
  • add XOP aware CHAM and LEA (Commit babdf8b)
  • add XOP aware SIMECK (Commit 67f4211)
  • add SSSE3 rotates when available (Commit b4c4c5a)
  • add SONAME to shared object for Solaris (Commit 9886b55)
  • add AlgorithmProvider member function to Algorithm class (PR 681)
  • add search for test vectors and test data (Issue 760)
    • only search well known locations for Linux LSB install
  • remove OS sockets and threads (Issue 178, Issue 208, PR 703)
    • C++11 socket, threads and synchronization classes may be used
  • disable Panama ASM on X86 (Issue 758)
  • add CRYPTOPP_DISABLE_MIXED_ASM define (Issue 756, PR 757)
    • folds two previous defines CRYPTOPP_CLANG_INTEGRATED_ASSEMBER and CRYPTOPP_DISABLE_INTEL_ASM
  • various SunCC improvements for Solaris
  • various XLC improvements for PowerPC
  • make GF2_32 class member of RawIDA
  • move DEFAULT_CHANNEL and AAD_CHANNEL into cryptlib.cpp (Issue 751)
  • various updates to GNUmakefile and GNUmakefile-cross
  • fix PowerMac G4 and G5 builds (Issue 741)
  • rewrite BLAKE2 classes (Issue 731, Commit a65d55a)
  • use C++ compiler for all source files (PR 733)
  • fix missing cpu-features.o in Android shared object (PR 733)
  • rename PPC vector functions from VectorFunc to VecFunc (Commit f6e04e5)
  • fix global optimization bug for ChaCha AVX2 under VS2017 (Issue 735)
  • fix global optimization bug for AES SSE4.1 under VS2017 (Issue 649)
  • add ability to Seek64 in test framework (Issue 732)
  • sync CRYPTOPP_{BIG|LITTLE}_ENDIAN with Autotools (Commit c601213)
  • sync CRYPTOPP_ARM_ACLE_AVAILABLE with Autotools (Commit d3a3189)
  • fix ambiguous symbol BTEA::StaticAlgorithmName (Issue 726)
  • fix LegacyDecryptor and LegacyDecryptorWithMAC (Issue 714)
  • add -xregs=no%appl for SunCC on SPARC (Commit 03297cd)
  • fix missed conditions for XTR-DH domain parameters generation (Commit 44cd7eb)
  • fix FixedSizeAllocatorWithCleanup may be unaligned on some platforms (Issue 709)
  • avoid Singleton&lt;T&gt; when possible (Issue 708)
  • avoid std::call_once completely (Issue 707)
  • add keccack.h and keccack.cpp for shared F1600 (Commit b9a6034)
    • Provides common core function for SHA-3 and Keccack
  • fix SecBlock ELEMS_MAX in Visual Studio .Net (2002 and 2003) (Commit d47f69a)
  • fix compiler crash in Visual Studio .Net (2002 and 2003) due to GCM (Commit c24f17b)
  • fix compile on Visual Studio 2005 without service packs (Commit 874f79c)
  • disable X32 inline assembly (Issue 686, PR 704)
  • fix build with Embarcadero C++ Builder 10.2.3 (Issue 696)
  • rewrite RDRAND and RDSEED classes (Commit 1bd18dd)
  • disable ASM for iOS simulators (Commit 3753a43)
  • refactor bench{N}.cpp, regtest{N}.cpp and validate{N}.cpp
    • resource constrained devices and SunCC could not compile them without hassles
  • fix SPARC alignment problems due to GetAlignmentOf&lt;T&gt;() on word64 (Issue 691, Issue 690, Issue 689, Issue 403)
  • fix Apple feature detection (Issue 685)
  • fix "Error: symbol SHA512_Round is already defined" (Issue 684)
  • workaround GCC and Clang in handling of same buffer for in and out (Commit 49d852e, Commit e580ed5)
  • fix missing Deflator::IsolatedInitialize during Gzip init (Issue 660)
  • remove CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS support (Issue 682)
  • remove unneeded code to accomodate variable block size (Issue 535)
  • fix bad CHAM-64/ECB decryption with Clang at -O1 (Issue 677)
  • add AVX and AVX2 runtime feature detection (Issue 671)
  • fix missing Kalyna512_Info parameter (Issue 662)
  • fix Threefish blocksize parameter (Issue 663)
  • fix overcommit resources for Scrypt parallelization (Issue 641)
  • fix various Clang warnings in headers (Issue 655)
  • add recipe to install the library only (Issue 653)
  • back-off HashTransformation asserts (Issue 652)
  • use CRYPTOPP_ASSERT in Keccak and SHA3 (Issue 654)
  • add AdditionalOptions property to VCXPROJ files (Issue 649)
  • fix visibility for SIMON and SPECK (Issue 644)

MinGW 32-bit

MinGW 32-bit is failing self tests for LEA, SIMON, SPECK and SM4. MinGW 64-bit is OK. We don't know the cause and don't have a work-around.

We are tracking the problem at Issue 768, 32-bit MinGW self test failures.

Sockets and threads

Crypto++ removed Operating System specific code for sockets and threads. OS specific socket and thread support was removed to streamline the library and focus on the cryptography. The removal will also avoid porting troubles which surface on occassion. Users can re-install the files or utilize C++11 support, if desired.

The list of files removed are as follows.

  • network.cpp
  • network.h
  • socketft.cpp
  • socketft.h
  • trdlocal.cpp
  • trdlocal.h
  • wait.cpp
  • wait.h
  • winpipes.cpp
  • winpipes.h

A wiki page was setup to document the change and provide the old source files at Sockets and Threads.

setenv-android.sh

The cross-compile script setenv-android.sh is no longer viable for building the library using the Android NDK. Recent NDK changes has mostly obsoleted the script. We are moving to a new script but it is not ready at the moment. Also see Issue 763, Building for Android using NDK not supported on Windows hosts.

We have a GitHub setup with yet another build system at cryptopp-android. It provides Android.mk for Android's build system.