diff options
author | Christian Cleberg <hello@cleberg.net> | 2023-05-22 15:19:20 -0500 |
---|---|---|
committer | Christian Cleberg <hello@cleberg.net> | 2023-05-22 15:19:20 -0500 |
commit | 0bef69a049f4bace9b06cb4beb3b0505dd7b7a44 (patch) | |
tree | c7895a2ded7c774fcac1584940e43690fde4ff65 /crypto.py | |
download | yoshi-cli-0bef69a049f4bace9b06cb4beb3b0505dd7b7a44.tar.gz yoshi-cli-0bef69a049f4bace9b06cb4beb3b0505dd7b7a44.tar.bz2 yoshi-cli-0bef69a049f4bace9b06cb4beb3b0505dd7b7a44.zip |
initial commit
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) |