Patches item #1171487, was opened at 2005-03-27 13:46
Message generated for change (Comment added) made by logistix
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1171487&group_id=5470
Category: None
Group: None
Status: Open
Resolution: None
Priority: 6
Submitted By: logistix (logistix)
Assigned to: Nobody/Anonymous (nobody)
Summary: Patch for [ 1170331 ] Error in base64.b32decode
Initial Comment:
base64.b32decode didn't decode some things properly.
Seems to have only impacted characters with a value <
32. Attached is a fix and a new test.
----------------------------------------------------------------------
>Comment By: logistix (logistix)
Date: 2005-03-27 15:43
Message:
Logged In: YES
user_id=699438
Updated patch to reflect another fix.
I originally thought the bug was related to cleanup of a
partial quanta. It will trigger on any quanta where the
initial hex value is < 0x10. When this happens part of the
hex code disappears in the initial conversion and is
mistakenly swallowed. The hex function that was originally
used doesn't zero-pad, but the way the bit shifting works,
it doesn't need to when encoding normal alpha-numeric
characters, so it seemed to work correctly.
This will only cause problems if you are using a character
value of < 0x10 in the 0th, 4th, 8th, 12th, etc positions in
the encoded string. Otherwise it'll work properly. Using
"%010x" ensures that you'll get the appropriate zero-padding
if necessary.
Example of more broken code not covered in the original bug:
>>> base64.b32decode(base64.b32encode('\x00aaa'))
'aaa'
Updated patch fixes this case as well.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1171487&group_id=5470
_______________________________________________
Patches mailing list
[email protected]
http://mail.python.org/mailman/listinfo/patches