Raiff1982 commited on
Commit
e13f1f7
·
verified ·
1 Parent(s): 550d1b7

Create secure_memory_loader.py

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