Home Page Download Manual GitHub Mediawiki Mailing lists Contributions Related links

Crypto++ 8.7

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.


The download is available from the Crypto++ website. The checksums for the download are below. Release signatures can be verified using GnuPG according to Release Signing.

Mirrors for the download are below. Note that GitHub checksums on the ZIP or TAR are different because the service creates the archive from sources.

Release Notes

The release notes for Crypto++ 8.7 follows.

Bug fixes and Minor Issues

GCC 12 crash

We removed GCC 12 from the supported compilers list. We believe it has a bug that is causing the validation suite to crash. See Issue 1134, Issue 1141 and GCC Issue 106568 for some of the discussion.

The crash is present with GCC 12 at -O2 or higher, and happens around the ECGDSA test suite. The crash is not present in GCC 12 at -O1 or -Os. The crash is not present in other compilers like Clang and MSVC. The crash was not present in earlier versions of GCC. Tools like Asan, UBsan and Valgirnd do not show a problem. -DCRYPTOPP_DISABLE_ASM and -fno-lto do not affect the problem.

We do not have a minimal reproducer, so tracking down the crash is problematic. We also cannot report it to the GCC folks without a reproducer.

The current workaround is to build the library at -O1 or -Os.

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.

File Changes

Below is a list of all files that were created or renamed at Crypto++ 8.7.

$ git diff-tree -r --summary CRYPTOPP_8_6_0 CRYPTOPP_8_7_0 | grep -v "change" | awk '{$2=$3=""; print $0}' | egrep '(\.h|\.cpp|\.txt|\.dat)'
create   TestPrograms/test_arm_armv7.cpp
create   power7_ppc.cpp
create   power8_ppc.cpp
create   power9_ppc.cpp
delete   ppc_power7.cpp
delete   ppc_power8.cpp
delete   ppc_power9.cpp