Merge pull request #701 from dp-arm/dp/fiptool-sha256
fiptool: Add support for printing the sha256 digest with info command
This commit is contained in:
commit
368d4ebfc1
|
@ -64,7 +64,7 @@ Cygwin, and Msys (MinGW) shells, using version 4.9.1 of the GNU toolchain.
|
||||||
Install the required packages to build Trusted Firmware with the following
|
Install the required packages to build Trusted Firmware with the following
|
||||||
command:
|
command:
|
||||||
|
|
||||||
sudo apt-get install build-essential gcc make git
|
sudo apt-get install build-essential gcc make git libssl-dev
|
||||||
|
|
||||||
Download and install the AArch64 little-endian GCC cross compiler as indicated
|
Download and install the AArch64 little-endian GCC cross compiler as indicated
|
||||||
in the [Linaro instructions][Linaro SW Instructions].
|
in the [Linaro instructions][Linaro SW Instructions].
|
||||||
|
@ -74,8 +74,6 @@ In addition, the following optional packages and tools may be needed:
|
||||||
* `device-tree-compiler` package if you need to rebuild the Flattened Device
|
* `device-tree-compiler` package if you need to rebuild the Flattened Device
|
||||||
Tree (FDT) source files (`.dts` files) provided with this software.
|
Tree (FDT) source files (`.dts` files) provided with this software.
|
||||||
|
|
||||||
* `libssl-dev` package if Trusted Board Boot is enabled in the build.
|
|
||||||
|
|
||||||
* For debugging, ARM [Development Studio 5 (DS-5)][DS-5].
|
* For debugging, ARM [Development Studio 5 (DS-5)][DS-5].
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,7 @@ ifeq (${DEBUG},1)
|
||||||
else
|
else
|
||||||
CFLAGS += -O2
|
CFLAGS += -O2
|
||||||
endif
|
endif
|
||||||
|
LDLIBS := -lcrypto
|
||||||
|
|
||||||
ifeq (${V},0)
|
ifeq (${V},0)
|
||||||
Q := @
|
Q := @
|
||||||
|
@ -62,7 +63,7 @@ all: ${PROJECT} fip_create
|
||||||
|
|
||||||
${PROJECT}: ${OBJECTS} Makefile
|
${PROJECT}: ${OBJECTS} Makefile
|
||||||
@echo " LD $@"
|
@echo " LD $@"
|
||||||
${Q}${CC} ${OBJECTS} -o $@
|
${Q}${CC} ${OBJECTS} -o $@ ${LDLIBS}
|
||||||
@${ECHO_BLANK_LINE}
|
@${ECHO_BLANK_LINE}
|
||||||
@echo "Built $@ successfully"
|
@echo "Built $@ successfully"
|
||||||
@${ECHO_BLANK_LINE}
|
@${ECHO_BLANK_LINE}
|
||||||
|
|
|
@ -42,6 +42,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <openssl/sha.h>
|
||||||
|
|
||||||
#include "fiptool.h"
|
#include "fiptool.h"
|
||||||
#include "firmware_image_package.h"
|
#include "firmware_image_package.h"
|
||||||
#include "tbbr_config.h"
|
#include "tbbr_config.h"
|
||||||
|
@ -354,6 +356,14 @@ static void add_opt(struct option *opts, int idx, char *name,
|
||||||
opts[idx].val = val;
|
opts[idx].val = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void md_print(unsigned char *md, size_t len)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
printf("%02x", md[i]);
|
||||||
|
}
|
||||||
|
|
||||||
static int info_cmd(int argc, char *argv[])
|
static int info_cmd(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
image_t *image;
|
image_t *image;
|
||||||
|
@ -391,10 +401,16 @@ static int info_cmd(int argc, char *argv[])
|
||||||
(unsigned long long)image_offset,
|
(unsigned long long)image_offset,
|
||||||
(unsigned long long)image_size);
|
(unsigned long long)image_size);
|
||||||
if (image->toc_entry != NULL)
|
if (image->toc_entry != NULL)
|
||||||
printf(", cmdline=\"--%s\"\n",
|
printf(", cmdline=\"--%s\"",
|
||||||
image->toc_entry->cmdline_name);
|
image->toc_entry->cmdline_name);
|
||||||
else
|
if (verbose) {
|
||||||
putchar('\n');
|
unsigned char md[SHA256_DIGEST_LENGTH];
|
||||||
|
|
||||||
|
SHA256(image->buffer, image_size, md);
|
||||||
|
printf(", sha256=");
|
||||||
|
md_print(md, sizeof(md));
|
||||||
|
}
|
||||||
|
putchar('\n');
|
||||||
image_offset += image_size;
|
image_offset += image_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue