aboutsummaryrefslogtreecommitdiff
path: root/crypto.py
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2023-05-22 15:19:20 -0500
committerChristian Cleberg <hello@cleberg.net>2023-05-22 15:19:20 -0500
commit0bef69a049f4bace9b06cb4beb3b0505dd7b7a44 (patch)
treec7895a2ded7c774fcac1584940e43690fde4ff65 /crypto.py
downloadyoshi-cli-0bef69a049f4bace9b06cb4beb3b0505dd7b7a44.tar.gz
yoshi-cli-0bef69a049f4bace9b06cb4beb3b0505dd7b7a44.tar.bz2
yoshi-cli-0bef69a049f4bace9b06cb4beb3b0505dd7b7a44.zip
initial commit
Diffstat (limited to 'crypto.py')
-rw-r--r--crypto.py30
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)