Raiff1982 commited on
Commit
4eb06f0
·
verified ·
1 Parent(s): 968a5ad

Create import_secure_memory.py

Browse files
Files changed (1) hide show
  1. import_secure_memory.py +50 -0
import_secure_memory.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+
10
+ class SecureMemorySession:
11
+ def __init__(self, encryption_key: bytes = None):
12
+ self.key = encryption_key or Fernet.generate_key()
13
+ self.fernet = Fernet(self.key)
14
+ self.sessions = {}
15
+
16
+ def encrypt_vector(self, user_id: int, vector: np.ndarray) -> str:
17
+ vector_bytes = vector.tobytes()
18
+ encrypted = self.fernet.encrypt(vector_bytes)
19
+ encoded = base64.b64encode(encrypted).decode('utf-8')
20
+ self.sessions.setdefault(user_id, []).append(encoded)
21
+ return encoded
22
+
23
+ def decrypt_vectors(self, user_id: int) -> list:
24
+ if user_id not in self.sessions:
25
+ return []
26
+ decrypted_vectors = []
27
+ for encoded in self.sessions[user_id]:
28
+ encrypted = base64.b64decode(encoded)
29
+ decrypted = self.fernet.decrypt(encrypted)
30
+ vector = np.frombuffer(decrypted, dtype=np.int64)
31
+ decrypted_vectors.append(vector)
32
+ return decrypted_vectors
33
+
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", "")