diff -up Linux-PAM-1.2.0/modules/pam_unix/pam_unix.8.xml.no-fallback Linux-PAM-1.2.0/modules/pam_unix/pam_unix.8.xml --- Linux-PAM-1.2.0/modules/pam_unix/pam_unix.8.xml.no-fallback 2015-04-27 16:38:03.000000000 +0200 +++ Linux-PAM-1.2.0/modules/pam_unix/pam_unix.8.xml 2015-05-15 15:54:21.524440864 +0200 @@ -284,11 +284,10 @@ When a user changes their password next, - encrypt it with the SHA256 algorithm. If the - SHA256 algorithm is not known to the + encrypt it with the SHA256 algorithm. The + SHA256 algorithm must be supported by the crypt3 - function, - fall back to MD5. + function. @@ -299,11 +298,10 @@ When a user changes their password next, - encrypt it with the SHA512 algorithm. If the - SHA512 algorithm is not known to the + encrypt it with the SHA512 algorithm. The + SHA512 algorithm must be supported by the crypt3 - function, - fall back to MD5. + function. @@ -314,11 +312,10 @@ When a user changes their password next, - encrypt it with the blowfish algorithm. If the - blowfish algorithm is not known to the + encrypt it with the blowfish algorithm. The + blowfish algorithm must be supported by the crypt3 - function, - fall back to MD5. + function. diff -up Linux-PAM-1.2.0/modules/pam_unix/passverify.c.no-fallback Linux-PAM-1.2.0/modules/pam_unix/passverify.c --- Linux-PAM-1.2.0/modules/pam_unix/passverify.c.no-fallback 2015-05-15 15:54:21.525440887 +0200 +++ Linux-PAM-1.2.0/modules/pam_unix/passverify.c 2015-05-15 15:57:23.138613273 +0200 @@ -437,10 +437,9 @@ PAMH_ARG_DECL(char * create_password_has sp = crypt(password, salt); #endif if (!sp || strncmp(algoid, sp, strlen(algoid)) != 0) { - /* libxcrypt/libc doesn't know the algorithm, use MD5 */ + /* libxcrypt/libc doesn't know the algorithm, error out */ pam_syslog(pamh, LOG_ERR, - "Algo %s not supported by the crypto backend, " - "falling back to MD5\n", + "Algo %s not supported by the crypto backend.\n", on(UNIX_BLOWFISH_PASS, ctrl) ? "blowfish" : on(UNIX_SHA256_PASS, ctrl) ? "sha256" : on(UNIX_SHA512_PASS, ctrl) ? "sha512" : algoid); @@ -450,7 +449,7 @@ PAMH_ARG_DECL(char * create_password_has #ifdef HAVE_CRYPT_R free(cdata); #endif - return crypt_md5_wrapper(password); + return NULL; } sp = x_strdup(sp); #ifdef HAVE_CRYPT_R