diff --git a/README.md b/README.md index 0c8e28f..6628790 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,38 @@ # [hmac_sha256](https://github.com/h5p9sl/hmac_sha256) A SHA256 HMAC implementation in C/C++ -## Example (C++) +## Usage Example (C++) ```cpp #include "hmac_sha256.h" -#include -#include #include #include -#include -#include +#include +#include -int main(void) { +#define SHA256_HASHLEN 32 + +int main() { const std::string testvector = "b0344c61d8db38535ca8afceafbf12b881dc20c9833da726e9376c2e32cff7"; + const std::string str_data = "Hi There"; + std::vector key, data, out; std::stringstream result; // Allocate memory - key.resize(20); - data.resize(8); - out.resize(32); + key.resize(20, 0x0b); + data.resize(str_data.length(), 0); + out.resize(SHA256_HASHLEN, 0); - // Initialize variables - strncpy((char*)data.data(), "Hi There", data.size()); - memset(key.data(), 0x0b, key.size()); + // Fill data + data.assign(str_data.cbegin(), str_data.cend()); // Call hmac sha256 function - hmac_sha256(key.data(), key.size(), - data.data(), data.size(), - out.data(), out.size()); + hmac_sha256( + key.data(), key.size(), + data.data(), data.size(), + out.data(), out.size() + ); // Convert 'out' to string for (unsigned i = 0; i < out.size(); i++) { @@ -41,9 +44,9 @@ int main(void) { // Compare result if (testvector.compare(result.str()) == 0) { std::cout << "Test passed!" << std::endl; - return 0; + } else { + std::cout << "Test failed." << std::endl; } - std::cout << "Test failed." << std::endl; return 0; }