mirror of
https://git.yoctoproject.org/meta-security
synced 2026-05-09 17:40:32 +00:00
aae40f506a
Mhash is a free (under GNU Lesser GPL) library which provides a uniform interface to a large number of hash algorithms. These algorithms can be used to compute checksums, message digests, and other signatures. Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
33 lines
676 B
C
33 lines
676 B
C
#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);
|
|
}
|