summaryrefslogtreecommitdiff
path: root/crypto.py
diff options
context:
space:
mode:
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)