mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
hash.c: Conditionally compile hash_command, static hash_show
The function hash_show is now only called by hash_command, so mark it as static (and drop from hash.h). We only call hash_command when any of CONFIG_CMD_CRC32, CONFIG_CMD_SHA1SUM or CONFIG_CMD_HASH are set. Since hash.c is linked in unconditionally we must take extra care with functions that bring in read-only strings as these will not be discarded. Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
d29892ba85
commit
48ad68deb8
2 changed files with 25 additions and 38 deletions
|
@ -247,6 +247,29 @@ int hash_parse_string(const char *algo_name, const char *str, uint8_t *result)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int hash_block(const char *algo_name, const void *data, unsigned int len,
|
||||
uint8_t *output, int *output_size)
|
||||
{
|
||||
struct hash_algo *algo;
|
||||
int ret;
|
||||
|
||||
ret = hash_lookup_algo(algo_name, &algo);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (output_size && *output_size < algo->digest_size) {
|
||||
debug("Output buffer size %d too small (need %d bytes)",
|
||||
*output_size, algo->digest_size);
|
||||
return -ENOSPC;
|
||||
}
|
||||
if (output_size)
|
||||
*output_size = algo->digest_size;
|
||||
algo->hash_func_ws(data, len, output, algo->chunk_size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_CMD_HASH) || defined(CONFIG_CMD_SHA1SUM) || defined(CONFIG_CMD_CRC32)
|
||||
/**
|
||||
* store_result: Store the resulting sum to an address or variable
|
||||
*
|
||||
|
@ -359,7 +382,7 @@ static int parse_verify_sum(struct hash_algo *algo, char *verify_str,
|
|||
return 0;
|
||||
}
|
||||
|
||||
void hash_show(struct hash_algo *algo, ulong addr, ulong len, uint8_t *output)
|
||||
static void hash_show(struct hash_algo *algo, ulong addr, ulong len, uint8_t *output)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -368,28 +391,6 @@ void hash_show(struct hash_algo *algo, ulong addr, ulong len, uint8_t *output)
|
|||
printf("%02x", output[i]);
|
||||
}
|
||||
|
||||
int hash_block(const char *algo_name, const void *data, unsigned int len,
|
||||
uint8_t *output, int *output_size)
|
||||
{
|
||||
struct hash_algo *algo;
|
||||
int ret;
|
||||
|
||||
ret = hash_lookup_algo(algo_name, &algo);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (output_size && *output_size < algo->digest_size) {
|
||||
debug("Output buffer size %d too small (need %d bytes)",
|
||||
*output_size, algo->digest_size);
|
||||
return -ENOSPC;
|
||||
}
|
||||
if (output_size)
|
||||
*output_size = algo->digest_size;
|
||||
algo->hash_func_ws(data, len, output, algo->chunk_size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag,
|
||||
int argc, char * const argv[])
|
||||
{
|
||||
|
@ -473,3 +474,4 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag,
|
|||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -114,21 +114,6 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag,
|
|||
int hash_block(const char *algo_name, const void *data, unsigned int len,
|
||||
uint8_t *output, int *output_size);
|
||||
|
||||
/**
|
||||
* hash_show() - Print out a hash algorithm and value
|
||||
*
|
||||
* You will get a message like this (without a newline at the end):
|
||||
*
|
||||
* "sha1 for 9eb3337c ... 9eb3338f ==> 7942ef1df479fd3130f716eb9613d107dab7e257"
|
||||
*
|
||||
* @algo: Algorithm used for hash
|
||||
* @addr: Address of data that was hashed
|
||||
* @len: Length of data that was hashed
|
||||
* @output: Hash value to display
|
||||
*/
|
||||
void hash_show(struct hash_algo *algo, ulong addr, ulong len,
|
||||
uint8_t *output);
|
||||
|
||||
#endif /* !USE_HOSTCC */
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue