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>
This commit is contained in:
Robin Getz 2009-07-27 00:07:59 -04:00 committed by Wolfgang Denk
parent a794f59a75
commit 02c9aa1d41
2 changed files with 72 additions and 0 deletions

4
README
View File

@ -629,6 +629,8 @@ The following options need to be configured:
CONFIG_CMD_KGDB * kgdb
CONFIG_CMD_LOADB loadb
CONFIG_CMD_LOADS loads
CONFIG_CMD_MD5SUM print md5 message digest
(requires CONFIG_CMD_MEMORY and CONFIG_MD5)
CONFIG_CMD_MEMORY md, mm, nm, mw, cp, cmp, crc, base,
loop, loopw, mtest
CONFIG_CMD_MISC Misc functions like sleep etc
@ -652,6 +654,8 @@ The following options need to be configured:
(requires CONFIG_CMD_I2C)
CONFIG_CMD_SETGETDCR Support for DCR Register access
(4xx only)
CONFIG_CMD_SHA1 print sha1 memory digest
(requires CONFIG_CMD_MEMORY)
CONFIG_CMD_SOURCE "source" command Support
CONFIG_CMD_SPI * SPI serial bus support
CONFIG_CMD_USB * USB support

View File

@ -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,