Skip to content

StrataSource/cryptopp-modern

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

cryptopp-modern

A maintained, modernized fork of Crypto++ with new algorithms and security improvements

Version License


Overview

🌐 Website: cryptopp-modern.com

cryptopp-modern is an actively maintained fork of Crypto++ 8.9.0 featuring:

  • ✨ BLAKE3 - Modern, fast cryptographic hash function
  • ✨ Argon2 - RFC 9106 password hashing (Argon2d, Argon2i, Argon2id)
  • πŸ”’ Security Patches - Marvin attack fix (CVE-2023-50979), ESIGN improvements
  • πŸ“… Calendar Versioning - Clear release dates (YEAR.MONTH.INCREMENT format)
  • πŸ”„ Active Maintenance - Regular updates and improvements
  • βœ… Drop-in Compatible - Uses same CryptoPP namespace

What's New in 2025.12.0

  • πŸ“ Complete Project Reorganization - All 204 source files organized into categorized src/ directories
  • ⚑ BLAKE3 SIMD Acceleration - SSE4.1/AVX2/NEON parallel chunk processing (~2500 MiB/s)
  • πŸ”§ Modern CMake Build System - CMake 3.20+ with presets, find_package() support, and proper target exports
  • πŸ”§ Build System Updates - Updated GNUmakefile, MSVC projects, and nmake for new structure
  • πŸ“¦ Backward Compatible - Flat include/cryptopp/ structure maintained for drop-in replacement
  • βœ… Multi-Platform CI/CD - 50+ build configurations tested on Windows, Linux, and macOS
  • πŸ“š Comprehensive Documentation - CMAKE.md, GNUMAKEFILE.md, and GETTING_STARTED.md guides

Quick Build

CMake (Recommended)

cmake --preset=default
cmake --build build/default
./build/default/cryptest.exe v

GNUmakefile

make -j$(nproc)
./cryptest.exe v

See CMAKE.md or GNUMAKEFILE.md for detailed build instructions.


Documentation


Why Fork?

Upstream Crypto++ Status:

  • Last release: 8.9.0 (October 1, 2023)
  • Version encoding limitation (cannot represent 8.10.0)
  • Slower development pace

cryptopp-modern Goals:

  • Active maintenance and regular releases
  • Modern algorithm support (BLAKE3, Argon2, future: post-quantum)
  • Better code organization
  • Modern CMake build system
  • Calendar versioning
  • Community-driven development

See FORK.md for detailed explanation.


Features

Cryptographic Algorithms

Hash Functions:

  • SHA-2, SHA-3, BLAKE2b/s, BLAKE3 ⭐
  • MD5, RIPEMD, Tiger, Whirlpool, SipHash

Password Hashing / KDF:

  • Argon2 (d/i/id) ⭐ RFC 9106
  • PBKDF2, Scrypt, HKDF

Symmetric Encryption:

  • AES, ChaCha20, Serpent, Twofish, Camellia, ARIA
  • Modes: GCM, CCM, EAX, CBC, CTR, and more

Public Key Cryptography:

  • RSA, DSA, ECDSA, Ed25519
  • Diffie-Hellman, ECIES, ElGamal

Message Authentication:

  • HMAC, CMAC, GMAC, Poly1305

See Readme.txt for complete algorithm list.


Migration from Crypto++ 8.9.0

Good news: Most code works unchanged!

Compatible βœ“

  • All existing algorithms and APIs
  • Same CryptoPP namespace
  • Version checks: #if CRYPTOPP_VERSION >= N

Changed ⚠️

  • Version encoding: Now YEAR*10000 + MONTH*100 + INCREMENT
  • Version parsing: Use /10000 for year, (n/100)%100 for month

Example:

// Old (8.9.0)
const int major = CRYPTOPP_VERSION / 100;  // Gets 8

// New (2025.11.0)
const int year = CRYPTOPP_VERSION / 10000;  // Gets 2025
const int month = (CRYPTOPP_VERSION / 100) % 100;  // Gets 11

Contributing

Contributions are welcome! Areas where you can help:

  • πŸ› Bug reports and fixes
  • ✨ New algorithm implementations
  • πŸ“š Documentation improvements
  • πŸ§ͺ Tests and test vectors
  • πŸ”§ Build system enhancements

If you're migrating from Crypto++ 8.9.0 and encounter any issues, please open an issue – migration feedback is especially valuable.

Please:

  1. Fork the repository
  2. Create a feature branch
  3. Follow existing code style
  4. Add tests for new features
  5. Submit a pull request

License

Like the original Crypto++, this library uses:

  • Compilation: Boost Software License 1.0
  • Individual files: Public domain

See License.txt for details.


Contact


Acknowledgments

cryptopp-modern builds upon the excellent work of:

  • Wei Dai - Original Crypto++ creator and maintainer
  • The Crypto++ team - All contributors to upstream Crypto++
  • BLAKE3 team - Modern cryptographic hash design
  • Argon2 team - Password hashing competition winner

Maintained by CoraleSoft

About

A maintained, modernized fork of Crypto++ with new algorithms and security improvements

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.md
Unknown
License.txt

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.2%
  • Shell 6.5%
  • C 6.4%
  • Assembly 3.8%
  • CMake 1.2%
  • Makefile 0.9%