From: <dat...@us...> - 2006-08-06 23:56:49
|
Revision: 16659 Author: datallah Date: 2006-08-06 16:56:42 -0700 (Sun, 06 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16659&view=rev Log Message: ----------- Backport of 16658 (Fix for non-ascii yahoo passwords). Modified Paths: -------------- branches/v2_0_0/src/protocols/yahoo/yahoo.c Modified: branches/v2_0_0/src/protocols/yahoo/yahoo.c =================================================================== --- branches/v2_0_0/src/protocols/yahoo/yahoo.c 2006-08-06 23:47:34 UTC (rev 16658) +++ branches/v2_0_0/src/protocols/yahoo/yahoo.c 2006-08-06 23:56:42 UTC (rev 16659) @@ -1241,6 +1241,7 @@ GaimAccount *account = gaim_connection_get_account(gc); const char *name = gaim_normalize(account, gaim_account_get_username(account)); const char *pass = gaim_connection_get_password(gc); + char *enc_pass; struct yahoo_data *yd = gc->proto_data; GaimCipher *md5_cipher; @@ -1472,14 +1473,20 @@ magic_key_char[3] = (updated_key >> 24) & 0xff; } + enc_pass = yahoo_string_encode(gc, pass, NULL); + /* Get password and crypt hashes as per usual. */ gaim_cipher_context_reset(md5_ctx, NULL); - gaim_cipher_context_append(md5_ctx, (const guchar *)pass, strlen(pass)); + gaim_cipher_context_append(md5_ctx, (const guchar *)enc_pass, strlen(enc_pass)); 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$"); + crypt_result = yahoo_crypt(enc_pass, "$1$_2S43d5f$"); + + g_free(enc_pass); + enc_pass = NULL; + gaim_cipher_context_reset(md5_ctx, NULL); gaim_cipher_context_append(md5_ctx, (const guchar *)crypt_result, strlen(crypt_result)); gaim_cipher_context_digest(md5_ctx, sizeof(md5_digest), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |