Я с утра зациклился на этой проблеме. Я сгенерировал пару ключей для шифрования RSA с помощью s sh -keygen.
Шифрование работает нормально:
with open("keys.pub", "rb") as f:
pubkey = f.read()
with open("keys", "rb") as f:
prvkey = f.read()
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKCS1_v1_5
msg = "test"
print("raw msg->", msg)
keyPub = RSA.importKey(pubkey) # import the public key
cipher = Cipher_PKCS1_v1_5.new(keyPub)
cipher_text = cipher.encrypt(msg.encode()) # now we have the cipher
print("cipher text->", cipher_text)
Однако при расшифровке я получаю ошибку:
keyPriv = RSA.importKey(prvkey) # import the private key
cipher = Cipher_PKCS1_v1_5.new(keyPriv)
decrypt_text = cipher.decrypt(cipher_text, None).decode()
print("decrypted msg->", decrypt_text)
assert msg == decrypt_text # check that
print("test passed")
ValueError: формат ключа RSA не поддерживается
Я использую PyCrypto 2.6.1. Любая помощь будет принята с благодарностью. Я не могу прикрепить ключи из-за ошибки сервера.