#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include "SHA256.h"
void sha256_test(const char* test, const char* msg, const char* cmp)
{
uint32_t hash[8];
sha256((uint8_t*)msg, strlen(msg), hash);
char buffer[1024];
snprintf(buffer, 1024, "0x%08x%08x%08x%08x%08x%08x%08x%08x", hash[0],
hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7]);
if ( !strcmp(buffer, cmp) ) {
printf("%s: PASS\n", test);
} else {
printf("%s: FAIL\n", test);
printf("Hash: %s\n", buffer);
printf("Compare: %s\n", cmp);
exit(-1);
}
}
int main()
{
const char* test_str1 = "";
const char* test_str2 = "The quick brown fox jumps over the lazy dog.";
const char* test_str3 = "The quick brown fox jumps over the lazy dog";
sha256_test("SHA256 Test 1", test_str1, "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
sha256_test("SHA256 Test 2", test_str2, "0xef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c");
sha256_test("SHA256 Test 3", test_str3, "0xd7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592");
return 0;
}