ESPRESSIF
ESP32 - SHA256 HMAC 실행 예제
DeviceIN
2023. 3. 31. 15:47
ESP32 IDF를 이용하여 SHA256 HMAC을 실행하는 예제 코드입니다.
이 예제는 ESP-IDF의 mbedtls 라이브러리를 사용하여 SHA256 HMAC을 계산합니다.
예제 코드는 "my-secret-key"라는 키와 "hello world"라는 메시지를 사용하여 SHA256 HMAC을 계산합니다.
출력 결과는 32바이트(256비트)의 SHA256 HMAC 값입니다.
이 코드를 ESP32 IDF에서 실행하면 SHA256 HMAC을 계산할 수 있습니다.
#include <stdio.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "mbedtls/md.h"
#include "mbedtls/md_internal.h"
void sha256_hmac(const char *key, const char *message, unsigned char *output)
{
mbedtls_md_context_t ctx;
const mbedtls_md_info_t *info_sha256;
mbedtls_md_init(&ctx);
info_sha256 = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256);
mbedtls_md_setup(&ctx, info_sha256, 1);
mbedtls_md_hmac_starts(&ctx, (const unsigned char *)key, strlen(key));
mbedtls_md_hmac_update(&ctx, (const unsigned char *)message, strlen(message));
mbedtls_md_hmac_finish(&ctx, output);
mbedtls_md_free(&ctx);
}
void app_main()
{
char key[] = "my-secret-key";
char message[] = "hello world";
unsigned char output[32];
sha256_hmac(key, message, output);
printf("Key: %s\n", key);
printf("Message: %s\n", message);
printf("SHA256 HMAC: ");
for (int i = 0; i < 32; i++) {
printf("%02x", output[i]);
}
printf("\n");
}