Home Page Download Manual GitHub Mediawiki Mailing lists Contributions Related links

Crypto++ 8.1

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.

Download

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.1 follows.

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 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.

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.

PowerPC failed self tests

The Crypto++ library had trouble passing its self tests on PowerPC platforms using recent versions of GCC, Clang and IBM XLC/C++. We were aware of the problem for some time but we were not able to isolate the problem in our code.

We recently learned of issues in GCC and LLVM which caused the runtime problems. The issues and compiler patches are available at GCC Issue 88234 and LLVM Issue 39704. If needed you should incorporate the compiler patches before resorting to -DCRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE or -DCRYPTOPP_DISABLE_ASM.

IBM XLC/C++ also fails some of its self tests. We were not able to reduce the failure to a minimum test case so the problem remains unreported to IBM. However, IBM XLC/C++ 13.1 uses the LLVM front-end and we suspect it is a similar problem reported to GCC and LLVM. You should use -DCRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE or -DCRYPTOPP_DISABLE_ASM to work around the problem.

Notes for Distros

ARMEL may not build correctly because the makefile may mis-identify the availability of NEON. If ARMEL fails to build then apply Commit 84ab1f3c66a5.

Aarch64 may not build correctly because the makefile may use the wrong CXXFLAGS during feature testing. If Aarch64 fails to build then apply Commit 7c7a12c58422.

Thanks to László Böszörményi and Nicolas Chauvet for help with the problems.

File Changes

Below is a list of all files that were added at Crypto++ 8.1. keccakc.h and keccakc.cpp were refactored and deleted.

$ git diff-tree -r --summary CRYPTOPP_8_0_0 CRYPTOPP_8_1_0 | grep -v "change" | awk '{$2=$3=""; print $0}' | egrep '(\.h|\.cpp|\.txt|\.dat)'
create   TestVectors/aead.txt
create   TestVectors/chacha20poly1305.txt
create   TestVectors/poly1305_tls.txt
create   TestVectors/poly1305aes.txt
create   TestVectors/shake.txt
create   TestVectors/xchacha.txt
create   arm_simd.h
create   chachapoly.cpp
create   chachapoly.h
create   gf2n_simd.cpp
create   keccak_core.cpp
create   keccak_simd.cpp
create   shake.cpp
create   shake.h
delete   keccakc.cpp
delete   keccakc.h