diff --git a/configs/aarch64_defconfig b/configs/aarch64_defconfig
index f3822f34..5d5351d3 100644
--- a/configs/aarch64_defconfig
+++ b/configs/aarch64_defconfig
@@ -58,6 +58,7 @@ BR2_PACKAGE_PYTHON_GUNICORN=y
BR2_PACKAGE_LIBSSH_OPENSSL=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBSSH2_OPENSSL=y
+BR2_PACKAGE_LIBXCRYPT=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_NETOPEER2_CLI=y
@@ -95,6 +96,7 @@ BR2_PACKAGE_SOCAT=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_TRACEROUTE=y
BR2_PACKAGE_ULOGD=y
+BR2_PACKAGE_WHOIS=y
BR2_PACKAGE_BASH_COMPLETION=y
BR2_PACKAGE_SUDO=y
BR2_PACKAGE_TTYD=y
diff --git a/configs/r2s_defconfig b/configs/r2s_defconfig
index 4ac22a01..c8273624 100644
--- a/configs/r2s_defconfig
+++ b/configs/r2s_defconfig
@@ -68,6 +68,7 @@ BR2_PACKAGE_PYTHON_GUNICORN=y
BR2_PACKAGE_LIBSSH_OPENSSL=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBSSH2_OPENSSL=y
+BR2_PACKAGE_LIBXCRYPT=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_NETOPEER2_CLI=y
@@ -105,6 +106,7 @@ BR2_PACKAGE_SOCAT=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_TRACEROUTE=y
BR2_PACKAGE_ULOGD=y
+BR2_PACKAGE_WHOIS=y
BR2_PACKAGE_BASH_COMPLETION=y
BR2_PACKAGE_SUDO=y
BR2_PACKAGE_TTYD=y
diff --git a/configs/x86_64_defconfig b/configs/x86_64_defconfig
index 51757b6d..e37dcaeb 100644
--- a/configs/x86_64_defconfig
+++ b/configs/x86_64_defconfig
@@ -53,6 +53,7 @@ BR2_PACKAGE_PYTHON_GUNICORN=y
BR2_PACKAGE_LIBSSH_OPENSSL=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBSSH2_OPENSSL=y
+BR2_PACKAGE_LIBXCRYPT=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_NETOPEER2_CLI=y
@@ -90,6 +91,7 @@ BR2_PACKAGE_SOCAT=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_TRACEROUTE=y
BR2_PACKAGE_ULOGD=y
+BR2_PACKAGE_WHOIS=y
BR2_PACKAGE_BASH_COMPLETION=y
BR2_PACKAGE_SUDO=y
BR2_PACKAGE_TTYD=y
diff --git a/src/confd/yang/infix-system@2024-04-12.yang b/src/confd/yang/infix-system@2024-04-12.yang
index 11815e38..ba069887 100644
--- a/src/confd/yang/infix-system@2024-04-12.yang
+++ b/src/confd/yang/infix-system@2024-04-12.yang
@@ -86,17 +86,18 @@ module infix-system {
+ '|$1$[a-zA-Z0-9./]{1,8}$[a-zA-Z0-9./]{22}'
+ '|$5$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{43}'
+ '|$6$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{86}'
+ + '|$y$[a-zA-Z0-9./]+$[a-zA-Z0-9./]{1,86}$[a-zA-Z0-9./]{43}'
+ '|$factory$.*';
}
description
"The crypt-hash type is used to store passwords using a hash
function. This type extends the existing crypt-hash type to
- support the reserved string $factory$, which is used for
- device-specific factory default hash. It is up to the
- underlying system to define this further, but one example
- is to use Vital Product Data (VPD) information, e.g., an
- onboard EEPROM where a device hash is stored for the initial
- 'admin' user.
+ support yescrypt as well as the reserved string $factory$,
+ which is used for device-specific factory default hash. It
+ is up to the underlying system to define this further, but
+ one example is to use Vital Product Data (VPD) information,
+ e.g., an onboard EEPROM where a device hash is stored for
+ the initial 'admin' user.
A value of this type matches one of the forms:
@@ -127,6 +128,7 @@ module infix-system {
1 | MD5 | crypt-hash-md5
5 | SHA-256 | crypt-hash-sha-256
6 | SHA-512 | crypt-hash-sha-512
+ y | yescrypt | crypt-hash-yescrypt
The server indicates support for the different hash functions
by advertising the corresponding feature.";
diff --git a/src/klish-plugin-infix/xml/infix.xml b/src/klish-plugin-infix/xml/infix.xml
index fdcaa65c..3c1b6058 100644
--- a/src/klish-plugin-infix/xml/infix.xml
+++ b/src/klish-plugin-infix/xml/infix.xml
@@ -188,11 +188,12 @@
-
+
- md5
- sha256
- sha512
+ md5crypt
+ sha256crypt
+ sha512crypt
+ yescrypt