https://github.com/mcmilk/cppcrypto
Mirror of C++ cryptographic library (modern hash functions, ciphers, KDFs) by @kerukuro
https://github.com/mcmilk/cppcrypto
Last synced: 3 months ago
JSON representation
Mirror of C++ cryptographic library (modern hash functions, ciphers, KDFs) by @kerukuro
- Host: GitHub
- URL: https://github.com/mcmilk/cppcrypto
- Owner: mcmilk
- Created: 2024-01-13T11:30:45.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-01-13T11:41:07.000Z (over 1 year ago)
- Last Synced: 2025-01-18T05:42:46.535Z (5 months ago)
- Language: C++
- Size: 13 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Git mirror of cppcrypto
cppcrypto provides optimized implementations of cryptographic primitives.
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](https://sourceforge.net/projects/cppcrypto/) 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).# Author and reference
- Github page of [Keru Kuro](https://github.com/kerukuro)
- Sourceforge page of [Keru Kuro](https://sourceforge.net/u/kerukuro/profile/)
- Homepage of [cppcrypto](https://sourceforge.net/projects/cppcrypto/) @ Sourceforge/TR 2024-01-13