def test_pk_from_to_dict(): pk = PublicKey(N=cmod.integer(12345), Rms=cmod.integer(12) % cmod.integer(12345), Rctxt=cmod.integer(13) % cmod.integer(12345), R={ 'name': cmod.integer(1) % cmod.integer(12345), 'age': cmod.integer(2) % cmod.integer(12345) }, S=cmod.integer(14) % cmod.integer(12345), Z=cmod.integer(15) % cmod.integer(12345)) pk_serialized = { 'n': '12345', 'rms': '12', 'rctxt': '13', 'r': { 'name': '1', 'age': '2' }, 's': '14', 'z': '15', } assert pk.to_str_dict() == pk_serialized assert pk == PublicKey.from_str_dict(pk_serialized)
def main(): sock = socket.socket() sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((ip, port)) sock.listen(1) logging.debug('Listening') conn, _ = sock.accept() logging.debug('Connected') while True: data = json.loads(conn.recv(chunk_size).decode("utf-8")) logging.debug('received data: {}'.format(data)) if ('type' in data) & (data['type'] == 'receive_claim_def'): logging.debug('receive_claim_def -> start') global global_dict global_dict['public_key'] = PublicKey.from_str_dict( data['data']['data']['primary']) logging.debug('receive_claim_def -> done') if ('type' in data) & (data['type'] == 'get_proof_request'): logging.debug('get_proof_request -> start') create_request = asyncio.ensure_future(create_proof_request(conn)) loop.run_until_complete(create_request) logging.debug('get_proof_request -> done') if ('type' in data) & (data['type'] == 'check_proof'): logging.debug('check_proof -> start') check_proof = asyncio.ensure_future(verify(data['data'], conn)) loop.run_until_complete(check_proof) logging.debug('check_proof -> done') if (('type' in data) & (data['type'] == 'close')) | (not data): break sock.close()
async def getPublicKey(self, id: ID, signatureType = 'CL') -> Optional[PublicKey]: op = { TXN_TYPE: GET_CLAIM_DEF, REF: id.schemaId, ORIGIN: id.schemaKey.issuerId, SIGNATURE_TYPE: signatureType } data, seqNo = await self._sendGetReq(op) if not data: return None data = data[PRIMARY] pk = PublicKey.from_str_dict(data)._replace(seqId=seqNo) return pk
async def getPublicKey(self, id: ID, signatureType='CL') -> Optional[PublicKey]: op = { TXN_TYPE: GET_CLAIM_DEF, REF: id.schemaId, ORIGIN: id.schemaKey.issuerId, SIGNATURE_TYPE: signatureType } data, seqNo = await self._sendGetReq(op) if not data: return None data = data[PRIMARY] pk = PublicKey.from_str_dict(data)._replace(seqId=seqNo) return pk
async def getPublicKey(self, id: ID = None, signatureType='CL') -> Optional[PublicKey]: op = { TXN_TYPE: GET_CLAIM_DEF, REF: id.schemaId, ORIGIN: id.schemaKey.issuerId, SIGNATURE_TYPE: signatureType } data, seqNo = await self._sendGetReq(op) if not data: raise ValueError( 'No CLAIM_DEF for schema with ID={} and key={}'.format( id.schemaId, id.schemaKey)) data = data[PRIMARY] pk = PublicKey.from_str_dict(data)._replace(seqId=seqNo) return pk