Skip to content
Snippets Groups Projects
Commit 02c9aa1d authored by Robin Getz's avatar Robin Getz Committed by Wolfgang Denk
Browse files

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: default avatarRobin Getz <rgetz@analog.com>
parent a794f59a
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment