Kopete and Yahoo!
I've just committed the implementation of the new Yahoo! protocol authentication to Subversion and wanted to provide more information on what the problem was and how to get the fix.
Hey, why can't I login in anymore?
The problem that affected Kopete is with the authentication mechanism. Yahoo Messenger 6 used a heinously complicated password obfuscation method to "encrypt" the password as it was being sent over the wire to Yahoo's servers. Way back when, Cerulean Studios, the creators of the Trillian client, were kind enough to implement this authentication mechanism. Pidgin got it, as well as the libyahoo2 library we were using at the time. When we switched to our own Yahoo! library some time later, we carried it over. As part of this change, we began to identify to the Yahoo servers as Yahoo Messenger 6. Everything was working, and everybody was happy.
The real problem came relatively recently. As time went by, we started updating which version of Yahoo Messenger we presented ourselves as. When those changes were made, the authentication code was never updated. So, even though we said, hey we're version 15, we were using the older scheme. I even found out in February that Yahoo! was going to be changing their authentication mechanism. I didn't do anything because I was too busy with other stuff, and this fell by the wayside.
Yahoo began upgrading their servers at some point recently to phase out the older clients. It became a problem for us because when they upgraded, they started requiring protocol version 15 clients to speak the version 15 authentication scheme, which we never implemented. Since we still spoke version 13's authentication, this cut us off entirely.
So where do I get the fix?
A nice person pointed the Pidgin folks at some documentation, and when this problem reared its ugly head a few days ago, they got to work on a fix. I pulled the fix from their code and now we authenticate the same way Pidgin does. That code is now in KDE's subversion repositories in trunk, the 4.3 branch, and the 4.2 branch. I've sent a message to the packager mailing list with the revision number from the 4.2 branch that needs to be integrated. I've also asked for a retagging of KDE 4.3 RC1 so that the fix can be included there as well.
So, you'll need to wait for your distribution to provide package upgrades or compile from Subversion yourself.
What the fix does
It does three things:
- Implements the new authentication mechanism - which is much simpler
- Sets the default server to scsa.msg.yahoo.com - this is what Pidgin is using now as well
- Converts any configuration that was using a yahoo.com server to login to point at scsa.msg.yahoo.com instead, so that you have the highest possibility of logging in
Other Yahoo! login problems
If after you've upgraded, you still can't login, please file a new bug so that it can be investigated and handled properly. Adding comments to the already existing bug are not as likely to net a solution that will actually work.
Credits
Thanks to the Pidgin folks for the code and the new release which is how I actually noticed the problem in the first place. I didn't see the original bug report come in.
Thanks in particular to John Bailey, whose post on the subject from Pidgin's point of view provided the inspiration and some small bits of content for this blog post and its format.