summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartlomiej Sieka <tur@semihalf.com>2008-03-14 16:22:34 +0100
committerBartlomiej Sieka <tur@semihalf.com>2008-03-14 16:22:34 +0100
commit766529fccc860ecb9e955b4239dff69cd9e4ea09 (patch)
tree8fab1a4b93df22aa183d6f049ecf99c876e35ffc
parent0ede0c383530a418cf98be9122371a86573cd0db (diff)
Add MD5 support to the new uImage format
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
-rw-r--r--Makefile2
-rw-r--r--common/image.c6
-rw-r--r--include/image.h1
-rw-r--r--tools/.gitignore1
-rw-r--r--tools/Makefile11
5 files changed, 16 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index c56518fb9e5..3bb8a74dacf 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 a2a739e79d4..6508df955ce 100644
--- a/common/image.c
+++ b/common/image.c
@@ -54,6 +54,7 @@
#endif
#if defined(CONFIG_FIT)
+#include <md5.h>
#include <sha1.h>
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 <md5.h>
#include <time.h>
#include <image.h>
#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 fbd8c304e4b..f22dafd650e 100644
--- a/include/image.h
+++ b/include/image.h
@@ -64,6 +64,7 @@
#include <fdt.h>
#include <libfdt.h>
#include <fdt_support.h>
+#define CONFIG_MD5 /* FIT images need MD5 support */
#endif
/*
diff --git a/tools/.gitignore b/tools/.gitignore
index 0ce2e77bd6b..979f2dac0db 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 aa4af1823b7..9f0dedfa3bd 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