From 766529fccc860ecb9e955b4239dff69cd9e4ea09 Mon Sep 17 00:00:00 2001 From: Bartlomiej Sieka Date: Fri, 14 Mar 2008 16:22:34 +0100 Subject: Add MD5 support to the new uImage format Signed-off-by: Bartlomiej Sieka diff --git a/Makefile b/Makefile index c56518f..3bb8a74 100644 --- a/Makefile +++ b/Makefile @@ -2873,7 +2873,7 @@ clobber: clean @rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS \ $(obj)cscope.* $(obj)*.*~ @rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL) - @rm -f $(obj)tools/{crc32.c,environment.c,env/crc32.c,sha1.c,inca-swap-bytes} + @rm -f $(obj)tools/{crc32.c,environment.c,env/crc32.c,md5.c,sha1.c,inca-swap-bytes} @rm -f $(obj)tools/{image.c,fdt.c,fdt_ro.c,fdt_rw.c,fdt_strerror.c} @rm -f $(obj)tools/{fdt_wip.c,libfdt_internal.h} @rm -f $(obj)cpu/mpc824x/bedbug_603e.c diff --git a/common/image.c b/common/image.c index a2a739e..6508df9 100644 --- a/common/image.c +++ b/common/image.c @@ -54,6 +54,7 @@ #endif #if defined(CONFIG_FIT) +#include #include static int fit_check_ramdisk (const void *fit, int os_noffset, @@ -70,6 +71,7 @@ static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, int verify); #else #include "mkimage.h" +#include #include #include #endif /* !USE_HOSTCC*/ @@ -1940,8 +1942,8 @@ static int calculate_hash (const void *data, int data_len, const char *algo, (unsigned char *) value); *value_len = 20; } else if (strcmp (algo, "md5") == 0 ) { - printf ("MD5 not supported\n"); - *value_len = 0; + md5 ((unsigned char *)data, data_len, value); + *value_len = 16; } else { debug ("Unsupported hash alogrithm\n"); return -1; diff --git a/include/image.h b/include/image.h index fbd8c30..f22dafd 100644 --- a/include/image.h +++ b/include/image.h @@ -64,6 +64,7 @@ #include #include #include +#define CONFIG_MD5 /* FIT images need MD5 support */ #endif /* diff --git a/tools/.gitignore b/tools/.gitignore index 0ce2e77..979f2da 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -4,6 +4,7 @@ /environment.c /gen_eth_addr /img2srec +/md5.c /mkimage /sha1.c /ubsha1 diff --git a/tools/Makefile b/tools/Makefile index aa4af18..9f0dedf 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -23,7 +23,7 @@ BIN_FILES = img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) ubsha1$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX) -OBJ_LINKS = environment.o crc32.o sha1.o image.o +OBJ_LINKS = environment.o crc32.o md5.o sha1.o image.o OBJ_FILES = img2srec.o mkimage.o envcrc.o ubsha1.o gen_eth_addr.o bmp_logo.o ifeq ($(ARCH),mips) @@ -143,7 +143,7 @@ $(obj)img2srec$(SFX): $(obj)img2srec.o $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(STRIP) $@ -$(obj)mkimage$(SFX): $(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)sha1.o $(LIBFDT_OBJ_FILES) +$(obj)mkimage$(SFX): $(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)md5.o $(obj)sha1.o $(LIBFDT_OBJ_FILES) $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(STRIP) $@ @@ -176,6 +176,9 @@ $(obj)ubsha1.o: $(src)ubsha1.c $(obj)crc32.o: $(obj)crc32.c $(CC) -g $(CFLAGS) -c -o $@ $< +$(obj)md5.o: $(obj)md5.c + $(CC) -g $(CFLAGS) -c -o $@ $< + $(obj)sha1.o: $(obj)sha1.c $(CC) -g $(CFLAGS) -c -o $@ $< @@ -237,6 +240,10 @@ $(obj)crc32.c: @rm -f $(obj)crc32.c ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c +$(obj)md5.c: + @rm -f $(obj)md5.c + ln -s $(src)../lib_generic/md5.c $(obj)md5.c + $(obj)sha1.c: @rm -f $(obj)sha1.c ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c -- cgit v0.10.2