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 |