I am trying to encode a piece of text using the Crypto
method.
I need to encode a piece of string using the RSA method with a given public key, and this is the code I have currently written, after referring to this link.
My code...
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import base64
def encrypt_private_key(a_message, private_key):
encryptor = PKCS1_OAEP.new(private_key)
encrypted_msg = encryptor.encrypt(a_message)
encoded_encrypted_msg = base64.b64encode(encrypted_msg)
return encoded_encrypted_msg
key = open('public.pem', 'r')
byte_key = bytes(key.read().encode())
byte_message = b'1200|2000.00'
output = encrypt_private_key(byte_message, byte_key)
print(byte_message)
However when I try to run this code I am thrown with this error.
File "C:\Users\Acer\Desktop\Web Development\Learning new features\Play video on scroll\venv\lib\site-packages\Crypto\Cipher\PKCS1_OAEP.py", line 107, in encrypt
modBits = Crypto.Util.number.size(self._key.n)
AttributeError: 'bytes' object has no attribute 'n'
And I don't understand what am I doing wrong exactly...
Any help is greatly appreciated. Thanks!