gsasl-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU gsasl branch, master, updated. gsasl-1-4-1-30-g7164bce


From: Simon Josefsson
Subject: [SCM] GNU gsasl branch, master, updated. gsasl-1-4-1-30-g7164bce
Date: Wed, 10 Mar 2010 21:02:47 +0000

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=7164bce36864840fe3f7cabbe022fcfe975f6c5c

The branch, master has been updated
       via  7164bce36864840fe3f7cabbe022fcfe975f6c5c (commit)
      from  b73ea589c3e1fbc4410b43bfef259351a21f8461 (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 7164bce36864840fe3f7cabbe022fcfe975f6c5c
Author: Simon Josefsson <address@hidden>
Date:   Wed Mar 10 22:02:43 2010 +0100

    SCRAM: (Un)escape username.

-----------------------------------------------------------------------

Summary of changes:
 lib/scram/parser.c |   11 +++--------
 tests/scram.c      |   24 +++++++++++++++++-------
 2 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/lib/scram/parser.c b/lib/scram/parser.c
index e0affde..a7fbff5 100644
--- a/lib/scram/parser.c
+++ b/lib/scram/parser.c
@@ -37,7 +37,7 @@
 #include "validate.h"
 
 static char *
-unescape_authzid (const char *str, size_t len)
+unescape (const char *str, size_t len)
 {
   char *out = malloc (len + 1);
   char *p = out;
@@ -109,7 +109,7 @@ scram_parse_client_first (const char *str, size_t len,
       if (len < l)
        return -1;
 
-      cf->authzid = unescape_authzid (str, l);
+      cf->authzid = unescape (str, l);
       if (!cf->authzid)
        return -1;
 
@@ -141,15 +141,10 @@ scram_parse_client_first (const char *str, size_t len,
     if (len < l)
       return -1;
 
-    cf->username = malloc (l + 1);
+    cf->username = unescape (str, l);
     if (!cf->username)
       return -1;
 
-    memcpy (cf->username, str, l);
-    cf->username[l] = '\0';
-
-    /* FIXME decode username */
-
     str = p;
     len -= l;
   }
diff --git a/tests/scram.c b/tests/scram.c
index 46d68e0..b4f4ae6 100644
--- a/tests/scram.c
+++ b/tests/scram.c
@@ -30,17 +30,19 @@
 #include "utils.h"
 
 #define PASSWORD "Open, Sesame"
-#define USERNAME "Ali Baba"
-/* "Ali " "\xC2\xAD" "Bab" "\xC2\xAA" */
-/* "Al\xC2\xAA""dd\xC2\xAD""in\xC2\xAE" */
+
+#define N_AUTHID 4
+static const char *AUTHID[N_AUTHID] = {
+  "Ali Baba", "BAB,ABA", ",=,=", "="
+  /* "Ali " "\xC2\xAD" "Bab" "\xC2\xAA" */
+  /* "Al\xC2\xAA""dd\xC2\xAD""in\xC2\xAE" */
+};
 
 #define N_AUTHZID 4
 static const char *AUTHZID[N_AUTHZID] = {
   "jas", "BAB,ABA", ",=,=", "="
 };
 
-#define EXPECTED_USERNAME "Ali Baba"
-
 size_t i;
 
 static int
@@ -58,7 +60,7 @@ callback (Gsasl * ctx, Gsasl_session * sctx, Gsasl_property 
prop)
       break;
 
     case GSASL_AUTHID:
-      gsasl_property_set (sctx, prop, USERNAME);
+      gsasl_property_set (sctx, prop, AUTHID[i % N_AUTHID]);
       rc = GSASL_OK;
       break;
 
@@ -72,7 +74,7 @@ callback (Gsasl * ctx, Gsasl_session * sctx, Gsasl_property 
prop)
 
     case GSASL_SCRAM_ITER:
       if (strcmp (gsasl_property_fast (sctx, GSASL_AUTHID),
-                 EXPECTED_USERNAME) != 0)
+                 AUTHID[i % N_AUTHID]) != 0)
        fail ("Username mismatch: %s",
              gsasl_property_fast (sctx, GSASL_AUTHID));
       if (i & 0x02)
@@ -226,6 +228,14 @@ doit (void)
        printf ("C: %.*s\n", s1len, s1);
 
       {
+       const char *p = gsasl_property_fast (server, GSASL_AUTHID);
+       if (p && strcmp (p, AUTHID[i % N_AUTHID]) != 0)
+         fail ("Bad authid? %s != %s\n", p, AUTHID[i % N_AUTHID]);
+       if (i & 0x01 && !p)
+         fail ("Expected authid? %d/%s\n", i, AUTHID[i % N_AUTHID]);
+      }
+
+      {
        const char *p = gsasl_property_fast (server, GSASL_AUTHZID);
        if (p && strcmp (p, AUTHZID[i % N_AUTHZID]) != 0)
          fail ("Bad authzid? %s != %s\n", p, AUTHZID[i % N_AUTHZID]);


hooks/post-receive
-- 
GNU gsasl




reply via email to

[Prev in Thread] Current Thread [Next in Thread]