sqlite for example will always return strings as unicode strings, or it will always return strings as byte strings. It doesn't know how to return the username colum as one kind of string and the hash column as another kind of string. I think this is really a bug in the urlsafe base64 module. This works: unicode(u"foobar".encode('base64')).decode('base64') On Wed, Sep 23, 2009 at 4:07 AM, Wichert Akkerman <wichert@wiggy.net> wrote:
On 2009-9-22 18:59, Daniel Holth wrote:
At least on Python 2.6, SSHAPasswordManager().checkPassword(hash, password) fails if hash is unicode, which it always is if stored in some databases. SSHAPasswordManager should encode the hash to utf-8 before trying to un-base64.
Isn't that a bug in those databases. The hash is not a unicode string but a bytestring.
Wichert.
-- Wichert Akkerman <wichert@wiggy.net> It is simple to make things. http://www.wiggy.net/ It is hard to make things simple.