1
ctypesバインディングに問題があり、ctypesドキュメントが私の頭を少し傷つけています。効率的にctypes LP_c_ubyteをpython 'str'に変換する
バイナリデータを送信するリモートネットワーククライアントと、私が使用しているライブラリ(Mosquitto、MQTTメッセージブローカー用)は、元のバイナリデータをネットワークから取得するためのctypesメソッドを提供しています。これは "LP_c_ubyte"タイプです。これをPythonの 'str'オブジェクトに戻す効率的な方法はありますか?
M2Cryptoの復号化機能に使用するためには、通常のバイトセットが必要です。
pp = ''.join(chr(msg.payload[i]) for i in xrange(msg.payloadlen))
clear_text = rsa.private_decrypt(pp, M2Crypto.RSA.pkcs1_padding)
これは機能しますが、かなり醜いです。
クライアントをbase64に変更してから最初にすべてをエンコードしてから、この最後にunbase64を変更することもできますが、これも回避策のようです。
もっと良い方法がありますか?