oscar: Port to use GChecksum instead of PurpleHash

Wed, 28 Sep 2016 15:46:23 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Wed, 28 Sep 2016 15:46:23 -0500
changeset 38329
c55d7f3c3ddb
parent 38328
722f62a4b0c2
child 38330
7a7637a9aaf7

oscar: Port to use GChecksum instead of PurpleHash

libpurple/protocols/oscar/family_auth.c file | annotate | diff | comparison | revisions
libpurple/protocols/oscar/oscar.c file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/oscar/family_auth.c	Wed Sep 28 15:46:07 2016 -0500
+++ b/libpurple/protocols/oscar/family_auth.c	Wed Sep 28 15:46:23 2016 -0500
@@ -31,8 +31,6 @@
 
 #include <ctype.h>
 
-#include "ciphers/md5hash.h"
-
 /* #define USE_XOR_FOR_ICQ */
 
 #ifdef USE_XOR_FOR_ICQ
@@ -75,14 +73,15 @@
 static int
 aim_encode_password_md5(const char *password, size_t password_len, const char *key, guint8 *digest)
 {
-	PurpleHash *hash;
+	GChecksum *hash;
+	gsize digest_len = 16;
 
-	hash = purple_md5_hash_new();
-	purple_hash_append(hash, (const guchar *)key, strlen(key));
-	purple_hash_append(hash, (const guchar *)password, password_len);
-	purple_hash_append(hash, (const guchar *)AIM_MD5_STRING, strlen(AIM_MD5_STRING));
-	purple_hash_digest(hash, 16, digest, NULL);
-	g_object_unref(hash);
+	hash = g_checksum_new(G_CHECKSUM_MD5);
+	g_checksum_update(hash, (const guchar *)key, -1);
+	g_checksum_update(hash, (const guchar *)password, password_len);
+	g_checksum_update(hash, (const guchar *)AIM_MD5_STRING, -1);
+	g_checksum_get_digest(hash, digest, &digest_len);
+	g_checksum_free(hash);
 
 	return 0;
 }
@@ -90,19 +89,20 @@
 static int
 aim_encode_password_md5(const char *password, size_t password_len, const char *key, guint8 *digest)
 {
-	PurpleHash *hash;
+	GChecksum *hash;
 	guchar passdigest[16];
+	gsize digest_len = 16;
 
-	hash = purple_md5_hash_new();
-	purple_hash_append(hash, (const guchar *)password, password_len);
-	purple_hash_digest(hash, passdigest, sizeof(passdigest));
-	purple_hash_reset(hash);
+	hash = g_checksum_new(G_CHECKSUM_MD5);
+	g_checksum_update(hash, (const guchar *)password, password_len);
+	g_checksum_get_digest(hash, passdigest, &digest_len);
+	g_checksum_reset(hash);
 
-	purple_hash_append(hash, (const guchar *)key, strlen(key));
-	purple_hash_append(hash, passdigest, 16);
-	purple_hash_append(hash, (const guchar *)AIM_MD5_STRING, strlen(AIM_MD5_STRING));
-	purple_hash_digest(hash, digest, 16);
-	g_object_unref(hash);
+	g_checksum_update(hash, (const guchar *)key, -1);
+	g_checksum_update(hash, passdigest, 16);
+	g_checksum_update(hash, (const guchar *)AIM_MD5_STRING, -1);
+	g_checksum_get_digest(hash, digest, &digest_len);
+	g_checksum_free(hash);
 
 	return 0;
 }
--- a/libpurple/protocols/oscar/oscar.c	Wed Sep 28 15:46:07 2016 -0500
+++ b/libpurple/protocols/oscar/oscar.c	Wed Sep 28 15:46:23 2016 -0500
@@ -33,7 +33,6 @@
 #include "account.h"
 #include "accountopt.h"
 #include "buddyicon.h"
-#include "ciphers/md5hash.h"
 #include "conversation.h"
 #include "core.h"
 #include "debug.h"
@@ -5238,15 +5237,16 @@
 	if (img == NULL) {
 		aim_ssi_delicon(od);
 	} else {
-		PurpleHash *hash;
+		GChecksum *hash;
 		guchar md5[16];
+		gsize digest_len = 16;
 		gconstpointer data = purple_image_get_data(img);
 		size_t len = purple_image_get_size(img);
 
-		hash = purple_md5_hash_new();
-		purple_hash_append(hash, data, len);
-		purple_hash_digest(hash, md5, sizeof(md5));
-		g_object_unref(hash);
+		hash = g_checksum_new(G_CHECKSUM_MD5);
+		g_checksum_update(hash, data, len);
+		g_checksum_get_digest(hash, md5, &digest_len);
+		g_checksum_free(hash);
 
 		aim_ssi_seticon(od, md5, 16);
 	}

mercurial