gobjectification: 6b9c44c3: Make crammd5 auth on xmpp look like it m...
resiak at pidgin.im
resiak at pidgin.im
Mon Aug 11 08:01:31 EDT 2008
-----------------------------------------------------------------
Revision: 6b9c44c30918d3e338c77bd33ba1181e98e95453
Ancestor: b5610bfaad1cd99641345c501c48e47c92a45d4d
Author: resiak at pidgin.im
Date: 2008-07-10T13:21:06
Branch: im.pidgin.gobjectification
URL: http://d.pidgin.im/viewmtn/revision/info/6b9c44c30918d3e338c77bd33ba1181e98e95453
Modified files:
libpurple/protocols/jabber/auth.c
ChangeLog:
Make crammd5 auth on xmpp look like it might work again. Specifically:
* Initialize x to be the <crammd5> node
* Set the hashing function to MD5
* Set the key to the account password
using the old implementation as a guide. I still can't connect to an xmpp
server without something spinning, but I think this auth method should now work
if we ever got that far.
-------------- next part --------------
============================================================
--- libpurple/protocols/jabber/auth.c 4ef5e56cdf7a4ff3e4966ebd3f6579a12467395e
+++ libpurple/protocols/jabber/auth.c d76417add4cdf552aa9620b22399a6103d90cb0c
@@ -641,15 +641,17 @@ static void auth_old_cb(JabberStream *js
jabber_iq_set_callback(iq, auth_old_result_cb, NULL);
jabber_iq_send(iq);
- } else if(js->stream_id && xmlnode_get_child(query, "crammd5")) {
+ } else if(js->stream_id && (x = xmlnode_get_child(query, "crammd5"))) {
const char *challenge;
guchar digest[33];
PurpleCipher *hmac;
-#warning Someone better double check this
+#warning Someone might want to triple-check this!
/* Calculate the MHAC-MD5 digest */
challenge = xmlnode_get_attrib(x, "challenge");
hmac = purple_hmac_cipher_new();
+ purple_cipher_set_hash(hmac, purple_md5_cipher_new());
+ purple_cipher_set_key(hmac, (guchar *)pw);
purple_cipher_append(hmac, (guchar*)challenge, strlen(challenge));
purple_cipher_digest(hmac, sizeof(digest), digest, NULL);
g_object_unref(G_OBJECT(hmac));
More information about the Commits
mailing list