Search code examples
pythonencryptionopenssl

Can I decrypt openssl encrypted data using any dependancy?


I have used openssl to encrypt data using below command:

openssl cms -encrypt -in test.data -inform PEM -recip certificate.pem -outform PEM -out test_encrypted_data.txt

Now I want to decrypt above encrypted data using python. I have tried below code, but it is not working and is throwing:

ValueError: Ciphertext with incorrect length.

Code:

from Crypto.Cipher import PKCS1_OAEP, AES
from Crypto.PublicKey import RSA
from OpenSSL import crypto

import base64

data = open("test_encrypted_data.txt").read()
data = data.replace("-----BEGIN CMS-----", "").replace("-----END CMS-----", "")
data = base64.b64decode(data)
private_key = RSA.import_key(open("private_key_no_pass.pem").read())
decryptor = PKCS1_OAEP.new(private_key)
decryptedtext = decryptor.decrypt(data)
print(f"Decrypted Text : {decryptedtext.decode()}")

Solution

  • Thanks all I have used openssl commands to decrypt file in python

    decrypted_data = subprocess.check_output(
                f'echo "{encryptedtext}" | openssl cms -decrypt -inkey services/private_key_no_pass.pem -inform PEM ',
                shell=True)