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 <[email protected]> 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 _______________________________________________ Gsasl-commit mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gsasl-commit
