#include "md.h"
const char * sha1(const char * payloadStr) {
const char *payload = payloadStr;
int size = 20;
byte shaResult[size];
mbedtls_md_context_t ctx;
mbedtls_md_type_t md_type = MBEDTLS_MD_SHA1;
const size_t payloadLength = strlen(payload);
mbedtls_md_init(&ctx);
mbedtls_md_setup(&ctx, mbedtls_md_info_from_type(md_type), 0);
mbedtls_md_starts(&ctx);
mbedtls_md_update(&ctx, (const unsigned char *) payload, payloadLength);
mbedtls_md_finish(&ctx, shaResult);
mbedtls_md_free(&ctx);
String hashStr = "";
for (uint16_t i = 0; i < size; i++) {
String hex = String(shaResult[i], HEX);
if (hex.length() < 2) {
hex = "0" + hex;
}
hashStr += hex;
}
return hashStr.c_str();
}
void setup()
{
Serial.begin(115200);
char *payload = "Hello SHA 256 from ESP32learning";
byte shaResult[32];
mbedtls_md_context_t ctx;
mbedtls_md_type_t md_type = MBEDTLS_MD_SHA256;
const size_t payloadLength = strlen(payload);
mbedtls_md_init(&ctx);
mbedtls_md_setup(&ctx, mbedtls_md_info_from_type(md_type), 0);
mbedtls_md_starts(&ctx);
mbedtls_md_update(&ctx, (const unsigned char *) payload, payloadLength);
mbedtls_md_finish(&ctx, shaResult);
mbedtls_md_free(&ctx);
Serial.print("Hash: ");
for(int i= 0; i< sizeof(shaResult); i++)
{
char str[3];
sprintf(str, "%02x", (int)shaResult[i]);
Serial.print(str);
}
Serial.println("");
const char * s="Hash: ";
Serial.println(sha1("Georgi"));
}
void loop()
{
}