Spaces:
Runtime error
Runtime error
| import base64 | |
| import json | |
| from cryptography.fernet import Fernet | |
| class SecureMemorySession: | |
| """Handles encryption/decryption for user vectors""" | |
| def __init__(self, key: bytes): | |
| self.key = base64.urlsafe_b64encode(key[:32].ljust(32, b'0')) # Fernet key must be 32 bytes | |
| self.fernet = Fernet(self.key) | |
| self.memory_store = {} | |
| def encrypt_vector(self, user_id, vector): | |
| """Encrypts and stores vector under user ID""" | |
| if user_id not in self.memory_store: | |
| self.memory_store[user_id] = [] | |
| serialized = json.dumps(vector.tolist()).encode() | |
| encrypted = self.fernet.encrypt(serialized) | |
| self.memory_store[user_id].append(encrypted) | |
| def decrypt_vectors(self, user_id): | |
| """Decrypts and returns all stored vectors for a user""" | |
| if user_id not in self.memory_store: | |
| return [] | |
| decrypted = [] | |
| for enc in self.memory_store[user_id]: | |
| try: | |
| raw = self.fernet.decrypt(enc) | |
| array = json.loads(raw.decode()) | |
| decrypted.append(array) | |
| except Exception: | |
| continue | |
| return decrypted |