diff options
Diffstat (limited to 'crypto.py')
-rw-r--r-- | crypto.py | 30 |
1 files changed, 30 insertions, 0 deletions
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) |