boot: image: add a stage pre-load
authorPhilippe Reynes <philippe.reynes@softathome.com>
Mon, 28 Mar 2022 20:56:59 +0000 (22:56 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 31 Mar 2022 18:12:01 +0000 (14:12 -0400)
commit982207435a7b96d594336a88c08cb5b09e5f2963
tree6b3086484c6cbcd7a85667912b866f90deb1582a
parentf6bacf1d489090c8fca1d442cedd8902d8f5acec
boot: image: add a stage pre-load

Add a stage pre-load that could
check or modify an image.

For the moment, only a header with a signature is
supported. This header has the following format:
- magic : 4 bytes
- version : 4 bytes
- header size : 4 bytes
- image size : 4 bytes
- offset image signature : 4 bytes
- flags : 4 bytes
- reserved0 : 4 bytes
- reserved1 : 4 bytes
- sha256 of the image signature : 32 bytes
- signature of the first 64 bytes : n bytes
- image signature : n bytes
- padding : up to header size

The stage uses a node /image/pre-load/sig to
get some informations:
- algo-name (mandatory) : name of the algo used to sign
- padding-name : name of padding used to sign
- signature-size : size of the signature (in the header)
- mandatory : set to yes if this sig is mandatory
- public-key (madatory) : value of the public key

Before running the image, the stage pre-load checks
the signature provided in the header.

This is an initial support, later we could add the
support of:
- ciphering
- uncompressing
- ...

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
boot/Kconfig
boot/Makefile
boot/image-pre-load.c [new file with mode: 0644]
include/image.h