Raiff1982 commited on
Commit
32d63ff
·
verified ·
1 Parent(s): b40ae68

Create import_secure_memory.py

Browse files
Files changed (1) hide show
  1. utilities/import_secure_memory.py +46 -0
utilities/import_secure_memory.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tempfile
2
+ import os
3
+
4
+ # Your memory session code as a string
5
+ memory_isolation_code = """
6
+ from cryptography.fernet import Fernet
7
+ import numpy as np
8
+ import base64
9
+ class SecureMemorySession:
10
+ def __init__(self, encryption_key: bytes = None):
11
+ self.key = encryption_key or Fernet.generate_key()
12
+ self.fernet = Fernet(self.key)
13
+ self.sessions = {}
14
+ def encrypt_vector(self, user_id: int, vector: np.ndarray) -> str:
15
+ vector_bytes = vector.tobytes()
16
+ encrypted = self.fernet.encrypt(vector_bytes)
17
+ encoded = base64.b64encode(encrypted).decode('utf-8')
18
+ self.sessions.setdefault(user_id, []).append(encoded)
19
+ return encoded
20
+ def decrypt_vectors(self, user_id: int) -> list:
21
+ if user_id not in self.sessions:
22
+ return []
23
+ decrypted_vectors = []
24
+ for encoded in self.sessions[user_id]:
25
+ encrypted = base64.b64decode(encoded)
26
+ decrypted = self.fernet.decrypt(encrypted)
27
+ vector = np.frombuffer(decrypted, dtype=np.int64)
28
+ decrypted_vectors.append(vector)
29
+ return decrypted_vectors
30
+ def get_encryption_key(self) -> bytes:
31
+ return self.key
32
+ """
33
+
34
+ def create_secure_memory_module():
35
+ # Create a temporary file that acts as our secure_memory module
36
+ with tempfile.NamedTemporaryFile("w+", suffix="_secure_memory.py", delete=False) as tmp:
37
+ tmp.write(memory_isolation_code)
38
+ tmp_path = tmp.name
39
+
40
+ # Insert the temp file directory into sys.path so it can be imported
41
+ import sys
42
+ module_dir = os.path.dirname(tmp_path)
43
+ if module_dir not in sys.path:
44
+ sys.path.insert(0, module_dir)
45
+
46
+ return os.path.basename(tmp_path).replace(".py", "")