fit: add sha256 support
add sha256 support to fit images Signed-off-by: Heiko Schocher <hs@denx.de> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
097dd3e0a9
commit
2842c1c242
@ -22,6 +22,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#include <bootstage.h>
|
||||
#include <sha1.h>
|
||||
#include <sha256.h>
|
||||
#include <u-boot/crc.h>
|
||||
#include <u-boot/md5.h>
|
||||
|
||||
@ -882,6 +883,10 @@ int calculate_hash(const void *data, int data_len, const char *algo,
|
||||
sha1_csum_wd((unsigned char *)data, data_len,
|
||||
(unsigned char *)value, CHUNKSZ_SHA1);
|
||||
*value_len = 20;
|
||||
} else if (IMAGE_ENABLE_SHA256 && strcmp(algo, "sha256") == 0) {
|
||||
sha256_csum_wd((unsigned char *)data, data_len,
|
||||
(unsigned char *)value, CHUNKSZ_SHA256);
|
||||
*value_len = SHA256_SUM_LEN;
|
||||
} else if (IMAGE_ENABLE_MD5 && strcmp(algo, "md5") == 0) {
|
||||
md5_wd((unsigned char *)data, data_len, value, CHUNKSZ_MD5);
|
||||
*value_len = 16;
|
||||
|
@ -57,13 +57,18 @@ struct lmb;
|
||||
# ifdef CONFIG_SPL_SHA1_SUPPORT
|
||||
# define IMAGE_ENABLE_SHA1 1
|
||||
# endif
|
||||
# ifdef CONFIG_SPL_SHA256_SUPPORT
|
||||
# define IMAGE_ENABLE_SHA256 1
|
||||
# endif
|
||||
# else
|
||||
# define CONFIG_CRC32 /* FIT images need CRC32 support */
|
||||
# define CONFIG_MD5 /* and MD5 */
|
||||
# define CONFIG_SHA1 /* and SHA1 */
|
||||
# define CONFIG_SHA256 /* and SHA256 */
|
||||
# define IMAGE_ENABLE_CRC32 1
|
||||
# define IMAGE_ENABLE_MD5 1
|
||||
# define IMAGE_ENABLE_SHA1 1
|
||||
# define IMAGE_ENABLE_SHA256 1
|
||||
# endif
|
||||
|
||||
#ifndef IMAGE_ENABLE_CRC32
|
||||
@ -78,6 +83,10 @@ struct lmb;
|
||||
#define IMAGE_ENABLE_SHA1 0
|
||||
#endif
|
||||
|
||||
#ifndef IMAGE_ENABLE_SHA256
|
||||
#define IMAGE_ENABLE_SHA256 0
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_FIT */
|
||||
|
||||
#ifdef CONFIG_SYS_BOOT_RAMDISK_HIGH
|
||||
|
@ -258,14 +258,15 @@ void sha256_csum_wd(const unsigned char *input, unsigned int ilen,
|
||||
{
|
||||
sha256_context ctx;
|
||||
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
||||
unsigned char *end, *curr;
|
||||
const unsigned char *end;
|
||||
unsigned char *curr;
|
||||
int chunk;
|
||||
#endif
|
||||
|
||||
sha256_starts(&ctx);
|
||||
|
||||
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
||||
curr = input;
|
||||
curr = (unsigned char *)input;
|
||||
end = input + ilen;
|
||||
while (curr < end) {
|
||||
chunk = end - curr;
|
||||
|
@ -40,7 +40,6 @@ CONFIG_BUILD_ENVCRC ?= $(ENVCRC-y)
|
||||
|
||||
# TODO: CONFIG_CMD_LICENSE does not work
|
||||
hostprogs-$(CONFIG_CMD_LICENSE) += bin2header$(SFX)
|
||||
|
||||
hostprogs-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
|
||||
hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
|
||||
HOSTCFLAGS_bmp_logo$(SFX).o := -pedantic
|
||||
@ -85,6 +84,7 @@ dumpimage-mkimage-objs := aisimage.o \
|
||||
os_support.o \
|
||||
pblimage.o \
|
||||
sha1.o \
|
||||
sha256.o \
|
||||
ublimage.o \
|
||||
$(LIBFDT_OBJS) \
|
||||
$(RSA_OBJS-y)
|
||||
@ -137,6 +137,7 @@ hostprogs-$(CONFIG_STATIC_RELA) += relocate-rela$(SFX)
|
||||
HOSTCFLAGS_crc32.o := -pedantic
|
||||
HOSTCFLAGS_md5.o := -pedantic
|
||||
HOSTCFLAGS_sha1.o := -pedantic
|
||||
HOSTCFLAGS_sha256.o := -pedantic
|
||||
|
||||
# Don't build by default
|
||||
#hostprogs-$(CONFIG_PPC) += mpc86x_clk$(SFX)
|
||||
|
1
tools/sha256.c
Normal file
1
tools/sha256.c
Normal file
@ -0,0 +1 @@
|
||||
#include "../lib/sha256.c"
|
Loading…
Reference in New Issue
Block a user