Minimal HMAC-SHA256 implementation in C / C++
https://github.com/h5p9sl/hmac_sha256
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
![]() |
1 year ago | |
---|---|---|
examples | 1 year ago | |
tests | 1 year ago | |
.clang-format | 2 years ago | |
.gitignore | 1 year ago | |
CMakeLists.txt | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 1 year ago | |
hmac_sha256.c | 2 years ago | |
hmac_sha256.h | 2 years ago | |
sha256.c | 2 years ago | |
sha256.h | 2 years ago |
README.md
hmac_sha256
Minimal HMAC-SHA256 implementation in C / C++
This repository provides minimal HMAC-Sha256 code you can copy into your own projects.
The hmac_sha256
function looks like this:
size_t // Returns the number of bytes written to `out`
hmac_sha256(
// [in]: The key and its length.
// Should be at least 32 bytes long for optimal security.
const void* key, const size_t keylen,
// [in]: The data to hash alongside the key.
const void* data, const size_t datalen,
// [out]: The output hash.
// Should be 32 bytes long. If it's less than 32 bytes,
// the resulting hash will be truncated to the specified length.
void* out, const size_t outlen
);
Contributing
All contributions are welcome, feature requests, or issues. I aim to tailor this code not only for myself, but for other's use cases too.
Usage Example (C++)
79a57d2a85/examples/simple_example.cpp (L13-L26)
Sha256 Implementation
Big thank you to WjCryptLib for providing the Sha256 implementation of which this project is based off. If you need more public domain cryptographic functions in C (sha, aes, md5), check them out.