Пример #1
0
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()
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
    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
Пример #6
0
    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