Mercurial > dovecot > original-hg > dovecot-1.2
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);