|
|
"""
|
|
|
Encryption Manager
|
|
|
"""
|
|
|
|
|
|
import time
|
|
|
from cryptography.fernet import Fernet
|
|
|
... import base64
|
|
|
... import os
|
|
|
...
|
|
|
... class EncryptionManager:
|
|
|
... def __init__(self):
|
|
|
... self.key = None
|
|
|
... self.cipher = None
|
|
|
...
|
|
|
... def initialize(self):
|
|
|
... """Initialize encryption manager"""
|
|
|
... print("Initializing Encryption Manager...")
|
|
|
...
|
|
|
...
|
|
|
... key_file = 'config/encryption.key'
|
|
|
... if os.path.exists(key_file):
|
|
|
... with open(key_file, 'rb') as f:
|
|
|
... self.key = f.read()
|
|
|
... else:
|
|
|
... self.key = Fernet.generate_key()
|
|
|
... os.makedirs(os.path.dirname(key_file), exist_ok=True)
|
|
|
... with open(key_file, 'wb') as f:
|
|
|
... f.write(self.key)
|
|
|
...
|
|
|
... self.cipher = Fernet(self.key)
|
|
|
... print("Encryption Manager initialized successfully")
|
|
|
...
|
|
|
... def encrypt(self, data):
|
|
|
... """Encrypt data"""
|
|
|
... if isinstance(data, str):
|
|
|
... data = data.encode()
|
|
|
... return self.cipher.encrypt(data)
|
|
|
...
|
|
|
... def decrypt(self, encrypted_data):
|
|
|
... """Decrypt data"""
|
|
|
... return self.cipher.decrypt(encrypted_data).decode()
|
|
|
|