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
);
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.
hmac_sha256/examples/simple_example.cpp
Lines 13 to 26 in 79a57d2
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.