rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sha256.h>#define KEY "Secured"/* *Key = 4a656665 ("Jefe") Data = 7768617420646f2079612077616e7420 ("what do ya want ") 666f72206e6f7468696e673f ("for nothing?") HMAC-SHA-256 = 5bdcc146bf60754e6a042426089575c7 5a003f089d2739839dec58b964ec3843*/void hmac (unsigned char * key, unsigned char * message){ unsigned char new_key[32]; unsigned char ipad[32]; unsigned char opad[32]; unsigned char * new_msg; unsigned char digest[32] = ""; unsigned char digest2[32]; SHA256_CTX context; new_msg = malloc(strlen(message) + 32); int i; memset(new_key, '\0', 32); memcpy(&new_key, key, strlen(key)); for (i = 0; i < 32; i++) { ipad[i] = 0x36 ^ new_key[i]; opad[i] = 0x5c ^ new_key[i]; } memcpy(new_msg, &ipad, 32); memcpy(new_msg+32, message, strlen(message)); SHA256_Init(&context); SHA256_Update(&context, new_msg, strlen(message)+32); SHA256_Final(digest, &context); memset(new_key, '\0', 64); memcpy(new_msg, &opad, 32); memcpy(new_msg+32, &digest, 32); SHA256_Init(&context); SHA256_Update(&context, new_msg, 64); SHA256_Final(digest2, &context); printf("HMAC: "); for (i = 0; i < 32; i++) { printf("%2x", digest2[i]); if (((i+1) % 4) == 0 && i != 32-1) printf("-"); } printf("\n"); free(new_msg); return;}int main (){ unsigned char input[128] = ""; unsigned char c; int i = 0; while ((c = getchar()) != '\n' && i != 127) { input[i] = c; i++; } input[i+1] = '0'; hmac("Jefe", input); return 0;}