私は、ソケットで送信したい公開鍵とユーザ名を持つリストを持っています。ソケットを介して送信するRSAキーをピケッとすることはできません
私は how to send an array over a socket in pythonを見つけましたが、酸洗を使用しても機能しません。
マイコード:
private_key = generateRSA()
public_key = private_key.public_key()
host = ''
port = 8000
username = sys.argv[1]
mySocket = socket.socket()
mySocket.connect((host, port))
dataToSend = [public_key, username.encode()]
dataSend = pickle.dumps(dataToSend)
mySocket.send(dataSend)
エラーコンソールでは、キーがcryptography
libraryで生成された
dataSend = pickle.dumps(dataToSend)
_pickle.PicklingError: Can't pickle <class '_cffi_backend.CDataGCP'>: attribute lookup CDataGCP on _cffi_backend failed
言います。
あなたの質問は、なぜCFFIオブジェクトをピクルできないのかに関するものです。あなたがデータとしてソケットを介して任意のオブジェクトを送信したいが、あなたの問題は、簡単にピクルすることができない特定のタイプのオブジェクトにあるため、picklingする*理由*があります。 –
'generateRSA()'関数が提供されているプロジェクトを教えてください。それから私たちは秘密鍵のデータを生成するのを手助けすることができます。今のところ、文字列ではなく簡単に送信できないオブジェクトです。 –
これはPython暗号化ライブラリです。 https://cryptography.io/en/latest/hazmat/primitives/asymmetric/rsa/ –