Improve example code
This commit is contained in:
parent
fec119781d
commit
a9cfd5e8f6
35
README.md
35
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 <iostream>
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
#include <tuple>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
int main(void) {
|
||||
#define SHA256_HASHLEN 32
|
||||
|
||||
int main() {
|
||||
const std::string testvector = "b0344c61d8db38535ca8afceafbf12b881dc20c9833da726e9376c2e32cff7";
|
||||
const std::string str_data = "Hi There";
|
||||
|
||||
std::vector<uint8_t> 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(),
|
||||
hmac_sha256(
|
||||
key.data(), key.size(),
|
||||
data.data(), data.size(),
|
||||
out.data(), out.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;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue