static int do_hash(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
char *s;
-#ifdef CONFIG_HASH_VERIFY
int flags = HASH_FLAG_ENV;
+#ifdef CONFIG_HASH_VERIFY
if (argc < 4)
return CMD_RET_USAGE;
if (!strcmp(argv[1], "-v")) {
argc--;
argv++;
}
-#else
- const int flags = HASH_FLAG_ENV;
#endif
/* Move forward to 'algorithm' parameter */
argc--;
}
#ifdef CONFIG_HASH_VERIFY
-U_BOOT_CMD(
- hash, 6, 1, do_hash,
- "compute hash message digest",
- "algorithm address count [[*]sum_dest]\n"
- " - compute message digest [save to env var / *address]\n"
- "hash -v algorithm address count [*]sum\n"
- " - verify hash of memory area with env var / *address"
-);
+#define HARGS 6
#else
+#define HARGS 5
+#endif
+
U_BOOT_CMD(
- hash, 5, 1, do_hash,
- "compute message digest",
- "algorithm address count [[*]sum_dest]\n"
+ hash, HARGS, 1, do_hash,
+ "compute hash message digest",
+ "algorithm address count [[*]hash_dest]\n"
" - compute message digest [save to env var / *address]"
-);
+#ifdef CONFIG_HASH_VERIFY
+ "\nhash -v algorithm address count [*]hash\n"
+ " - verify message digest of memory area to immediate value, \n"
+ " env var or *address"
#endif
+);
env_var = 1;
}
- if (env_var) {
+ if (!env_var) {
ulong addr;
void *buf;
{
ulong addr, len;
- if (argc < 2)
+ if ((argc < 2) || ((flags & HASH_FLAG_VERIFY) && (argc < 3)))
return CMD_RET_USAGE;
addr = simple_strtoul(*argv++, NULL, 16);
#else
if (0) {
#endif
- if (!argc)
- return CMD_RET_USAGE;
if (parse_verify_sum(algo, *argv, vsum,
flags & HASH_FLAG_ENV)) {
printf("ERROR: %s does not contain a valid "