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-2-65-g605fe23


From: Simon Josefsson
Subject: [SCM] GNU gsasl branch, master, updated. gsasl-1-2-65-g605fe23
Date: Thu, 10 Sep 2009 11:48:57 +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=605fe234954cd3068e4566012d2ba762df735174

The branch, master has been updated
       via  605fe234954cd3068e4566012d2ba762df735174 (commit)
      from  9321ddde48e3456000a4046999b992535b68ad99 (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 605fe234954cd3068e4566012d2ba762df735174
Author: Simon Josefsson <address@hidden>
Date:   Thu Sep 10 13:48:53 2009 +0200

    SCRAM: Use printable nonces.

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

Summary of changes:
 lib/scram/client.c |   25 +++++++------------------
 lib/scram/server.c |   24 +++++++++---------------
 2 files changed, 16 insertions(+), 33 deletions(-)

diff --git a/lib/scram/client.c b/lib/scram/client.c
index 6397af5..29034cc 100644
--- a/lib/scram/client.c
+++ b/lib/scram/client.c
@@ -37,7 +37,7 @@
 #include "parser.h"
 #include "printer.h"
 
-#define CNONCE_ENTROPY_BYTES 16
+#define CNONCE_ENTROPY_BYTES 18
 
 struct scram_client_state
 {
@@ -52,6 +52,7 @@ int
 _gsasl_scram_sha1_client_start (Gsasl_session * sctx, void **mech_data)
 {
   struct scram_client_state *state;
+  char buf[CNONCE_ENTROPY_BYTES];
   size_t i;
   int rc;
 
@@ -59,26 +60,14 @@ _gsasl_scram_sha1_client_start (Gsasl_session * sctx, void 
**mech_data)
   if (state == NULL)
     return GSASL_MALLOC_ERROR;
 
-  state->cf.client_nonce = malloc (CNONCE_ENTROPY_BYTES + 1);
-  if (!state->cf.client_nonce)
-    return GSASL_MALLOC_ERROR;
-
-  rc = gsasl_nonce (state->cf.client_nonce, CNONCE_ENTROPY_BYTES);
+  rc = gsasl_nonce (buf, CNONCE_ENTROPY_BYTES);
   if (rc != GSASL_OK)
     return rc;
 
-  state->cf.client_nonce[CNONCE_ENTROPY_BYTES] = '\0';
-
-  for (i = 0; i < CNONCE_ENTROPY_BYTES; i++)
-    {
-      state->cf.client_nonce[i] &= 0x7f;
-
-      if (state->cf.client_nonce[i] == '\0')
-       state->cf.client_nonce[i]++;
-
-      if (state->cf.client_nonce[i] == ',')
-       state->cf.client_nonce[i]++;
-    }
+  rc = gsasl_base64_to (buf, CNONCE_ENTROPY_BYTES,
+                       &state->cf.client_nonce, NULL);
+  if (rc != GSASL_OK)
+    return rc;
 
   *mech_data = state;
 
diff --git a/lib/scram/server.c b/lib/scram/server.c
index dd4b4d1..7a4f57d 100644
--- a/lib/scram/server.c
+++ b/lib/scram/server.c
@@ -41,12 +41,12 @@
 #include "printer.h"
 
 #define DEFAULT_SALT_BYTES 8
-#define SNONCE_ENTROPY_BYTES 16
+#define SNONCE_ENTROPY_BYTES 18
 
 struct scram_server_state
 {
   int step;
-  char snonce[SNONCE_ENTROPY_BYTES + 1];
+  char *snonce;
   char salt[DEFAULT_SALT_BYTES + 1];
   struct scram_client_first cf;
   struct scram_server_first sf;
@@ -58,6 +58,7 @@ int
 _gsasl_scram_sha1_server_start (Gsasl_session * sctx, void **mech_data)
 {
   struct scram_server_state *state;
+  char buf[SNONCE_ENTROPY_BYTES];
   size_t i;
   int rc;
 
@@ -65,22 +66,14 @@ _gsasl_scram_sha1_server_start (Gsasl_session * sctx, void 
**mech_data)
   if (state == NULL)
     return GSASL_MALLOC_ERROR;
 
-  rc = gsasl_nonce (state->snonce, SNONCE_ENTROPY_BYTES);
+  rc = gsasl_nonce (buf, SNONCE_ENTROPY_BYTES);
   if (rc != GSASL_OK)
     return rc;
 
-  state->snonce[SNONCE_ENTROPY_BYTES] = '\0';
-
-  for (i = 0; i < SNONCE_ENTROPY_BYTES; i++)
-    {
-      state->snonce[i] &= 0x7f;
-
-      if (state->snonce[i] == '\0')
-       state->snonce[i]++;
-
-      if (state->snonce[i] == ',')
-       state->snonce[i]++;
-    }
+  rc = gsasl_base64_to (buf, SNONCE_ENTROPY_BYTES,
+                       &state->snonce, NULL);
+  if (rc != GSASL_OK)
+    return rc;
 
   rc = gsasl_nonce (state->salt, DEFAULT_SALT_BYTES);
   if (rc != GSASL_OK)
@@ -203,6 +196,7 @@ _gsasl_scram_sha1_server_finish (Gsasl_session * sctx, void 
*mech_data)
   if (!state)
     return;
   
+  free (state->snonce);
   scram_free_client_first (&state->cf);
   scram_free_server_first (&state->sf);
   scram_free_client_final (&state->cl);


hooks/post-receive
-- 
GNU gsasl




reply via email to

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