mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
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
5 changed files with 20 additions and 3 deletions
|
@ -22,6 +22,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#include <bootstage.h>
|
#include <bootstage.h>
|
||||||
#include <sha1.h>
|
#include <sha1.h>
|
||||||
|
#include <sha256.h>
|
||||||
#include <u-boot/crc.h>
|
#include <u-boot/crc.h>
|
||||||
#include <u-boot/md5.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,
|
sha1_csum_wd((unsigned char *)data, data_len,
|
||||||
(unsigned char *)value, CHUNKSZ_SHA1);
|
(unsigned char *)value, CHUNKSZ_SHA1);
|
||||||
*value_len = 20;
|
*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) {
|
} else if (IMAGE_ENABLE_MD5 && strcmp(algo, "md5") == 0) {
|
||||||
md5_wd((unsigned char *)data, data_len, value, CHUNKSZ_MD5);
|
md5_wd((unsigned char *)data, data_len, value, CHUNKSZ_MD5);
|
||||||
*value_len = 16;
|
*value_len = 16;
|
||||||
|
|
|
@ -57,13 +57,18 @@ struct lmb;
|
||||||
# ifdef CONFIG_SPL_SHA1_SUPPORT
|
# ifdef CONFIG_SPL_SHA1_SUPPORT
|
||||||
# define IMAGE_ENABLE_SHA1 1
|
# define IMAGE_ENABLE_SHA1 1
|
||||||
# endif
|
# endif
|
||||||
|
# ifdef CONFIG_SPL_SHA256_SUPPORT
|
||||||
|
# define IMAGE_ENABLE_SHA256 1
|
||||||
|
# endif
|
||||||
# else
|
# else
|
||||||
# define CONFIG_CRC32 /* FIT images need CRC32 support */
|
# define CONFIG_CRC32 /* FIT images need CRC32 support */
|
||||||
# define CONFIG_MD5 /* and MD5 */
|
# define CONFIG_MD5 /* and MD5 */
|
||||||
# define CONFIG_SHA1 /* and SHA1 */
|
# define CONFIG_SHA1 /* and SHA1 */
|
||||||
|
# define CONFIG_SHA256 /* and SHA256 */
|
||||||
# define IMAGE_ENABLE_CRC32 1
|
# define IMAGE_ENABLE_CRC32 1
|
||||||
# define IMAGE_ENABLE_MD5 1
|
# define IMAGE_ENABLE_MD5 1
|
||||||
# define IMAGE_ENABLE_SHA1 1
|
# define IMAGE_ENABLE_SHA1 1
|
||||||
|
# define IMAGE_ENABLE_SHA256 1
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#ifndef IMAGE_ENABLE_CRC32
|
#ifndef IMAGE_ENABLE_CRC32
|
||||||
|
@ -78,6 +83,10 @@ struct lmb;
|
||||||
#define IMAGE_ENABLE_SHA1 0
|
#define IMAGE_ENABLE_SHA1 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef IMAGE_ENABLE_SHA256
|
||||||
|
#define IMAGE_ENABLE_SHA256 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* CONFIG_FIT */
|
#endif /* CONFIG_FIT */
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_BOOT_RAMDISK_HIGH
|
#ifdef CONFIG_SYS_BOOT_RAMDISK_HIGH
|
||||||
|
|
|
@ -258,14 +258,15 @@ void sha256_csum_wd(const unsigned char *input, unsigned int ilen,
|
||||||
{
|
{
|
||||||
sha256_context ctx;
|
sha256_context ctx;
|
||||||
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
||||||
unsigned char *end, *curr;
|
const unsigned char *end;
|
||||||
|
unsigned char *curr;
|
||||||
int chunk;
|
int chunk;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sha256_starts(&ctx);
|
sha256_starts(&ctx);
|
||||||
|
|
||||||
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
|
||||||
curr = input;
|
curr = (unsigned char *)input;
|
||||||
end = input + ilen;
|
end = input + ilen;
|
||||||
while (curr < end) {
|
while (curr < end) {
|
||||||
chunk = end - curr;
|
chunk = end - curr;
|
||||||
|
|
|
@ -40,7 +40,6 @@ CONFIG_BUILD_ENVCRC ?= $(ENVCRC-y)
|
||||||
|
|
||||||
# TODO: CONFIG_CMD_LICENSE does not work
|
# TODO: CONFIG_CMD_LICENSE does not work
|
||||||
hostprogs-$(CONFIG_CMD_LICENSE) += bin2header$(SFX)
|
hostprogs-$(CONFIG_CMD_LICENSE) += bin2header$(SFX)
|
||||||
|
|
||||||
hostprogs-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
|
hostprogs-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
|
||||||
hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
|
hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
|
||||||
HOSTCFLAGS_bmp_logo$(SFX).o := -pedantic
|
HOSTCFLAGS_bmp_logo$(SFX).o := -pedantic
|
||||||
|
@ -85,6 +84,7 @@ dumpimage-mkimage-objs := aisimage.o \
|
||||||
os_support.o \
|
os_support.o \
|
||||||
pblimage.o \
|
pblimage.o \
|
||||||
sha1.o \
|
sha1.o \
|
||||||
|
sha256.o \
|
||||||
ublimage.o \
|
ublimage.o \
|
||||||
$(LIBFDT_OBJS) \
|
$(LIBFDT_OBJS) \
|
||||||
$(RSA_OBJS-y)
|
$(RSA_OBJS-y)
|
||||||
|
@ -137,6 +137,7 @@ hostprogs-$(CONFIG_STATIC_RELA) += relocate-rela$(SFX)
|
||||||
HOSTCFLAGS_crc32.o := -pedantic
|
HOSTCFLAGS_crc32.o := -pedantic
|
||||||
HOSTCFLAGS_md5.o := -pedantic
|
HOSTCFLAGS_md5.o := -pedantic
|
||||||
HOSTCFLAGS_sha1.o := -pedantic
|
HOSTCFLAGS_sha1.o := -pedantic
|
||||||
|
HOSTCFLAGS_sha256.o := -pedantic
|
||||||
|
|
||||||
# Don't build by default
|
# Don't build by default
|
||||||
#hostprogs-$(CONFIG_PPC) += mpc86x_clk$(SFX)
|
#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 a new issue