changeset 5606:01e318d8304b HEAD

Fixed to use the new password scheme APIs
author Timo Sirainen <tss@iki.fi>
date Sun, 13 May 2007 18:43:36 +0300
parents 8b97d6bbff35
children 74d3236313c1
files src/util/dovecotpw.c
diffstat 1 files changed, 9 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/util/dovecotpw.c	Sun May 13 18:37:44 2007 +0300
+++ b/src/util/dovecotpw.c	Sun May 13 18:43:36 2007 +0300
@@ -108,22 +108,21 @@
 		}
 	}
 
-	if ((hash = password_generate(plaintext, user, scheme)) == NULL) {
-		fprintf(stderr, "error generating password hash\n");
+	if (!password_generate_encoded(plaintext, user, scheme, &hash)) {
+		fprintf(stderr, "Unknown scheme: %s\n", scheme);
 		exit(1);
 	}
 	if (Vflag == 1) {
-		const char *checkscheme, *checkpass;
+		const unsigned char *raw_password;
+		size_t size;
 
-		checkpass = t_strdup_printf("{%s}%s", scheme, hash);
-		checkscheme = password_get_scheme(&checkpass);
-
-		if (strcmp(scheme, checkscheme) != 0) {
-			fprintf(stderr, "reverse scheme lookup check failed\n");
+		if (password_decode(hash, scheme, &raw_password, &size) <= 0) {
+			fprintf(stderr, "reverse decode check failed\n");
 			exit(2);
 		}
-		if (password_verify(plaintext, checkpass,
-				    checkscheme, user) != 1) {
+
+		if (password_verify(plaintext, user, scheme,
+				    raw_password, size) != 1) {
 			fprintf(stderr,
 				"reverse password verification check failed\n");
 			exit(2);