Bug Report

From Crypto++ Wiki
Jump to: navigation, search

Crypto++ uses the issue tracker at Wei Dai's GitHub to track bugs and feature requests. It is located at Crypto++ Issues.

Before filing a bug report against Crypto++, please verify its an actual Crypto++ bug. Experience has taught us that many times the problem is with an IDE or build system, like Eclipse or Maven. See Verify the Bug below.

When filing a bug report, please provide necessary information, like version of the Crypto++ library, the operating systm, the compiler, the CXXFLAGS used to build the Crypto++ library and your program, exact error messages and stack traces. See What to File below.

If you have a feature request, then please check the Category:Patch page. There may be a patch available for the functionality. For example, the patch page already includes patches for cross-compiling on mobile platforms, reading and writing PEM encoded keys, Base64URLEncoder and Base64URLDecoder and Gzip and filetimes, filenames and comments.

Verify the Bug

Before filing a bug report against Crypto++, please verify its an actual Crypto++ bug. Perform the following steps to verify its an actual bug:

git clone https://github.com/weidai11/cryptopp.git cryptopp-test
cd cryptopp-test

make cryptest.exe

./cryptest.exe v
./cryptest.exe tv all

The steps above run the Crypto++ self tests. If the self tests pass, then the problem likely lies somewhere else, like an IDE or build system. In this case you should open a question on the Crypto++ User Group rather than filing a bug report.

Where to File

If you are experiencing trouble or a bug, then you should discuss them on the Crypto++ User Group and then file a bug report. Discussing them on the User Group helps ensure the issue comes to the attention of the right people. Otherwise, the issue may not make someone's radar.

In the distant past, the web site stated to send bug reports directly to Wei Dai. You should avoid emailing Wei directly because he is busy with his other duties and does not have unlimited cycles to provide to Crypto++.

What to file

When filing a bug report, please provide the following information.

  • a minimal program with a main() function, that reproduces the problem
  • the compiler and linker invocation
  • the exact error message
  • a stack trace with symbols
  • version of Crypto++, operating system, and compiler

Exact error message

The exact error message is important. Please don't say ...it fails to compile or ...there a compile error without telling us what the message is.

Stack Trace

Please copy from the call stack window of your debugger, or use the bt full command in gdb.

If the crash is reproducible and you have the sources, consider adding -ggdb to CXXFLAGS before submitting a report.

Operating System

Please provide the output of uname -a command if using Unix or Linux.

If you are using MinGW or CygWin (or some other tools-on-platform combination), be sure to provide the details.


Please provide the compiler maker and version.

For example, Visual C++ 6.0, 7.0, 7.1, or 8.0:

  • 7.0: Visual Studio .NET
  • 7.1: Visual Studio 2003
  • 8.0: Visual Studio 2005
  • 9.0: Visual Studio 2008

If using GCC, Clang or ICC, then the output of gcc -v. Sometimes the output of g++ -dummachine and g++ --version is needed.


If there is a platform or feature detection issue and you are using a GCC compatible compiler, then please include:

g++ -x c++ -dM -march=native -E - < /dev/null | sort | uniq