Raiff1982 commited on
Commit
ee28de8
·
verified ·
1 Parent(s): cc47095

Create secure_memory.py

Browse files
Files changed (1) hide show
  1. secure_memory.py +45 -0
secure_memory.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+ # Encrypted memory session handler template
4
+ memory_isolation_code = """
5
+ # secure_memory.py
6
+
7
+ from cryptography.fernet import Fernet
8
+ import numpy as np
9
+ import base64
10
+
11
+ class SecureMemorySession:
12
+ def __init__(self, encryption_key: bytes = None):
13
+ self.key = encryption_key or Fernet.generate_key()
14
+ self.fernet = Fernet(self.key)
15
+ self.sessions = {}
16
+
17
+ def encrypt_vector(self, user_id: int, vector: np.ndarray) -> str:
18
+ vector_bytes = vector.tobytes()
19
+ encrypted = self.fernet.encrypt(vector_bytes)
20
+ encoded = base64.b64encode(encrypted).decode('utf-8')
21
+ if user_id not in self.sessions:
22
+ self.sessions[user_id] = []
23
+ self.sessions[user_id].append(encoded)
24
+ return encoded
25
+
26
+ def decrypt_vectors(self, user_id: int) -> list:
27
+ if user_id not in self.sessions:
28
+ return []
29
+ decrypted_vectors = []
30
+ for encoded in self.sessions[user_id]:
31
+ encrypted = base64.b64decode(encoded)
32
+ decrypted = self.fernet.decrypt(encrypted)
33
+ vector = np.frombuffer(decrypted, dtype=np.int64) # adjust dtype if needed
34
+ decrypted_vectors.append(vector)
35
+ return decrypted_vectors
36
+
37
+ def get_encryption_key(self) -> bytes:
38
+ return self.key
39
+ """
40
+
41
+ # Save it as a Python file
42
+ memory_path = Path("/mnt/data/secure_memory.py")
43
+ memory_path.write_text(memory_isolation_code)
44
+
45
+ memory_path