私は、公開鍵をopensslからPythonを使用してエクスポートしようとしています。実際のキー情報はサーバーからクライアントに転送されていますが、PEMエンコーディングは転送されないため、クライアント上のキーは無用です。私は基本的にすべてをPythonで送信することを使用して公開鍵を送信しますが、残念ながらこれはPEMエンコーディングを送信しません。誰かがエンコーディングを転送する方法を知っていますか? エンコードがキーと共に転送されないことはわかりませんでした。公開鍵が認識されない
私は出発点が存在しないことを私に告げるエラーが出るkey = m2c.RSA.load_pub_key('serverPubKey.pem')
私はラインを使用すると、文字列が
import socket
import M2Crypto as m2c
import os
max_transfer_block = 1024
server_addr = "10.1.1.2"
dest_port = 3333
listen_port = 8888
client_addr = "10.1.1.3"
mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysocket.connect((server_addr, dest_port))
#receive the public key from the server
keysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
keysocket.bind((client_addr, listen_port))
keysocket.listen(1)
conn, client_addr = keysocket.accept()
print 'connected by', client_addr
data = conn.recv(max_transfer_block)
#FILE = m2c.RSA.save_pub_key(data, "serverPubKey.pem")
FILE = open("sPub.pem", "w")
FILE.write(data)
keysocket.close()
#transfer encrypted file
key = m2c.RSA.load_pub_key('serverPubKey.pem')
FILE = open("test.txt", "r")
data = FILE.read()
encrypted = key.public_encrypt(data, m2c.RSA.pkcs1_padding)
mysocket.sendall(encrypted)
mysocket.close()
に読み込まれたコード。
raise RSAError, m2.err_reason_error_string(m2.err_get_error()) M2Crypto.RSA.RSAError: no start line
これは、PEM形式ではないためです。残念ながら、私はそれをそのフォーマットにする方法を知らない。