#include <mhash.h> | |
#include <stdio.h> | |
int main() | |
{ | |
char password[] = "Jefe"; | |
int keylen = 4; | |
char data[] = "what do ya want for nothing?"; | |
int datalen = 28; | |
MHASH td; | |
unsigned char mac[16]; | |
int j; | |
td = mhash_hmac_init(MHASH_MD5, password, keylen, mhash_get_hash_pblock(MHASH_MD5)); | |
mhash(td, data, datalen); | |
mhash_hmac_deinit(td, mac); | |
/* | |
* The output should be 0x750c783e6ab0b503eaa86e310a5db738 | |
* according to RFC 2104. | |
*/ | |
printf("0x"); | |
for (j = 0; j < mhash_get_block_size(MHASH_MD5); j++) { | |
printf("%.2x", mac[j]); | |
} | |
printf("\n"); | |
exit(0); | |
} |