0
votes

I Am trying to generate a fernet key via the user's input, then write it to a key file.

import base64 import rsa import os from cryptography.fernet import Fernet from cryptography.hazmat.primitives import hashes from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC

passphrase = b"Olayinka"
#password = passphrase.encode()  # Convert to type bytes
salt = os.urandom(16)
kdf = PBKDF2HMAC(
    algorithm=hashes.SHA256(),
    length=32,
    salt=salt,
    iterations=100000,
)
key = base64.urlsafe_b64encode(kdf.derive(passphrase))
fernet_key = Fernet(key)

key_file = open('symmetric.key', 'wb')
key_file.write(fernet_key)
key_file.close()

public_key = open('public_key.key', 'wb')
public_key.write(public_key.save_pkcs1('PEM'))
public_key.close()

private_key = open('private_key.key','wb')
private_key.write(private_key.save_pkcs1('PEM'))
private_key.close()

Error line 22, in key_file.write(fernet_key) TypeError: a bytes-like object is required, not 'Fernet'