diff options
author | danh-arm <dan.handley@arm.com> | 2016-09-19 11:54:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-19 11:54:27 +0100 |
commit | 368d4ebfc1682bfeea1057f7f37c23ca531e9e91 (patch) | |
tree | 43a560b5a3eedd1154e7b5a44a9f7378cf96f393 | |
parent | a8de89c97461b7cc13a596db8771c30843b06405 (diff) | |
parent | 9df69ba37f3dd3a3f02fc8c0ba41236960b6b771 (diff) |
Merge pull request #701 from dp-arm/dp/fiptool-sha256
fiptool: Add support for printing the sha256 digest with info command
-rw-r--r-- | docs/user-guide.md | 4 | ||||
-rw-r--r-- | tools/fiptool/Makefile | 3 | ||||
-rw-r--r-- | tools/fiptool/fiptool.c | 22 |
3 files changed, 22 insertions, 7 deletions
diff --git a/docs/user-guide.md b/docs/user-guide.md index a6959b14..d545262c 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -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 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 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 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]. diff --git a/tools/fiptool/Makefile b/tools/fiptool/Makefile index 3bc372a2..df76a75e 100644 --- a/tools/fiptool/Makefile +++ b/tools/fiptool/Makefile @@ -44,6 +44,7 @@ ifeq (${DEBUG},1) else CFLAGS += -O2 endif +LDLIBS := -lcrypto ifeq (${V},0) Q := @ @@ -62,7 +63,7 @@ all: ${PROJECT} fip_create ${PROJECT}: ${OBJECTS} Makefile @echo " LD $@" - ${Q}${CC} ${OBJECTS} -o $@ + ${Q}${CC} ${OBJECTS} -o $@ ${LDLIBS} @${ECHO_BLANK_LINE} @echo "Built $@ successfully" @${ECHO_BLANK_LINE} diff --git a/tools/fiptool/fiptool.c b/tools/fiptool/fiptool.c index 68ddcf5a..6a3406e0 100644 --- a/tools/fiptool/fiptool.c +++ b/tools/fiptool/fiptool.c @@ -42,6 +42,8 @@ #include <string.h> #include <unistd.h> +#include <openssl/sha.h> + #include "fiptool.h" #include "firmware_image_package.h" #include "tbbr_config.h" @@ -354,6 +356,14 @@ static void add_opt(struct option *opts, int idx, char *name, 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[]) { image_t *image; @@ -391,10 +401,16 @@ static int info_cmd(int argc, char *argv[]) (unsigned long long)image_offset, (unsigned long long)image_size); if (image->toc_entry != NULL) - printf(", cmdline=\"--%s\"\n", + printf(", cmdline=\"--%s\"", image->toc_entry->cmdline_name); - else - putchar('\n'); + if (verbose) { + 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; } |