homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: HMAC trans_5C is a string, causing a TypeError
Type: behavior Stage:
Components: Library (Lib) Versions: Python 2.7
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: Adam.Glenn, christian.heimes
Priority: normal Keywords:

Created on 2012年09月27日 17:21 by Adam.Glenn, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Messages (3)
msg171384 - (view) Author: Adam Glenn (Adam.Glenn) Date: 2012年09月27日 17:21
When passing 2 unicode objects to hmac.new() I'm getting "TypeError: character mapping must return integer, None or unicode" I've tried this using hashlib.sha1 and hashlib.md5 and the behavior is the same. What I think is happening is that the trans_5C join at the top of this module is a string so it's causing the type error when I try to generate the new hmac object at line 72.
msg171903 - (view) Author: Adam Glenn (Adam.Glenn) Date: 2012年10月03日 19:12
I did some more testing and verified that this is a problem caused by the fact that trans_5C is a string and not unicode. It also happens when trans_36 is sent to key.translate().
Python 2.7.3 (default, Aug 1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hmac
>>> hmac.new(u'key', u'msg')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "hmac.py", line 132, in new
 return HMAC(key, msg, digestmod)
 File "hmac.py", line 72, in __init__
 self.inner.update(key.translate(trans_36))
TypeError: character mapping must return integer, None or unicode
>>>
msg172263 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2012年10月06日 23:30
That's to be expected. HMAC and all cryptographic hashing algorithms work with bytes only. Text (unicode) is neither specified by the standards nor supported. You have to convert your text to bytes with some encoding (e.g. ASCII or UTF-8).
History
Date User Action Args
2022年04月11日 14:57:36adminsetgithub: 60267
2013年10月13日 18:32:23georg.brandlsetstatus: pending -> closed
2012年10月06日 23:30:51christian.heimessetstatus: open -> pending

nosy: + christian.heimes
messages: + msg172263

components: + Library (Lib), - None
resolution: wont fix
2012年10月03日 19:12:52Adam.Glennsetmessages: + msg171903
2012年09月27日 17:21:13Adam.Glenncreate

AltStyle によって変換されたページ (->オリジナル) /