sha256.c (757B)
1 /* 2 * Author: Remy Noulin 3 * License: MIT 4 */ 5 6 #include "bconSha256.h" 7 #include "sha256.h" 8 #include "stdlib.h" 9 #include "string.h" 10 11 char *sha256S(const char *bufferToHash); 12 char *sha256_byteToHexString(BYTE data[]); 13 14 char *sha256S(const char *bufferToHash) { 15 if (!bufferToHash) return NULL; 16 17 SHA256_CTX ctx; 18 sha256_init(&ctx); 19 sha256_update(&ctx, bufferToHash, strlen(bufferToHash)); 20 BYTE result[32]; 21 sha256_final(&ctx, result); 22 23 char *hexS = sha256_byteToHexString(result); 24 return hexS; 25 } 26 27 char *sha256_byteToHexString(BYTE data[]) { 28 char *hexC = "0123456789abcdef"; 29 char *hexS = malloc(65); 30 if (!hexS) return NULL; 31 for(BYTE i; i<32; i++) { 32 hexS[i*2] = hexC[data[i]>>4]; 33 hexS[i*2+1] = hexC[data[i]&0xF]; 34 } 35 hexS[64] = 0; 36 return hexS; 37 }