Mercurial > dovecot > original-hg > dovecot-1.2
diff src/auth/mech-skey.c @ 5598:971050640e3b HEAD
All password schemes can now be encoded with base64 or hex. The encoding is
".b64", ".base64" or ".hex" suffix in the scheme, eg. {plain.b64}.
Password scheme verification function can now be set to NULL, in which case
the verification is done by generating a new crypted password from given
plaintext password and comparing it.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 13 May 2007 15:17:09 +0300 |
parents | f8dc0bdb06a7 |
children | 84eea1977632 |
line wrap: on
line diff
--- a/src/auth/mech-skey.c Sun May 13 14:53:05 2007 +0300 +++ b/src/auth/mech-skey.c Sun May 13 15:17:09 2007 +0300 @@ -17,13 +17,14 @@ static void skey_send_challenge(struct auth_request *auth_request, - const char *credentials) + const unsigned char *credentials, size_t size) { struct otp_auth_request *request = (struct otp_auth_request *)auth_request; const char *answer; - if (otp_parse_dbentry(credentials, &request->state) != 0) { + if (otp_parse_dbentry(t_strndup(credentials, size), + &request->state) != 0) { auth_request_log_error(&request->auth_request, "skey", "invalid OTP data in passdb"); auth_request_fail(auth_request); @@ -62,12 +63,12 @@ static void otp_credentials_callback(enum passdb_result result, - const char *credentials, + const unsigned char *credentials, size_t size, struct auth_request *auth_request) { switch (result) { case PASSDB_RESULT_OK: - skey_send_challenge(auth_request, credentials); + skey_send_challenge(auth_request, credentials, size); break; case PASSDB_RESULT_INTERNAL_FAILURE: auth_request_internal_failure(auth_request); @@ -80,12 +81,12 @@ static void skey_credentials_callback(enum passdb_result result, - const char *credentials, + const unsigned char *credentials, size_t size, struct auth_request *auth_request) { switch (result) { case PASSDB_RESULT_OK: - skey_send_challenge(auth_request, credentials); + skey_send_challenge(auth_request, credentials, size); break; case PASSDB_RESULT_INTERNAL_FAILURE: auth_request_internal_failure(auth_request);