Use hash.c in mkimage
Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com> CC: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
46fe2c0444
commit
2dd9002719
@ -10,15 +10,24 @@
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef USE_HOSTCC
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <malloc.h>
|
||||
#include <hw_sha.h>
|
||||
#include <hash.h>
|
||||
#include <u-boot/sha1.h>
|
||||
#include <u-boot/sha256.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/errno.h>
|
||||
#else
|
||||
#include "mkimage.h"
|
||||
#include <time.h>
|
||||
#include <image.h>
|
||||
#endif /* !USE_HOSTCC*/
|
||||
|
||||
#include <hash.h>
|
||||
#include <u-boot/crc.h>
|
||||
#include <u-boot/sha1.h>
|
||||
#include <u-boot/sha256.h>
|
||||
#include <u-boot/md5.h>
|
||||
|
||||
#ifdef CONFIG_SHA1
|
||||
static int hash_init_sha1(struct hash_algo *algo, void **ctxp)
|
||||
@ -173,6 +182,40 @@ static struct hash_algo hash_algo[] = {
|
||||
#define multi_hash() 0
|
||||
#endif
|
||||
|
||||
int hash_lookup_algo(const char *algo_name, struct hash_algo **algop)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(hash_algo); i++) {
|
||||
if (!strcmp(algo_name, hash_algo[i].name)) {
|
||||
*algop = &hash_algo[i];
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
debug("Unknown hash algorithm '%s'\n", algo_name);
|
||||
return -EPROTONOSUPPORT;
|
||||
}
|
||||
|
||||
int hash_progressive_lookup_algo(const char *algo_name,
|
||||
struct hash_algo **algop)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(hash_algo); i++) {
|
||||
if (!strcmp(algo_name, hash_algo[i].name)) {
|
||||
if (hash_algo[i].hash_init) {
|
||||
*algop = &hash_algo[i];
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
debug("Unknown hash algorithm '%s'\n", algo_name);
|
||||
return -EPROTONOSUPPORT;
|
||||
}
|
||||
|
||||
#ifndef USE_HOSTCC
|
||||
/**
|
||||
* store_result: Store the resulting sum to an address or variable
|
||||
*
|
||||
@ -293,39 +336,6 @@ static int parse_verify_sum(struct hash_algo *algo, char *verify_str,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hash_lookup_algo(const char *algo_name, struct hash_algo **algop)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(hash_algo); i++) {
|
||||
if (!strcmp(algo_name, hash_algo[i].name)) {
|
||||
*algop = &hash_algo[i];
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
debug("Unknown hash algorithm '%s'\n", algo_name);
|
||||
return -EPROTONOSUPPORT;
|
||||
}
|
||||
|
||||
int hash_progressive_lookup_algo(const char *algo_name,
|
||||
struct hash_algo **algop)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(hash_algo); i++) {
|
||||
if (!strcmp(algo_name, hash_algo[i].name)) {
|
||||
if (hash_algo[i].hash_init) {
|
||||
*algop = &hash_algo[i];
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
debug("Unknown hash algorithm '%s'\n", algo_name);
|
||||
return -EPROTONOSUPPORT;
|
||||
}
|
||||
|
||||
void hash_show(struct hash_algo *algo, ulong addr, ulong len, uint8_t *output)
|
||||
{
|
||||
int i;
|
||||
@ -439,3 +449,4 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag,
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
@ -17,7 +17,6 @@ enum {
|
||||
HASH_FLAG_ENV = 1 << 1, /* Allow env vars */
|
||||
};
|
||||
|
||||
#ifndef USE_HOSTCC
|
||||
#if defined(CONFIG_SHA1SUM_VERIFY) || defined(CONFIG_CRC32_VERIFY)
|
||||
#define CONFIG_HASH_VERIFY
|
||||
#endif
|
||||
@ -77,6 +76,7 @@ struct hash_algo {
|
||||
int size);
|
||||
};
|
||||
|
||||
#ifndef USE_HOSTCC
|
||||
/**
|
||||
* hash_command: Process a hash command for a particular algorithm
|
||||
*
|
||||
@ -114,6 +114,23 @@ 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 */
|
||||
|
||||
/**
|
||||
* hash_lookup_algo() - Look up the hash_algo struct for an algorithm
|
||||
*
|
||||
@ -141,19 +158,4 @@ int hash_lookup_algo(const char *algo_name, struct hash_algo **algop);
|
||||
int hash_progressive_lookup_algo(const char *algo_name,
|
||||
struct hash_algo **algop);
|
||||
|
||||
/**
|
||||
* 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 */
|
||||
#endif
|
||||
|
@ -91,6 +91,7 @@ dumpimage-mkimage-objs := aisimage.o \
|
||||
socfpgaimage.o \
|
||||
lib/sha1.o \
|
||||
lib/sha256.o \
|
||||
common/hash.o \
|
||||
ublimage.o \
|
||||
$(LIBFDT_OBJS) \
|
||||
$(RSA_OBJS-y)
|
||||
|
Loading…
Reference in New Issue
Block a user