This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU gsasl".
http://git.savannah.gnu.org/cgit/gsasl.git/commit/?id=79a1534fbf3f0aa0a7f99d26a5c92bbe2a58e867 The branch, master has been updated via 79a1534fbf3f0aa0a7f99d26a5c92bbe2a58e867 (commit) from 30b5fc721305dac42fce6832e33a27d0502eb35a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 79a1534fbf3f0aa0a7f99d26a5c92bbe2a58e867 Author: Simon Josefsson <[email protected]> Date: Wed Oct 7 15:07:48 2009 +0200 SCRAM: Normalize password using SASLprep. ----------------------------------------------------------------------- Summary of changes: lib/scram/client.c | 15 ++++++++++++--- lib/scram/server.c | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/scram/client.c b/lib/scram/client.c index 19dd849..869d83f 100644 --- a/lib/scram/client.c +++ b/lib/scram/client.c @@ -241,17 +241,26 @@ _gsasl_scram_sha1_client_step (Gsasl_session * sctx, Gc_rc err; char *salt; size_t saltlen; + char *preppasswd; + + rc = gsasl_saslprep (p, 0, &preppasswd, NULL); + if (rc != GSASL_OK) + return rc; rc = gsasl_base64_from (state->sf.salt, strlen (state->sf.salt), &salt, &saltlen); if (rc != 0) - return rc; + { + gsasl_free (preppasswd); + return rc; + } /* SaltedPassword := Hi(password, salt) */ - err = gc_pbkdf2_sha1 (p, strlen (p), + err = gc_pbkdf2_sha1 (preppasswd, strlen (preppasswd), salt, saltlen, state->sf.iter, saltedpassword, 20); - free (salt); + gsasl_free (preppasswd); + gsasl_free (salt); if (err != GC_OK) return GSASL_MALLOC_ERROR; } diff --git a/lib/scram/server.c b/lib/scram/server.c index e162429..8b7a2c1 100644 --- a/lib/scram/server.c +++ b/lib/scram/server.c @@ -241,17 +241,26 @@ _gsasl_scram_sha1_server_step (Gsasl_session * sctx, size_t saltlen; char saltedpassword[20]; char *clientkey; + char *preppasswd; + + rc = gsasl_saslprep (p, 0, &preppasswd, NULL); + if (rc != GSASL_OK) + return rc; rc = gsasl_base64_from (state->sf.salt, strlen (state->sf.salt), &salt, &saltlen); if (rc != 0) - return rc; + { + gsasl_free (preppasswd); + return rc; + } /* SaltedPassword := Hi(password, salt) */ - err = gc_pbkdf2_sha1 (p, strlen (p), + err = gc_pbkdf2_sha1 (preppasswd, strlen (preppasswd), salt, saltlen, state->sf.iter, saltedpassword, 20); - free (salt); + gsasl_free (preppasswd); + gsasl_free (salt); if (err != GC_OK) return GSASL_MALLOC_ERROR; hooks/post-receive -- GNU gsasl _______________________________________________ Gsasl-commit mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gsasl-commit
