class FateScript(FederationRuntime): def __init__(self, fed_obj, _host, _port): super().__init__(fed_obj.job_id, fed_obj.party_id, fed_obj.role, fed_obj.runtime_conf, _host, _port) self.trans_conf = file_utils.load_json_conf( 'contrib/fate_script/conf/FateScriptTransferVar.json') self.encrypt_operator = None def remote(self, obj, name: str, tag: str, role=None, idx=-1): if isinstance(obj, Tensor): super().remote(obj.store, name, tag, role, idx) #print("inside remote obj:{}".format(obj.store.count())) else: super().remote(obj, name, tag, role, idx) def get(self, name, tag, idx=-1): obj = copy.deepcopy(super().get(name, tag, idx)) if isinstance(obj, _DTable): return copy.deepcopy(TensorInEgg(self.encrypt_operator, None, obj)) elif isinstance(obj, np.ndarray): return copy.deepcopy(TensorInPy(self.encrypt_operator, None, obj)) else: return copy.deepcopy(obj) def init_encrypt_operator(self): self.encrypt_operator = PaillierEncrypt() def init_public_key(self, key_length=1024): self.encrypt_operator.generate_key(key_length) return self.encrypt_operator.get_public_key() def get_public_key(self, public_key): self.encrypt_operator.set_public_key(public_key)
class FateScript(FederationRuntime): def __init__(self, fed_obj): super().__init__(fed_obj.job_id, fed_obj.party_id, fed_obj.role, fed_obj.runtime_conf) self.trans_conf = file_utils.load_json_conf('contrib/fate_script/conf/FateScriptTransferVar.json') self.encrypt_operator = None def remote(self, obj, name: str, tag: str, role=None, idx=-1): super().remote(obj, name,tag, role, idx) def get(self, name, tag, idx=-1): return super().get(name, tag, idx) def init_encrypt_operator(self): self.encrypt_operator = PaillierEncrypt() def init_public_key(self, key_length=1024): self.encrypt_operator.generate_key(key_length) return self.encrypt_operator.get_public_key() def get_public_key(self, public_key): self.encrypt_operator.set_public_key(public_key)
def gen_paillier_cipher_operator(self, transfer_variables, suffix=tuple()): self._pubkey_transfer = transfer_variables.paillier_pubkey pubkey = self._pubkey_transfer.get(idx=0, suffix=suffix) cipher = PaillierEncrypt() cipher.set_public_key(pubkey) return cipher