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

Reply via email to