mirror of
https://git.yoctoproject.org/meta-security
synced 2026-07-21 05:27:04 +00:00
libmhash: add new recipe
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>
This commit is contained in:
committed by
Armin Kuster
parent
6344eb9082
commit
67073d2ab7
@@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# Makefile for compiling mhash tests
|
||||||
|
#
|
||||||
|
|
||||||
|
ALL = mhash
|
||||||
|
|
||||||
|
all: $(ALL)
|
||||||
|
|
||||||
|
mhash: mhash.c
|
||||||
|
$(CC) $(CFLAGS) $(LDFLAGS) -o mhash mhash.c -lmhash
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.debug $(ALL)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
#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);
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
OUTPUT=$($(dirname $0)/mhash)
|
||||||
|
MHASH_MD5="0x750c783e6ab0b503eaa86e310a5db738"
|
||||||
|
|
||||||
|
if [ x"$OUTPUT" = x"$MHASH_MD5" ]; then
|
||||||
|
echo "PASS: mhash ptest"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "FAIL: mhash ptest"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
SUMMARY = "Library of hashing algorithms."
|
||||||
|
DESCRIPTION = "\
|
||||||
|
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. \
|
||||||
|
"
|
||||||
|
HOMEPAGE = "http://mhash.sourceforge.net/"
|
||||||
|
|
||||||
|
LICENSE = "LGPLv2.0"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/mhash-${PV}"
|
||||||
|
|
||||||
|
SECTION = "libs"
|
||||||
|
|
||||||
|
SRC_URI = "${SOURCEFORGE_MIRROR}/mhash/mhash-${PV}.tar.bz2 \
|
||||||
|
file://Makefile.test \
|
||||||
|
file://mhash.c \
|
||||||
|
file://run-ptest \
|
||||||
|
"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "f91c74f9ccab2b574a98be5bc31eb280"
|
||||||
|
SRC_URI[sha256sum] = "56521c52a9033779154432d0ae47ad7198914785265e1f570cee21ab248dfef0"
|
||||||
|
|
||||||
|
inherit autotools-brokensep ptest
|
||||||
|
|
||||||
|
do_compile_ptest() {
|
||||||
|
if [ ! -d ${S}/demo ]; then mkdir ${S}/demo; fi
|
||||||
|
cp ${WORKDIR}/Makefile.test ${S}/demo/Makefile
|
||||||
|
cp ${WORKDIR}/mhash.c ${S}/demo/
|
||||||
|
make -C ${S}/demo CFLAGS="${CFLAGS} -I${S}/include/" LDFLAGS="${LDFLAGS} -L${S}/lib/.libs"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install_ptest() {
|
||||||
|
install -m 0755 ${S}/demo/mhash ${D}${PTEST_PATH}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user