Mercurial > pidgin
comparison libpurple/protocols/myspace/myspace.c @ 24914:1981b04de92e
MySpace? passwords are truncated to 10 characters. Their website doesn't
let you enter a password longer than that in the change password
interface, but it does let you enter more than 10 characters when logging
in (and they truncate it).
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Tue, 06 Jan 2009 01:25:17 +0000 |
parents | c6cadb7bdcf7 |
children | b15168f2b7ee 68265bcc8814 |
comparison
equal
deleted
inserted
replaced
24913:702947c56bfa | 24914:1981b04de92e |
---|---|
531 PurpleCipher *sha1; | 531 PurpleCipher *sha1; |
532 PurpleCipherContext *rc4; | 532 PurpleCipherContext *rc4; |
533 | 533 |
534 guchar hash_pw[HASH_SIZE]; | 534 guchar hash_pw[HASH_SIZE]; |
535 guchar key[HASH_SIZE]; | 535 guchar key[HASH_SIZE]; |
536 gchar *password_utf16le, *password_utf8_lc; | 536 gchar *password_truncated, *password_utf16le, *password_utf8_lc; |
537 GString *data; | 537 GString *data; |
538 guchar *data_out; | 538 guchar *data_out; |
539 size_t data_out_len; | 539 size_t data_out_len; |
540 gsize conv_bytes_read, conv_bytes_written; | 540 gsize conv_bytes_read, conv_bytes_written; |
541 GError *conv_error; | 541 GError *conv_error; |
546 g_return_val_if_fail(nonce != NULL, NULL); | 546 g_return_val_if_fail(nonce != NULL, NULL); |
547 g_return_val_if_fail(email != NULL, NULL); | 547 g_return_val_if_fail(email != NULL, NULL); |
548 g_return_val_if_fail(password != NULL, NULL); | 548 g_return_val_if_fail(password != NULL, NULL); |
549 g_return_val_if_fail(response_len != NULL, NULL); | 549 g_return_val_if_fail(response_len != NULL, NULL); |
550 | 550 |
551 /* | |
552 * Truncate password to 10 characters. Their "change password" | |
553 * web page doesn't let you enter more than 10 characters, but you | |
554 * can enter more than 10 when logging in on myspace.com and they | |
555 * truncate it. | |
556 */ | |
557 password_truncated = g_strndup(password, 10); | |
558 | |
551 /* Convert password to lowercase (required for passwords containing | 559 /* Convert password to lowercase (required for passwords containing |
552 * uppercase characters). MySpace passwords are lowercase, | 560 * uppercase characters). MySpace passwords are lowercase, |
553 * see ticket #2066. */ | 561 * see ticket #2066. */ |
554 password_utf8_lc = g_utf8_strdown(password, -1); | 562 password_utf8_lc = g_utf8_strdown(password_truncated, -1); |
563 g_free(password_truncated); | |
555 | 564 |
556 /* Convert ASCII password to UTF16 little endian */ | 565 /* Convert ASCII password to UTF16 little endian */ |
557 purple_debug_info("msim", "converting password to UTF-16LE\n"); | 566 purple_debug_info("msim", "converting password to UTF-16LE\n"); |
558 conv_error = NULL; | 567 conv_error = NULL; |
559 password_utf16le = g_convert(password_utf8_lc, -1, "UTF-16LE", "UTF-8", | 568 password_utf16le = g_convert(password_utf8_lc, -1, "UTF-16LE", "UTF-8", |
560 &conv_bytes_read, &conv_bytes_written, &conv_error); | 569 &conv_bytes_read, &conv_bytes_written, &conv_error); |
561 g_free(password_utf8_lc); | 570 g_free(password_utf8_lc); |
562 | |
563 g_return_val_if_fail(conv_bytes_read == strlen(password), NULL); | |
564 | 571 |
565 if (conv_error != NULL) { | 572 if (conv_error != NULL) { |
566 purple_debug_error("msim", | 573 purple_debug_error("msim", |
567 "g_convert password UTF8->UTF16LE failed: %s", | 574 "g_convert password UTF8->UTF16LE failed: %s", |
568 conv_error->message); | 575 conv_error->message); |