lib: add crypt subsystem
Add the basic functionality required to support the standard crypt
format.
The files crypt-sha256.c and crypt-sha512.c originate from libxcrypt and
their formatting is therefor retained.
The integration is done via a crypt_compare() function in crypt.c.
```
libxcrypt $ git describe --long --always --all
tags/v4.4.17-0-g6b110bc
```
Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
diff --git a/lib/crypt/Kconfig b/lib/crypt/Kconfig
new file mode 100644
index 0000000..5495ae8
--- /dev/null
+++ b/lib/crypt/Kconfig
@@ -0,0 +1,28 @@
+menuconfig CRYPT_PW
+ bool "Add crypt support for password-based unlock"
+ depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
+ help
+ Enable support for crypt-style hashed passphrases.
+ This will then be used as the mechanism of choice to
+ verify whether the entered password to unlock the
+ console is correct or not.
+
+if CRYPT_PW
+
+config CRYPT_PW_SHA256
+ bool "Provide sha256crypt"
+ select SHA256
+ select SHA256_ALGO
+ help
+ Enables support for the sha256crypt password-hashing algorithm.
+ The prefix is "$5$".
+
+config CRYPT_PW_SHA512
+ bool "Provide sha512crypt"
+ select SHA512
+ select SHA512_ALGO
+ help
+ Enables support for the sha512crypt password-hashing algorithm.
+ The prefix is "$6$".
+
+endif