cppcrypto provides optimized implementations of cryptographic primitives.

Hash functions: BLAKE, BLAKE2, Echo, Esch, Groestl, JH, Kupyna, MD5, SHA-1, SHA-2, SHA-3, SHAKE, Skein, SM3, Streebog, Whirlpool.

Block ciphers: Anubis, Aria, Camellia, CAST-256, Kalyna, Kuznyechik, Mars, Serpent, Simon, SM4, Speck, Threefish, Twofish, and Rijndael (AES) with all block/key sizes.

Stream ciphers: HC-128, HC-256, Salsa20, XSalsa20, ChaCha, XChaCha.

Encryption modes: CBC, CTR.

AEAD modes: Encrypt-then-MAC (EtM), GCM, OCB, ChaCha-Poly1305, Schwaemm.

Streaming AEAD.

MAC functions: HMAC, Poly1305.

Key derivation functions: PBKDF2, scrypt, Argon2, HKDF.

Includes sample command-line tools:
- 'digest' - for calculating and verifying file checksum(s) using any of the supported hash algorithms (similar to md5sum or RHash).
- 'cryptor' - for file encryption using Serpent-256 algorithm in AEAD mode.

Check out the cppcrypto web site linked below for programming documentation.

Features

  • Simple self-explanatory programming interface.
  • Hash functions: BLAKE, BLAKE2, Echo, Esch, Grøstl, JH, Kupyna, MD5, SHA-1, SHA-2, SHA-3, SHAKE, Skein, SM3, Streebog, Whirlpool.
  • Block ciphers: Rijndael (AES), Anubis, Aria, Camellia, CAST-256, Kalyna, Kuznyechik, Mars, Serpent, Simon-128, SM4, Speck-128, Threefish, Twofish.
  • Stream ciphers: HC-128, HC-256, Salsa20/20, Salsa20/12, XSalsa20/20, XSalsa20/12, ChaCha20, ChaCha12, XChaCha20, XChaCha12.
  • Encryption modes: CBC, CTR.
  • AEAD modes: Encrypt-then-MAC, GCM, OCB, ChaCha-Poly1305, Schwaemm.
  • Streaming authenticated encryption with associated data (Streaming AEAD).
  • MAC functions: HMAC, Poly1305.
  • Key derivation functions: PBKDF2, scrypt, Argon2i/Argon2d/Argon2id, HKDF
  • Tested compilers: Visual C++ 2017, Visual C++ 2019, Visual C++ 2022, gcc 12.2.1, clang 13.0.0, clang 15.0.7.
  • Tested operating systems: Windows, Linux, FreeBSD, OS X, Solaris
  • Includes portable implementations and optimized implementations (using SSE/AVX/etc) for modern CPUs.
  • The fastest implementation is selected dynamically at runtime depending on CPU features.
  • The only publicly-available implementation of AES-NI acceleration for all 25 Rijndael variants (not only for 3 AES variants).
  • The only publicly-available performance-optimized implementation of Kupyna hash function (Ukrainian national standard DSTU 7564:2014).
  • The first publicly-available performance-optimized implementation of Kalyna block cipher (Ukrainian national standard DSTU 7624:2014).
  • One of the first independent implementations of Argon2 password hashing function.
  • Support for Salsa20 and ChaCha variants with 192-bit nonce (XSalsa20/XChaCha).
  • Includes command-line digest utility for calculating file checksums (hashes) and demonstrating library usage.
  • Includes command-line cryptor utility for authenticated file enryption using Serpent-256 and demonstrating library usage.
  • Documentation is available at http://cppcrypto.sourceforge.net/

Project Activity

See All Activity >

License

BSD License

Follow cppcrypto

cppcrypto Web Site

Other Useful Business Software
MongoDB Atlas runs apps anywhere Icon
MongoDB Atlas runs apps anywhere

Deploy in 115+ regions with the modern database for every enterprise.

MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
Start Free
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
1
0
0
0
0
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5

User Reviews

  • Very fast library. I was looking for a C library to replace PHP's mcrypt. Using my crude benchmark on Rijndael 256, cppcrypto is about 60x faster than mcrypt.
Read more reviews >

Additional Project Details

Operating Systems

Solaris, Linux, FreeBSD, Mac, Windows

Intended Audience

Developers

Programming Language

C++

Related Categories

C++ Cryptography Software, C++ Libraries, C++ Encryption Algorithms

Registered

2015-09-10