[PATCH v4 0/8] common: Introduce crypt-style password support
Steffen Jaeckel
jaeckel-floss at eyet-services.de
Thu Jul 8 01:09:38 CEST 2021
This patchset introduces support for crypt-style passwords to unlock
the console in autoboot mode.
The implementation of crypt-sha256 and crypt-sha512 originate from
libxcrypt at https://github.com/besser82/libxcrypt.git
Version v4.4.17
Git commit hash 6b110bc
I didn't re-format those two files to make diffing to the original
versions from libxcrypt easier, which leads to a huge load of
checkpatch.pl warnings&errors. Please advise on whether they should be
re-formatted or can be kept as is.
The remaining warnings from checkpatch.pl are intentional resp. open for
discussion.
A sandbox defconfig with password entry has been added. I'm not sure
whether this should be kept or not, it's just there as an example.
Cheers,
Steffen
Changes in v4:
Fix depends for unit-tests
Take review comments into account
Add another test with `bootstopusesha256` unset
Changes in v3:
Add unit-tests for autoboot
Introduce `bootstopusesha256` to allow fallback to plain SHA256-based
hashing
Add AUTOBOOT_FLUSH_STDIN option
Drop the changes to bcm963158_ram_defconfig
Changes in v2:
Update Kconfig way of enabling, setting hashes etc.
Changes in v1:
Added unit-tests of crypt_compare()
Wrapped crypt functions to encapsulate errno
Steffen Jaeckel (8):
lib: add crypt subsystem
lib: wrap crypt API to hide errno usage
common: integrate crypt-based passwords
common: Rename macro appropriately
common: allow disabling of timeout for password entry
common: add AUTOBOOT_FLUSH_STDIN option
common: add support to fallback to plain SHA256
test: add first autoboot unit tests
common/Kconfig.boot | 65 ++++++-
common/autoboot.c | 136 ++++++++++++--
common/console.c | 5 +
configs/sandbox_defconfig | 13 +-
include/console.h | 17 ++
include/crypt.h | 14 ++
include/test/common.h | 15 ++
include/test/suites.h | 1 +
lib/Kconfig | 1 +
lib/Makefile | 1 +
lib/crypt/Kconfig | 28 +++
lib/crypt/Makefile | 10 ++
lib/crypt/alg-sha256.h | 11 ++
lib/crypt/alg-sha512.h | 11 ++
lib/crypt/crypt-port.h | 30 ++++
lib/crypt/crypt-sha256.c | 335 ++++++++++++++++++++++++++++++++++
lib/crypt/crypt-sha512.c | 350 ++++++++++++++++++++++++++++++++++++
lib/crypt/crypt.c | 76 ++++++++
test/Kconfig | 10 ++
test/Makefile | 1 +
test/cmd_ut.c | 1 +
test/common/Makefile | 3 +
test/common/cmd_ut_common.c | 22 +++
test/common/test_autoboot.c | 90 ++++++++++
test/lib/Makefile | 1 +
test/lib/test_crypt.c | 64 +++++++
26 files changed, 1288 insertions(+), 23 deletions(-)
create mode 100644 include/crypt.h
create mode 100644 include/test/common.h
create mode 100644 lib/crypt/Kconfig
create mode 100644 lib/crypt/Makefile
create mode 100644 lib/crypt/alg-sha256.h
create mode 100644 lib/crypt/alg-sha512.h
create mode 100644 lib/crypt/crypt-port.h
create mode 100644 lib/crypt/crypt-sha256.c
create mode 100644 lib/crypt/crypt-sha512.c
create mode 100644 lib/crypt/crypt.c
create mode 100644 test/common/Makefile
create mode 100644 test/common/cmd_ut_common.c
create mode 100644 test/common/test_autoboot.c
create mode 100644 test/lib/test_crypt.c
--
2.32.0
More information about the U-Boot
mailing list