This project implements core cryptographic primitives from scratch in C++ for educational purposes, with a focus on understanding the underlying mathematical and algorithmic foundations of cryptography.
Hash: MD5, SHA1, SHA256, SHA384, SHA256.
AES: ECB, CBC.
crypto-lib/
βββ build
βββ include
βΒ Β βββ crypto
βΒ Β βββ aes
βΒ Β βΒ Β βββ aes.hpp
βΒ Β βΒ Β βββ cbc.hpp
βΒ Β βΒ Β βββ ecb.hpp
βΒ Β βββ hash
βΒ Β βΒ Β βββ md5.hpp
βΒ Β βΒ Β βββ sha1.hpp
βΒ Β βΒ Β βββ sha256.hpp
βΒ Β βΒ Β βββ sha384.hpp
βΒ Β βΒ Β βββ sha512.hpp
βΒ Β βββ internal
βΒ Β βββ bitops.hpp
βββ src
βΒ Β βββ aes
βΒ Β βΒ Β βββ aes.cpp
βΒ Β βΒ Β βββ cbc.cpp
βΒ Β βΒ Β βββ ecb.cpp
βΒ Β βββ hash
βΒ Β βββ md5.cpp
βΒ Β βββ sha1.cpp
βΒ Β βββ sha256.cpp
βΒ Β βββ sha384.cpp
βΒ Β βββ sha512.cpp
βββ tests
βββ aes
βΒ Β βββ tests_aes.cpp
βββ hash
βΒ Β βββ tests_hash.cpp
βββ tests_main.cpp
βββ test_utils.hpp