diff --git a/examples/apps/generic_client/generic_client.py b/examples/apps/generic_client/generic_client.py index b7ed1216a..2264f18e2 100755 --- a/examples/apps/generic_client/generic_client.py +++ b/examples/apps/generic_client/generic_client.py @@ -322,11 +322,9 @@ def Main(args=None): \n {}".format(wo_params)) sys.exit(-1) - signer = worker_signing.WorkerSign() - client_private_key = signer.generate_signing_key() if parser.requester_signature(): # Add requester signature and requester verifying_key - if wo_params.add_requester_signature(client_private_key) is False: + if wo_params.add_requester_signature() is False: logging.info("Work order request signing failed") sys.exit(-1) diff --git a/sdk/avalon_sdk/work_order/work_order_params.py b/sdk/avalon_sdk/work_order/work_order_params.py index 5d9ba1b33..e42eb9f64 100644 --- a/sdk/avalon_sdk/work_order/work_order_params.py +++ b/sdk/avalon_sdk/work_order/work_order_params.py @@ -173,29 +173,31 @@ def add_encrypted_request_hash(self): 0, err) - def add_requester_signature(self, private_key): + def add_requester_signature(self): """ Calculate the signature of the request as defined in Off-Chain Trusted Compute EEA spec 6.1.8.3 and set the requesterSignature parameter in the request. """ - signature = self.signer.sign_message(req_hash) - if status is True: - self.params_obj["requesterSignature"] = \ - crypto_utility.byte_array_to_base64(signature) - # public signing key is shared to enclave manager to - # verify the signature. - # It is temporary approach to share the key with the worker. - verifying_key = self.signer.get_public_sign_key(private_key) - self.set_verifying_key(verifying_key) - return True - else: + self.signer.generate_signing_key() + try: + signature = self.signer.sign_message(self.request_hash) + except err: logger.error("Signing request failed") return False + self.params_obj["requesterSignature"] = \ + crypto_utility.byte_array_to_base64(signature) + # public signing key is shared to enclave manager to + # verify the signature. + # It is temporary approach to share the key with the worker. + verifying_key = self.signer.get_public_sign_key() + self.set_verifying_key(verifying_key) + return True def set_verifying_key(self, verifying_key): """Set verifyingKey work order parameter.""" - self.params_obj["verifyingKey"] = verifying_key + self.params_obj["verifyingKey"] = \ + crypto_utility.byte_array_to_string(verifying_key) def add_in_data(self, data, data_hash=None, encrypted_data_encryption_key=None, data_iv=None):