diff src/protocols/yahoo/yahoo.c @ 10687:b256ce6b85b8

[gaim-migrate @ 12235] grim says this is really fixed this time. committer: Tailor Script <tailor@pidgin.im>
author Etan Reisner <pidgin@unreliablesource.net>
date Sat, 12 Mar 2005 01:10:37 +0000
parents 72a5babfa8b4
children c4cb90065e1d
line wrap: on
line diff
--- a/src/protocols/yahoo/yahoo.c	Fri Mar 11 22:45:41 2005 +0000
+++ b/src/protocols/yahoo/yahoo.c	Sat Mar 12 01:10:37 2005 +0000
@@ -958,7 +958,7 @@
 	context = gaim_cipher_context_new(cipher, NULL);
 
 	gaim_cipher_context_append(context, pass, strlen(pass));
-	gaim_cipher_context_digest(context, NULL, digest);
+	gaim_cipher_context_digest(context, sizeof(digest), digest, NULL);
 
 	to_y64(password_hash, digest, 16);
 
@@ -966,7 +966,7 @@
 
 	gaim_cipher_context_reset(context, NULL);
 	gaim_cipher_context_append(context, crypt_result, strlen(crypt_result));
-	gaim_cipher_context_digest(context, NULL, digest);
+	gaim_cipher_context_digest(context, sizeof(digest), digest, NULL);
 	to_y64(crypt_hash, digest, 16);
 
 	switch (sv) {
@@ -1012,12 +1012,12 @@
 
 	gaim_cipher_context_reset(context, NULL);
 	gaim_cipher_context_append(context, hash_string_p, strlen(hash_string_p));
-	gaim_cipher_context_digest(context, NULL, digest);
+	gaim_cipher_context_digest(context, sizeof(digest), digest, NULL);
 	to_y64(result6, digest, 16);
 
 	gaim_cipher_context_reset(context, NULL);
 	gaim_cipher_context_append(context, hash_string_c, strlen(hash_string_c));
-	gaim_cipher_context_digest(context, NULL, digest);
+	gaim_cipher_context_digest(context, sizeof(digest), digest, NULL);
 	gaim_cipher_context_destroy(context);
 	to_y64(result96, digest, 16);
 
@@ -1244,7 +1244,8 @@
 			gaim_cipher_context_reset(md5_ctx, NULL);
 			gaim_cipher_context_append(md5_ctx, magic_key_char, 4);
 			gaim_cipher_context_append(md5_ctx, test, 3);
-			gaim_cipher_context_digest(md5_ctx, NULL, md5_digest);
+			gaim_cipher_context_digest(md5_ctx, sizeof(md5_digest),
+									   md5_digest, NULL);
 			
 			if (!memcmp(md5_digest, comparison_src+4, 16)) {
 				leave = 1;
@@ -1275,13 +1276,15 @@
 	/* Get password and crypt hashes as per usual. */
 	gaim_cipher_context_reset(md5_ctx, NULL);
 	gaim_cipher_context_append(md5_ctx, pass, strlen(pass));
-	gaim_cipher_context_digest(md5_ctx, NULL, md5_digest);
+	gaim_cipher_context_digest(md5_ctx, sizeof(md5_digest),
+							   md5_digest, NULL);
 	to_y64(password_hash, md5_digest, 16);
 
 	crypt_result = yahoo_crypt(pass, "$1$_2S43d5f$");  
 	gaim_cipher_context_reset(md5_ctx, NULL);
 	gaim_cipher_context_append(md5_ctx, crypt_result, strlen(crypt_result));
-	gaim_cipher_context_digest(md5_ctx, NULL, md5_digest);
+	gaim_cipher_context_digest(md5_ctx, sizeof(md5_digest),
+							   md5_digest, NULL);
 	to_y64(crypt_hash, md5_digest, 16);
 
 	/* Our first authentication response is based off of the password hash. */
@@ -1308,7 +1311,7 @@
 	if (y >= 3)
 		gaim_cipher_context_set_option(sha1_ctx1, "sizeLo", GINT_TO_POINTER(0x1ff));
 	gaim_cipher_context_append(sha1_ctx1, magic_key_char, 4);
-	gaim_cipher_context_digest(sha1_ctx1, NULL, digest1);
+	gaim_cipher_context_digest(sha1_ctx1, sizeof(digest1), digest1, NULL);
 	
 	/* 
 	 * The second context gets the password hash XORed with 0x5c plus the SHA-1 digest
@@ -1317,7 +1320,7 @@
 	
 	gaim_cipher_context_append(sha1_ctx2, pass_hash_xor2, 64);
 	gaim_cipher_context_append(sha1_ctx2, digest1, 20);
-	gaim_cipher_context_digest(sha1_ctx2, NULL, digest2);
+	gaim_cipher_context_digest(sha1_ctx2, sizeof(digest2), digest2, NULL);
 	
 	/* 
 	 * Now that we have digest2, use it to fetch characters from an alphabet to construct
@@ -1398,10 +1401,12 @@
 	 */
 	
 	gaim_cipher_context_append(sha1_ctx1, crypt_hash_xor1, 64);
-	if (y >= 3)
-		gaim_cipher_context_set_option(sha1_ctx1, "sizeLo", GINT_TO_POINTER(0x1ff));
+	if (y >= 3) {
+		gaim_cipher_context_set_option(sha1_ctx1, "sizeLo",
+									   GINT_TO_POINTER(0x1ff));
+	}
 	gaim_cipher_context_append(sha1_ctx1, magic_key_char, 4);
-	gaim_cipher_context_digest(sha1_ctx1, NULL, digest1);
+	gaim_cipher_context_digest(sha1_ctx1, sizeof(digest1), digest1, NULL);
 	
 	/* 
 	 * The second context gets the password hash XORed with 0x5c plus the SHA-1 digest
@@ -1410,7 +1415,7 @@
 	
 	gaim_cipher_context_append(sha1_ctx2, crypt_hash_xor2, 64);
 	gaim_cipher_context_append(sha1_ctx2, digest1, 20);
-	gaim_cipher_context_digest(sha1_ctx2, NULL, digest2);
+	gaim_cipher_context_digest(sha1_ctx2, sizeof(digest2), digest2, NULL);
 	
 	/* 
 	 * Now that we have digest2, use it to fetch characters from an alphabet to construct
@@ -2183,7 +2188,7 @@
 	context = gaim_cipher_context_new(cipher, NULL);
 
 	gaim_cipher_context_append(context, pass, strlen(pass));
-	gaim_cipher_context_digest(context, NULL, digest);
+	gaim_cipher_context_digest(context, sizeof(digest), digest, NULL);
 	for (i = 0; i < 16; ++i) {
 		g_snprintf(hashp, 3, "%02x", digest[i]);
 		hashp += 2;
@@ -2192,7 +2197,7 @@
 	chal = g_strconcat(md5, g_hash_table_lookup(hash, ".challenge"), NULL);
 	gaim_cipher_context_reset(context, NULL);
 	gaim_cipher_context_append(context, chal, strlen(chal));
-	gaim_cipher_context_digest(context, NULL, digest);
+	gaim_cipher_context_digest(context, sizeof(digest), digest, NULL);
 	hashp = md5;
 	for (i = 0; i < 16; ++i) {
 		g_snprintf(hashp, 3, "%02x", digest[i]);
@@ -2204,7 +2209,7 @@
 
 	gaim_cipher_context_reset(context, NULL);
 	gaim_cipher_context_append(context, md5, strlen(md5));
-	gaim_cipher_context_digest(context, NULL, digest);
+	gaim_cipher_context_digest(context, sizeof(digest), digest, NULL);
 	hashp = md5;
 	for (i = 0; i < 16; ++i) {
 		g_snprintf(hashp, 3, "%02x", digest[i]);