Hi Stefan, On 05/08/2015 09:52 AM, Stefan Roese wrote: > This patch adds the feature to only stop the autobooting, and therefor > boot into the U-Boot prompt, when the input string / password matches > a values that is encypted via a SHA256 hash and saved in the environment. > > This feature is enabled by defined these config options: > CONFIG_AUTOBOOT_KEYED > CONFIG_AUTOBOOT_STOP_STR_SHA256 > > Signed-off-by: Stefan Roese <s...@denx.de> > Cc: Simon Glass <s...@chromium.org> > Cc: Magnus Lilja <lilja.mag...@gmail.com> > --- > v2: > - AUTOBOOT_STOP_STR_SHA256 is a string and not bool > - Add input key length check as suggested by Magnus > - Add "constant-length" time compare function as suggested > by Magnus > > common/Kconfig | 20 +++++++-- > common/autoboot.c | 132 > +++++++++++++++++++++++++++++++++++++++++++++--------- > 2 files changed, 128 insertions(+), 24 deletions(-)
[snip] > @@ -42,7 +108,9 @@ static int abortboot_keyed(int bootdelay) > } > delaykey[] = { > { .str = getenv("bootdelaykey"), .retry = 1 }, > + { .str = getenv("bootdelaykey2"), .retry = 1 }, > { .str = getenv("bootstopkey"), .retry = 0 }, > + { .str = getenv("bootstopkey2"), .retry = 0 }, > }; > > char presskey[MAX_DELAY_STOP_STR]; > @@ -50,26 +118,21 @@ static int abortboot_keyed(int bootdelay) > u_int presskey_max = 0; > u_int i; > > -#ifndef CONFIG_ZERO_BOOTDELAY_CHECK > - if (bootdelay == 0) > - return 0; > -#endif > - > -# ifdef CONFIG_AUTOBOOT_PROMPT > - /* > - * CONFIG_AUTOBOOT_PROMPT includes the %d for all boards. > - * To print the bootdelay value upon bootup. > - */ > - printf(CONFIG_AUTOBOOT_PROMPT, bootdelay); > -# endif > - > # ifdef CONFIG_AUTOBOOT_DELAY_STR > if (delaykey[0].str == NULL) > delaykey[0].str = CONFIG_AUTOBOOT_DELAY_STR; > # endif > -# ifdef CONFIG_AUTOBOOT_STOP_STR > +# ifdef CONFIG_AUTOBOOT_DELAY_STR2 > if (delaykey[1].str == NULL) > - delaykey[1].str = CONFIG_AUTOBOOT_STOP_STR; > + delaykey[1].str = CONFIG_AUTOBOOT_DELAY_STR2; > +# endif > +# ifdef CONFIG_AUTOBOOT_STOP_STR > + if (delaykey[2].str == NULL) > + delaykey[2].str = CONFIG_AUTOBOOT_STOP_STR; > +# endif > +# ifdef CONFIG_AUTOBOOT_STOP_STR2 > + if (delaykey[3].str == NULL) > + delaykey[3].str = CONFIG_AUTOBOOT_STOP_STR2; > # endif > > for (i = 0; i < sizeof(delaykey) / sizeof(delaykey[0]); i++) { isn't this part removed before in 2/4 'autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2'? Andreas _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot