[U-Boot] [PATCH v3 0/4] Add SHA256 encrypted stop string for autobooting

Stefan Roese sr at denx.de
Mon May 18 14:08:20 CEST 2015


The main task for this patch series is to add the new feature to abort
autobooting via a SHA256 encrypted password. For this, some of the old
autobooting related config macros have been moved to Kconfig. This was a bit
more complicated, since Kconfig currently apparently doesn't support using
escape characters '\' as used in printf format strings like "foo %s bar\n".
And this is needed for some of these new Kconfig options. So I needed to
make some changes to the Kconfig sources as well. If nobody complains about
these Kconfig stuff, I'll try to push this into the Linux Kconfig source as
well.

There should be no functional change introduced. Please let me know if you
find any problems.

Thanks,
Stefan

Changes in v3:
- Added some Acked-by's / Reviewed-by's
- Added additional backslash to the default CONFIG_AUTOBOOT_PROMPT
  string as this seems to be needed for the parser
- Added some Acked-by's / Reviewed-by's
- Removed CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2
  again
- Introduced hash_parse_string() to share some code as suggested by
  Simon
- Used hash_block() instead of sha256_csum_wd() as suggested by Simon
- Added some Acked-by's / Reviewed-by's

Changes in 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

Stefan Roese (4):
  Kconfig: Enable usage of escape char '\' in string values
  autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and
    CONFIG_AUTOBOOT_DELAY_STR2
  autoboot.c: Move config options to Kconfig
  autoboot.c: Add feature to stop autobooting via SHA256 encrypted
    password

 README                                   |   2 -
 common/Kconfig                           |  78 +++++++++++++++++++
 common/autoboot.c                        | 129 ++++++++++++++++++++++++-------
 common/hash.c                            |  30 ++++---
 configs/CPCI4052_defconfig               |   3 +
 configs/O2DNT2_RAMBOOT_defconfig         |   3 +
 configs/O2DNT2_defconfig                 |   3 +
 configs/PLU405_defconfig                 |   3 +
 configs/PMC405DE_defconfig               |   3 +
 configs/PMC440_defconfig                 |   3 +
 configs/UCP1020_SPIFLASH_defconfig       |   3 +
 configs/UCP1020_defconfig                |   3 +
 configs/a4m072_defconfig                 |   3 +
 configs/atngw100_defconfig               |   4 +
 configs/atngw100mkii_defconfig           |   4 +
 configs/atstk1002_defconfig              |   4 +
 configs/atstk1003_defconfig              |   4 +
 configs/atstk1004_defconfig              |   4 +
 configs/atstk1006_defconfig              |   4 +
 configs/calimain_defconfig               |   2 +
 configs/cpuat91_defconfig                |   4 +
 configs/cpuat91_ram_defconfig            |   3 +
 configs/digsy_mtc_RAMBOOT_defconfig      |   3 +
 configs/digsy_mtc_defconfig              |   3 +
 configs/digsy_mtc_rev5_RAMBOOT_defconfig |   3 +
 configs/digsy_mtc_rev5_defconfig         |   3 +
 configs/dlvision-10g_defconfig           |   2 +
 configs/draco_defconfig                  |   3 +
 configs/dxr2_defconfig                   |   3 +
 configs/favr-32-ezkit_defconfig          |   4 +
 configs/gdppc440etx_defconfig            |   2 +
 configs/grasshopper_defconfig            |   4 +
 configs/hammerhead_defconfig             |   4 +
 configs/highbank_defconfig               |   3 +
 configs/hrcon_defconfig                  |   2 +
 configs/ids8313_defconfig                |   3 +
 configs/intip_defconfig                  |   2 +
 configs/io64_defconfig                   |   2 +
 configs/io_defconfig                     |   2 +
 configs/iocon_defconfig                  |   2 +
 configs/ip04_defconfig                   |   1 +
 configs/motionpro_defconfig              |   3 +
 configs/nokia_rx51_defconfig             |   1 +
 configs/omap3_mvblx_defconfig            |   2 +
 configs/ph1_ld4_defconfig                |   4 +
 configs/ph1_pro4_defconfig               |   4 +
 configs/ph1_sld8_defconfig               |   4 +
 configs/pm9263_defconfig                 |   1 +
 configs/pxm2_defconfig                   |   3 +
 configs/rut_defconfig                    |   3 +
 configs/spear600_defconfig               |   3 +
 configs/stv0991_defconfig                |   3 +
 configs/x600_defconfig                   |   3 +
 configs/zmx25_defconfig                  |   4 +
 doc/README.autoboot                      |  10 ---
 include/configs/CPCI4052.h               |   6 --
 include/configs/PLU405.h                 |   9 ---
 include/configs/PMC405DE.h               |   6 --
 include/configs/PMC440.h                 |   6 --
 include/configs/UCP1020.h                |  11 ---
 include/configs/a4m072.h                 |   4 -
 include/configs/atngw100.h               |  10 ---
 include/configs/atngw100mkii.h           |  10 ---
 include/configs/atstk1002.h              |  10 ---
 include/configs/atstk1003.h              |  10 ---
 include/configs/atstk1004.h              |  10 ---
 include/configs/atstk1006.h              |  10 ---
 include/configs/bf537-stamp.h            |   4 -
 include/configs/calimain.h               |   2 -
 include/configs/cpuat91.h                |   6 --
 include/configs/digsy_mtc.h              |   4 -
 include/configs/dlvision-10g.h           |   2 -
 include/configs/favr-32-ezkit.h          |  10 ---
 include/configs/gdppc440etx.h            |   2 -
 include/configs/grasshopper.h            |  10 ---
 include/configs/hammerhead.h             |  10 ---
 include/configs/highbank.h               |   4 +-
 include/configs/hrcon.h                  |   2 -
 include/configs/ids8313.h                |   4 -
 include/configs/intip.h                  |   2 -
 include/configs/io.h                     |   2 -
 include/configs/io64.h                   |   2 -
 include/configs/iocon.h                  |   2 -
 include/configs/ip04.h                   |   1 -
 include/configs/motionpro.h              |   6 --
 include/configs/nokia_rx51.h             |   1 -
 include/configs/o2dnt-common.h           |  12 ---
 include/configs/omap3_mvblx.h            |   2 -
 include/configs/pm9263.h                 |   1 -
 include/configs/siemens-am33x-common.h   |   6 --
 include/configs/spear-common.h           |   4 -
 include/configs/stv0991.h                |   5 +-
 include/configs/uniphier.h               |   5 --
 include/configs/x600.h                   |   4 -
 include/configs/zmx25.h                  |   4 -
 include/hash.h                           |  14 ++++
 scripts/kconfig/confdata.c               |  20 +++--
 scripts/kconfig/symbol.c                 |  43 -----------
 98 files changed, 375 insertions(+), 321 deletions(-)

-- 
2.4.1



More information about the U-Boot mailing list