def get_client(user_id, user_password): auth_client = AuthenticationService( AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() print("[+] registering user") auth_client.user_register(user_id, user_password) print("[+] login") token = auth_client.user_login(user_id, user_password) client = FrontendService(FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() metadata = {"id": user_id, "token": token} client.metadata = metadata return client
def __init__(self, user_id, user_password): self.user_id = user_id self.user_password = user_password self.client = AuthenticationService( AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() print(f"[+] {self.user_id} registering user") self.client.user_register(self.user_id, self.user_password) print(f"[+] {self.user_id} login") token = self.client.user_login(self.user_id, self.user_password) self.client = FrontendService( FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() metadata = {"id": self.user_id, "token": token} self.client.metadata = metadata
def echo(self, message="Hello, Teaclave!"): channel = AuthenticationService(AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect() client = AuthenticationClient(channel) print("[+] registering user") client.user_register(self.user_id, self.user_password) print("[+] login") token = client.user_login(self.user_id, self.user_password) channel = FrontendService(FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect() metadata = {"id": self.user_id, "token": token} client = FrontendClient(channel, metadata) print("[+] registering function") payload = b""" def entrypoint(argv): assert argv[0] == 'message' assert argv[1] is not None return argv[1] """ function_id = client.register_function( name="mesapy-echo", description="An echo function implemented in Python", executor_type="python", payload=list(payload), arguments=["message"]) print("[+] creating task") task_id = client.create_task(function_id=function_id, function_arguments={"message": message}, executor="mesapy") print("[+] invoking task") client.invoke_task(task_id) print("[+] getting result") result = client.get_task_result(task_id) print("[+] done") return bytes(result)
def echo(self, message="Hello, Teaclave!"): channel = AuthenticationService(AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect() client = AuthenticationClient(channel) print("[+] registering user") client.user_register(self.user_id, self.user_password) print("[+] login") token = client.user_login(self.user_id, self.user_password) channel = FrontendService(FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect() metadata = {"id": self.user_id, "token": token} client = FrontendClient(channel, metadata) print("[+] registering function") function_id = client.register_function( name="builtin-echo", description="Native Echo Function", executor_type="builtin", arguments=["message"]) print("[+] creating task") task_id = client.create_task(function_id=function_id, function_arguments={"message": message}, executor="builtin") print("[+] invoking task") client.invoke_task(task_id) print("[+] getting result") result = client.get_task_result(task_id) print("[+] done") return bytes(result)
def gbdt(self): client = AuthenticationService( AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() print("[+] registering user") client.user_register(self.user_id, self.user_password) print("[+] login") token = client.user_login(self.user_id, self.user_password) client = FrontendService(FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() metadata = {"id": self.user_id, "token": token} client.metadata = metadata print("[+] registering function") function_id = client.register_function( name="builtin-gbdt-train", description="Native Gbdt Training Function", executor_type="builtin", arguments=[ "feature_size", "max_depth", "iterations", "shrinkage", "feature_sample_ratio", "data_sample_ratio", "min_leaf_size", "loss", "training_optimization_level" ], inputs=[ FunctionInput("training_data", "Input traning data file.") ], outputs=[FunctionOutput("trained_model", "Output trained model.")]) print("[+] registering input file") url = "http://localhost:6789/fixtures/functions/gbdt_training/train.enc" cmac = "881adca6b0524472da0a9d0bb02b9af9" schema = "teaclave-file-128" key = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] iv = [] training_data_id = client.register_input_file(url, schema, key, iv, cmac) print("[+] registering output file") url = "http://localhost:6789/fixtures/functions/gbdt_training/e2e_output_model.enc" schema = "teaclave-file-128" key = [ 63, 195, 250, 208, 252, 127, 203, 27, 247, 168, 71, 77, 27, 47, 254, 240 ] iv = [] output_model_id = client.register_output_file(url, schema, key, iv) print("[+] creating task") task_id = client.create_task( function_id=function_id, function_arguments=({ "feature_size": 4, "max_depth": 4, "iterations": 100, "shrinkage": 0.1, "feature_sample_ratio": 1.0, "data_sample_ratio": 1.0, "min_leaf_size": 1, "loss": "LAD", "training_optimization_level": 2 }), executor="builtin", inputs_ownership=[OwnerList("training_data", [self.user_id])], outputs_ownership=[OwnerList("trained_model", [self.user_id])]) print("[+] assigning data to task") client.assign_data_to_task( task_id, [DataMap("training_data", training_data_id)], [DataMap("trained_model", output_model_id)]) print("[+] approving task") client.approve_task(task_id) print("[+] invoking task") client.invoke_task(task_id) print("[+] getting result") result = client.get_task_result(task_id) print("[+] done") return bytes(result)
def echo(self, payload_file="mesapy_echo_payload.py", message="Hello, Teaclave!"): client = AuthenticationService( AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() print("[+] registering user") client.user_register(self.user_id, self.user_password) print("[+] login") token = client.user_login(self.user_id, self.user_password) client = FrontendService(FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() metadata = {"id": self.user_id, "token": token} client.metadata = metadata print("[+] registering function") with open(payload_file, "rb") as f: payload = f.read() function_id = client.register_function( name="mesapy-echo", description="An echo function implemented in Python", executor_type="python", payload=list(payload), arguments=["message"]) print("[+] creating task") task_id = client.create_task(function_id=function_id, function_arguments={"message": message}, executor="mesapy") print("[+] invoking task") client.invoke_task(task_id) print("[+] getting result") result = client.get_task_result(task_id) print("[+] done") return bytes(result)
def decrypt(self, key, nonce, encrypted_data, algorithm): client = AuthenticationService( AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() print("[+] registering user") client.user_register(self.user_id, self.user_password) print("[+] login") token = client.user_login(self.user_id, self.user_password) client = FrontendService(FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() metadata = {"id": self.user_id, "token": token} client.metadata = metadata print("[+] registering function") function_id = client.register_function( name="builtin_online_decrypt", description="Native Echo Function", executor_type="builtin", arguments=["key", "nonce", "encrypted_data", "algorithm"]) print("[+] creating task") task_id = client.create_task( function_id=function_id, function_arguments={ "key": dataToBase64(key), "nonce": dataToBase64(nonce), "encrypted_data": "CaZd8qSMMlBp8SjSXj2I4dQIuC9KkZ5DI/ATo1sWJw==", "algorithm": algorithm }, executor="builtin") print("[+] invoking task") client.invoke_task(task_id) print("[+] getting result") result = client.get_task_result(task_id) print("[+] done") return bytes(result)
def detect_face(self, image_base64): client = AuthenticationService( AUTHENTICATION_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() print("[+] registering user") client.user_register(self.user_id, self.user_password) print("[+] login") token = client.user_login(self.user_id, self.user_password) client = FrontendService(FRONTEND_SERVICE_ADDRESS, AS_ROOT_CA_CERT_PATH, ENCLAVE_INFO_PATH).connect().get_client() metadata = {"id": self.user_id, "token": token} client.metadata = metadata print("[+] registering function") function_id = client.register_function( name="builtin-face-detection", description="Native Face Detection Function", executor_type="builtin", inputs=[], arguments=[ "image_base64", "min_face_size", "score_thresh", "pyramid_scale_factor", "slide_window_step_x", "slide_window_step_y" ]) print("[+] creating task") task_id = client.create_task(function_id=function_id, function_arguments={ "image_base64": image_base64, "min_face_size": 20, "score_thresh": 2.0, "pyramid_scale_factor": 0.8, "slide_window_step_x": 4, "slide_window_step_y": 4 }, inputs_ownership=[], executor="builtin") print("[+] invoking task") client.invoke_task(task_id) print("[+] getting result") result = client.get_task_result(task_id) print("[+] done") return bytes(result)