File size: 1,504 Bytes
ee28de8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
019ae47
ee28de8
 
019ae47
ee28de8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from pathlib import Path

# Encrypted memory session handler template
memory_isolation_code = """
# secure_memory.py

from cryptography.fernet import Fernet
import numpy as np
import base64

class SecureMemorySession:
    def __init__(self, encryption_key: bytes = None):
        self.key = encryption_key or Fernet.generate_key()
        self.fernet = Fernet(self.key)
        self.sessions = {}

    def encrypt_vector(self, user_id: int, vector: np.ndarray) -> str:
        vector_bytes = vector.tobytes()
        encrypted = self.fernet.encrypt(vector_bytes)
        encoded = base64.b64encode(encrypted).decode('utf-8')
        if user_id not in self.sessions:
            self.sessions[user_id] = []
        self.sessions[user_id].append(encoded)
        return encoded

    def decrypt_vectors(self, user_id: int) -> list:
        if user_id not in self.sessions:
            return []
        decrypted_vectors = []
        for encoded in self.sessions[user_id]:
            encrypted = base64.b64decode(encoded)
            decrypted = self.fernet.decrypt(encrypted)
            vector = np.frombuffer(decrypted, dtype=np.int64)  # adjust dtype if needed
            decrypted_vectors.append(vector)
        return decrypted_vectors

    def get_encryption_key(self) -> bytes:
        return self.key
"""

# Save it as a Python file
memory_path = Path("/mnt/data/secure_memory.py")
memory_path.parent.mkdir(parents=True, exist_ok=True)
memory_path.write_text(memory_isolation_code)


memory_path