libpurple/protocols/oscar/family_auth.c

changeset 38329
c55d7f3c3ddb
parent 37144
8b63b9948107
child 38339
9c9277601d98
--- 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;
 }

mercurial