I'm trying some encryption examples.
and i keep get
dec_msg = dec_key.decrypt(enc_msg)
AttributeError: 'bytes' object has no attribute 'decrypt'
this error.
from cryptography.fernet import Fernet
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa,padding
from cryptography.hazmat.primitives import serialization,hashes
key = Fernet.generate_key()
f_object = Fernet(key)
# encrypt plain_data with AES
plain_data = bytes(input(), encoding='utf8')
enc_msg = f_object.encrypt(plain_data)
# Get public / private key
with open("public_key.pem", "rb") as key_file:
public_key = serialization.load_pem_public_key(key_file.read(),backend=default_backend())
with open("private_key.pem", "rb") as key_file:
private_key = serialization.load_pem_private_key(key_file.read(),password=None,backend=default_backend())
# encrypt symmetric key and decrypt encrypted symmetric key
enc_key = public_key.encrypt(plain_data, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))
print("enc_key and enc_message send through insecure channel.")
dec_key = private_key.decrypt(enc_key,padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))
# decrypt AES encrypted message using decrypted symmetric key
dec_key.decode('utf-8')
dec_msg = dec_key.decrypt(enc_msg)
# print result
print(dec_msg)
I tried to decode my dec_key but it doesnt work.
Is there any more thing to decode? I don't see them.