Don't base64 encode the data, leave that up to the provider to do if it
authorJeffrey Stedfast <fejj@ximian.com>
Thu, 1 Mar 2001 18:15:23 +0000 (18:15 +0000)
committerJeffrey Stedfast <fejj@src.gnome.org>
Thu, 1 Mar 2001 18:15:23 +0000 (18:15 +0000)
2001-03-01  Jeffrey Stedfast  <fejj@ximian.com>

* camel-sasl-anonymous.c (anon_challenge): Don't base64 encode the
data, leave that up to the provider to do if it needs to. Also
save on some memory allocations and stuff.

* camel-sasl-cram-md5.c (cram_md5_challenge): Same here. Also get
rid of the need for the temp buf as we can just write it to the
GByteArray.

camel/ChangeLog
camel/camel-sasl-cram-md5.c

index a4ee3f1..c92aa7d 100644 (file)
@@ -4,7 +4,9 @@
        data, leave that up to the provider to do if it needs to. Also
        save on some memory allocations and stuff.
 
-       * camel-sasl-cram-md5.c (cram_md5_challenge): Same here.
+       * camel-sasl-cram-md5.c (cram_md5_challenge): Same here. Also get
+       rid of the need for the temp buf as we can just write it to the
+       GByteArray.
 
 2001-03-02  Not Zed  <NotZed@Ximian.com>
 
index 4b3b3aa..464039b 100644 (file)
@@ -115,7 +115,7 @@ cram_md5_challenge (CamelSasl *sasl, const char *token, CamelException *ex)
        CamelSaslCramMd5 *sasl_cram = CAMEL_SASL_CRAM_MD5 (sasl);
        struct _CamelSaslCramMd5Private *priv = sasl_cram->priv;
        guchar digest[16], md5asc[33], *s, *p;
-       char *timestamp, *passwd, *buf;
+       char *timestamp, *passwd;
        GByteArray *ret = NULL;
        guchar ipad[64];
        guchar opad[64];
@@ -124,8 +124,7 @@ cram_md5_challenge (CamelSasl *sasl, const char *token, CamelException *ex)
        
        switch (priv->state) {
        case STATE_AUTH:
-               timestamp = g_strdup (token);
-               base64_decode_simple (timestamp, strlen (timestamp));
+               timestamp = (char *) token;
                
                passwd = sasl_cram->passwd;
                pw_len = strlen (sasl_cram->passwd);
@@ -161,11 +160,10 @@ cram_md5_challenge (CamelSasl *sasl, const char *token, CamelException *ex)
                for (s = digest, p = md5asc; p < md5asc + 32; s++, p += 2)
                        sprintf (p, "%.2x", *s);
                
-               buf = g_strdup_printf ("%s %s", sasl_cram->username, md5asc);
-               
                ret = g_byte_array_new ();
-               g_byte_array_append (ret, buf, strlen (buf));
-               g_free (buf);
+               g_byte_array_append (ret, sasl_cram->username, strlen (sasl_cram->username));
+               g_byte_array_append (ret, " ", 1);
+               g_byte_array_append (ret, md5asc, strlen (md5asc));
                
                break;
        case STATE_FINAL: