pw_locked = false;
}
+static const char *get_salt(void)
+{
+ if ( !eflg
+ && ( (NULL == crypt_method)
+ || (0 != strcmp (crypt_method, "NONE")))) {
+ void *arg = NULL;
+
+ if (md5flg) {
+ crypt_method = "MD5";
+ }
+#if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT)
+ if (sflg) {
+#if defined(USE_SHA_CRYPT)
+ if ( (0 == strcmp (crypt_method, "SHA256"))
+ || (0 == strcmp (crypt_method, "SHA512"))) {
+ arg = &sha_rounds;
+ }
+#endif /* USE_SHA_CRYPT */
+#if defined(USE_BCRYPT)
+ if (0 == strcmp (crypt_method, "BCRYPT")) {
+ arg = &bcrypt_rounds;
+ }
+#endif /* USE_BCRYPT */
+#if defined(USE_YESCRYPT)
+ if (0 == strcmp (crypt_method, "YESCRYPT")) {
+ arg = &yescrypt_cost;
+ }
+#endif /* USE_YESCRYPT */
+ }
+#endif
+ return crypt_make_salt (crypt_method, arg);
+ }
+
+ return NULL;
+}
+
int main (int argc, char **argv)
{
char buf[BUFSIZ];
char *name;
char *newpwd;
char *cp;
+ const char *salt;
#ifdef USE_PAM
bool use_pam = true;
const struct passwd *pw;
struct passwd newpw;
- if ( !eflg
- && ( (NULL == crypt_method)
- || (0 != strcmp (crypt_method, "NONE")))) {
- void *arg = NULL;
- const char *salt;
- if (md5flg) {
- crypt_method = "MD5";
- }
-#if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT)
- if (sflg) {
-#if defined(USE_SHA_CRYPT)
- if ( (0 == strcmp (crypt_method, "SHA256"))
- || (0 == strcmp (crypt_method, "SHA512"))) {
- arg = &sha_rounds;
- }
-#endif /* USE_SHA_CRYPT */
-#if defined(USE_BCRYPT)
- if (0 == strcmp (crypt_method, "BCRYPT")) {
- arg = &bcrypt_rounds;
- }
-#endif /* USE_BCRYPT */
-#if defined(USE_YESCRYPT)
- if (0 == strcmp (crypt_method, "YESCRYPT")) {
- arg = &yescrypt_cost;
- }
-#endif /* USE_YESCRYPT */
- }
-#endif
- salt = crypt_make_salt (crypt_method, arg);
+ salt = get_salt();
+ if (salt) {
cp = pw_encrypt (newpwd, salt);
if (NULL == cp) {
fprintf (stderr,