Python M2CryptoのRSAとPKCS1パディングを使用して、外部WebサイトのAPIで使用する電子メールをエンコードしていました。unicodeを使用すると、エンコードされた電子メールはAPIから結果を返しませんでしたが、str(unicode_email)を使用すると、正しい情報を受け取りました。
この場合、文字列のユニコード表現とバイト表現の両方が機能するはずだという印象を受けました。ユニコードが失敗する理由を誰かが知っていますか?
参照用のコード:
from M2Crypto import RSA
email = u'email@example.com' #fails
email = str(email) # succeeds
rsa = RSA.load_pub_key('rsa_pubkey.pem')
result = rsa.public_encrypt(email, RSA.pkcs1_padding).encode('base64')