From 0bef69a049f4bace9b06cb4beb3b0505dd7b7a44 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Mon, 22 May 2023 15:19:20 -0500 Subject: initial commit --- crypto.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 crypto.py (limited to 'crypto.py') diff --git a/crypto.py b/crypto.py new file mode 100644 index 0000000..a96642b --- /dev/null +++ b/crypto.py @@ -0,0 +1,30 @@ +from cryptography.fernet import Fernet + +vault_file = 'vault.sqlite' + + +def generate_key() -> bytes: + new_key = Fernet.generate_key() + return new_key + + +def load_key(key_file: str) -> bytes: + return open(key_file, 'rb').read() + + +def encrypt(key, filename=vault_file) -> None: + f = Fernet(key) + with open(filename, 'rb') as file: + file_data = file.read() + encrypted_data = f.encrypt(file_data) + with open(filename, 'wb') as file: + file.write(encrypted_data) + + +def decrypt(key, filename=vault_file) -> None: + f = Fernet(key) + with open(filename, 'rb') as file: + encrypted_data = file.read() + decrypted_data = f.decrypt(encrypted_data) + with open(filename, 'wb') as file: + file.write(decrypted_data) -- cgit v1.2.3-70-g09d2