dovecot-2.2: auth: Don't crash when trying to use CRYPT scheme w...

dovecot at dovecot.org dovecot at dovecot.org
Mon Nov 9 12:11:39 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/61eb9ac0d29e
changeset: 19347:61eb9ac0d29e
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Nov 09 14:11:12 2015 +0200
description:
auth: Don't crash when trying to use CRYPT scheme when crypt() doesn't support DES

diffstat:

 src/auth/password-scheme-crypt.c |  16 ++++++++++++++++
 src/auth/password-scheme.c       |  14 --------------
 2 files changed, 16 insertions(+), 14 deletions(-)

diffs (71 lines):

diff -r 2f2d78bedeed -r 61eb9ac0d29e src/auth/password-scheme-crypt.c
--- a/src/auth/password-scheme-crypt.c	Mon Nov 09 13:16:50 2015 +0200
+++ b/src/auth/password-scheme-crypt.c	Mon Nov 09 14:11:12 2015 +0200
@@ -24,6 +24,19 @@
 }
 
 static void
+crypt_generate_des(const char *plaintext, const char *user ATTR_UNUSED,
+		   const unsigned char **raw_password_r, size_t *size_r)
+{
+#define CRYPT_SALT_LEN 2
+	const char *password, *salt;
+
+	salt = password_generate_salt(CRYPT_SALT_LEN);
+	password = t_strdup(mycrypt(plaintext, salt));
+	*raw_password_r = (const unsigned char *)password;
+	*size_r = strlen(password);
+}
+
+static void
 crypt_generate_blowfisch(const char *plaintext, const char *user ATTR_UNUSED,
 			 const unsigned char **raw_password_r, size_t *size_r)
 {
@@ -98,6 +111,7 @@
 	const char *salt;
 	const char *expected;
 } sample[] = {
+	{ "08/15!test~4711", "JB", "JBOZ0DgmtucwE" },
 	{ "08/15!test~4711", "$2a$04$0123456789abcdefABCDEF",
 	  "$2a$04$0123456789abcdefABCDE.N.drYX5yIAL1LkTaaZotW3yI0hQhZru" },
 	{ "08/15!test~4711", "$5$rounds=1000$0123456789abcdef",
@@ -110,6 +124,8 @@
 
 /* keep in sync with the sample struct above */
 static const struct password_scheme crypt_schemes[] = {
+	{ "CRYPT", PW_ENCODING_NONE, 0, crypt_verify,
+	  crypt_generate_des },
 	{ "BLF-CRYPT", PW_ENCODING_NONE, 0, crypt_verify,
 	  crypt_generate_blowfisch },
 	{ "SHA256-CRYPT", PW_ENCODING_NONE, 0, crypt_verify,
diff -r 2f2d78bedeed -r 61eb9ac0d29e src/auth/password-scheme.c
--- a/src/auth/password-scheme.c	Mon Nov 09 13:16:50 2015 +0200
+++ b/src/auth/password-scheme.c	Mon Nov 09 14:11:12 2015 +0200
@@ -341,19 +341,6 @@
 	return strcmp(crypted, password) == 0 ? 1 : 0;
 }
 
-static void
-crypt_generate(const char *plaintext, const char *user ATTR_UNUSED,
-	       const unsigned char **raw_password_r, size_t *size_r)
-{
-#define	CRYPT_SALT_LEN 2
-	const char *password, *salt;
-
-	salt = password_generate_salt(CRYPT_SALT_LEN);
-	password = t_strdup(mycrypt(plaintext, salt));
-	*raw_password_r = (const unsigned char *)password;
-	*size_r = strlen(password);
-}
-
 static int
 md5_verify(const char *plaintext, const char *user,
 	   const unsigned char *raw_password, size_t size, const char **error_r)
@@ -803,7 +790,6 @@
 }
 
 static const struct password_scheme builtin_schemes[] = {
-	{ "CRYPT", PW_ENCODING_NONE, 0, crypt_verify, crypt_generate },
 	{ "MD5", PW_ENCODING_NONE, 0, md5_verify, md5_crypt_generate },
 	{ "MD5-CRYPT", PW_ENCODING_NONE, 0,
 	  md5_crypt_verify, md5_crypt_generate },


More information about the dovecot-cvs mailing list