Hello,
I'm generating a key using Scrypt from a password supplied by the user. I
then use this key as follows. This works but my question to the experts: is
this an acceptable way to use the AESGCMSIV cipher? Am I doing something
that's fundamentally against best practices? In the examples on the
Cryptography site, the sample code snippet uses AESGCMSIV.generate_key()
method to generate the key instead. The requirement I have is to generate
the key that's based on a password.
def gen_salt(size=32):
return secrets.token_bytes(size)
def der_key(salt, password):
kdf = Scrypt(salt=salt, length=32, n=2**20, r=8, p=1)
return kdf.derive(password.encode())
def gen_symmkey(salt, password):
symmkey = der_key(salt, password)
return symmkey
key = gen_symmkey(salt, password)
aesgcmsiv = AESGCMSIV(key)
ct = aesgcmsiv.encrypt(nonce, file_data, aad)
with open(fname, "wb") as outfile:
outfile.write(ct)
Best,
PE
_______________________________________________
Cryptography-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/cryptography-dev