diff options
author | Philippe Reynes <philippe.reynes@softathome.com> | 2019-12-18 18:25:41 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2020-01-17 10:15:49 -0500 |
commit | 7298e422504ef4455160216b9b7a1baa1169283f (patch) | |
tree | 35e93c2a2a6c11b683523b657593bd93ef5fd978 /common/image-fit.c | |
parent | 1c6cd16de810f88c27c5c945a30e0e9f3842df68 (diff) |
mkimage: fit: add support to encrypt image with aes
This commit add the support of encrypting image with aes
in mkimage. To enable the ciphering, a node cipher with
a reference to a key and IV (Initialization Vector) must
be added to the its file. Then mkimage add the encrypted
image to the FIT and add the key and IV to the u-boot
device tree.
Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Diffstat (limited to 'common/image-fit.c')
-rw-r--r-- | common/image-fit.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/common/image-fit.c b/common/image-fit.c index 231612ff5f..6b50ceba1a 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -1080,6 +1080,33 @@ static int fit_image_hash_get_ignore(const void *fit, int noffset, int *ignore) return 0; } +/** + * fit_image_cipher_get_algo - get cipher algorithm name + * @fit: pointer to the FIT format image header + * @noffset: cipher node offset + * @algo: double pointer to char, will hold pointer to the algorithm name + * + * fit_image_cipher_get_algo() finds cipher algorithm property in a given + * cipher node. If the property is found its data start address is returned + * to the caller. + * + * returns: + * 0, on success + * -1, on failure + */ +int fit_image_cipher_get_algo(const void *fit, int noffset, char **algo) +{ + int len; + + *algo = (char *)fdt_getprop(fit, noffset, FIT_ALGO_PROP, &len); + if (!*algo) { + fit_get_debug(fit, noffset, FIT_ALGO_PROP, len); + return -1; + } + + return 0; +} + ulong fit_get_end(const void *fit) { return map_to_sysmem((void *)(fit + fdt_totalsize(fit))); |