[PATCH v2 4/4] mkimge: Reject signing-related flags without FIT_SIGNATURE

Tom Rini trini at konsulko.com
Fri Jan 22 22:58:20 CET 2021


On Tue, Dec 08, 2020 at 02:42:16PM +1030, Joel Stanley wrote:

> When CONFIG_FIT_SIGNATURE=n the signing options are not available. If a
> user is careful they will notice this when looking at the help output.
> 
> If they are not careful they will waste several hours wondering why
> their FIT doesn't contain a /signature node, as mkimage will silently
> ingore the signing related options.
> 
> Make it obvious that the commands don't work by removing them from the
> getopt opt_string.
> 
>  $ mkimage -f machine.its -k keys -K u-boot-pubkey.dtb -r image.fit
>  mkimage: invalid option -- 'k'
>  Error: Invalid option
> 
> Signed-off-by: Joel Stanley <joel at jms.id.au>
> ---
> v2: Leave padding related options in the CONFIG_FIT_SIGNATURE=y optargs
> ---
>  tools/mkimage.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/mkimage.c b/tools/mkimage.c
> index 68d5206cb4fd..f7d3ac40e681 100644
> --- a/tools/mkimage.c
> +++ b/tools/mkimage.c
> @@ -142,7 +142,11 @@ static int add_content(int type, const char *fname)
>  	return 0;
>  }
>  
> +#ifdef CONFIG_FIT_SIGNATURE
>  #define OPT_STRING "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:ln:N:p:O:rR:qstT:vVx"
> +#else
> +#define OPT_STRING "a:A:b:B:C:d:D:e:Ef:i:ln:O:R:qstT:vVx"
> +#endif
>  static void process_args(int argc, char **argv)
>  {
>  	char *ptr;
> @@ -150,8 +154,7 @@ static void process_args(int argc, char **argv)
>  	char *datafile = NULL;
>  	int opt;
>  
> -	while ((opt = getopt(argc, argv,
> -		   "a:A:b:B:c:C:d:D:e:Ef:Fk:i:K:ln:N:p:O:rR:qstT:vVx")) != -1) {
> +	while ((opt = getopt(argc, argv, OPT_STRING)) != -1) {
>  		switch (opt) {
>  		case 'a':
>  			params.addr = strtoull(optarg, &ptr, 16);

This part of the series breaks a huge number of platforms default build
because we don't have 'p' which is:
          -p => place external data at a static position
and not strictly used in signature only options and is used for
FIT_EXTERNAL_OFFSET.  While I could adjust the patch to keep 'p' in both
cases I wanted to bring this up so it's not a surprise and ask you to
update just this patch, or suggest things need to be further adjusted.
The rest of the series seems fine and is under review.  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210122/7af9768f/attachment.sig>


More information about the U-Boot mailing list