I'm trying to encrypt a sha256 checksum with the public key (key.pub) and decrypt the same using a private key.
But I'm facing the below error. What am I doing wrong ? Thank you !
Error :
File "C:\Users\code\Encrypt.py", line 29, in decrypt_data return decipher.decrypt(data, None).decode() File "C:\Users\code\lib\site-packages\Crypto\Cipher\PKCS1_v1_5.py", line 174, in decrypt raise ValueError("Ciphertext with incorrect length (not %d bytes)" % k) ValueError: Ciphertext with incorrect length (not 384 bytes)
Code:
import hashlib
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKCS1_v1_5
def compute_sha256(file_name):
hash_sha256 = hashlib.sha256()
with open(file_name, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_sha256.update(chunk)
return hash_sha256.hexdigest()
def encrypt_data(data):
with open("C:\\Users\\code\\key.pub", "rb") as k:
key = RSA.importKey(k.read())
cipher = Cipher_PKCS1_v1_5.new(key)
return cipher.encrypt(data.encode())
def decrypt_data(data):
with open("C:\\Users\\code\\id_rsa", "rb") as k:
key = RSA.importKey(k.read())
decipher = Cipher_PKCS1_v1_5.new(key)
return decipher.decrypt(data, None).decode()
message = compute_sha256("C:\\Users\\code\\test.rpm")
encrypted = encrypt_data(message)
decrypted = decrypt_data(message)
I'm using pycryptodome
key.pub
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxGanDOXD8va+Vt6T0rZS
xw+/FYo/fRDH0Iv8JhAOt5ctdwjQn+MCV7jmtS82QQ9JVJYFozdAaN9F5PNTpbZ2
m7qJswaOHSM14np9cIKj5vTsjC0Ugb6UshP9eL8fwgedL8pB8gHF3ZIVA0Qtb9NN
jj/kLyhWjAqwb3Qd1DbGtUuQd3KmIvlwT7sdIw88idP54HrIzUU0eX9Fl9Pbr6Er
7wpXj9b602SnBVPIRcoBsa3YTKY5V3fVQnMATAmT94VHAkgTvezWkL7PRjRI/6x5
Nl8P3DCtJVlTkpOKnb40X+6wAkNX9hzX5wuCgJeC9eFY89fEKdRPSi36z1Aq0u26
KwIDAQAB
-----END PUBLIC KEY-----
id_rsa(private key)
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----