diff options
| author | Robin Getz <rgetz@blackfin.uclinux.org> | 2009-07-27 00:07:59 -0400 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2009-08-25 12:57:54 +0200 | 
| commit | 02c9aa1d41f73fdcf8383a36cc0cbbfaf952855d (patch) | |
| tree | 639c20b08f9a4f140a67d6ff1ff58ff648c0b83d /common/cmd_mem.c | |
| parent | a794f59a75bf9fd4a44f1ad2349cae903c42b89c (diff) | |
| download | olio-uboot-2014.01-02c9aa1d41f73fdcf8383a36cc0cbbfaf952855d.tar.xz olio-uboot-2014.01-02c9aa1d41f73fdcf8383a36cc0cbbfaf952855d.zip | |
Add md5sum and sha1 commands...
Now that we have sha1 and md5 in lib_generic, allow people to use
them on the command line, for checking downloaded files.
Signed-off-by: Robin Getz <rgetz@analog.com>
Diffstat (limited to 'common/cmd_mem.c')
| -rw-r--r-- | common/cmd_mem.c | 68 | 
1 files changed, 68 insertions, 0 deletions
| diff --git a/common/cmd_mem.c b/common/cmd_mem.c index cdf8c798d..98508003b 100644 --- a/common/cmd_mem.c +++ b/common/cmd_mem.c @@ -34,6 +34,9 @@  #endif  #include <watchdog.h> +#include <u-boot/md5.h> +#include <sha1.h> +  #ifdef	CMD_MEM_DEBUG  #define	PRINTF(fmt,args...)	printf (fmt ,##args)  #else @@ -1141,6 +1144,55 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  }  #endif	/* CONFIG_CRC32_VERIFY */ +#ifdef CONFIG_CMD_MD5SUM +int do_md5sum(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ +	unsigned long addr, len; +	unsigned int i; +	u8 output[16]; + +	if (argc < 3) { +		cmd_usage(cmdtp); +		return 1; +	} + +	addr = simple_strtoul(argv[1], NULL, 16); +	len = simple_strtoul(argv[2], NULL, 16); + +	md5((unsigned char *) addr, len, output); +	printf("md5 for %08lx ... %08lx ==> ", addr, addr + len - 1); +	for (i = 0; i < 16; i++) +		printf("%02x", output[i]); +	printf("\n"); + +	return 0; +} +#endif + +#ifdef CONFIG_CMD_SHA1 +int do_sha1sum(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ +	unsigned long addr, len; +	unsigned int i; +	u8 output[20]; + +	if (argc < 3) { +		cmd_usage(cmdtp); +		return 1; +	} + +	addr = simple_strtoul(argv[1], NULL, 16); +	len = simple_strtoul(argv[2], NULL, 16); + +	sha1_csum((unsigned char *) addr, len, output); +	printf("SHA1 for %08lx ... %08lx ==> ", addr, addr + len - 1); +	for (i = 0; i < 20; i++) +		printf("%02x", output[i]); +	printf("\n"); + +	return 0; +} +#endif  #ifdef CONFIG_CMD_UNZIP  int  gunzip (void *, int, unsigned char *, unsigned long *); @@ -1267,6 +1319,22 @@ U_BOOT_CMD(  );  #endif /* CONFIG_MX_CYCLIC */ +#ifdef CONFIG_CMD_MD5SUM +U_BOOT_CMD( +	md5sum,	3,	1,	do_md5sum, +	"compute MD5 message digest", +	"address count" +); +#endif + +#ifdef CONFIG_CMD_SHA1SUM +U_BOOT_CMD( +	sha1sum,	3,	1,	do_sha1sum, +	"compute SHA1 message digest", +	"address count" +); +#endif /* CONFIG_CMD_SHA1 */ +  #ifdef CONFIG_CMD_UNZIP  U_BOOT_CMD(  	unzip,	4,	1,	do_unzip, |