def validate(request): validate_message([('@type', Connection.Message.REQUEST), '@id', 'label', 'connection'], request) validate_message(['did', 'did_doc'], request['connection']) Connection.DIDDoc.validate(request['connection']['did_doc'])
def validate(query): validate_message( [ ('@type', ProtocolDiscovery.Message.QUERY), '@id', 'query' ], query )
def validate_pre_sig(response: Message): validate_message( [ ('@type', Connection.Message.RESPONSE), '~thread', 'connection~sig' ], response )
def parse(invite_url: str) -> Message: matches = re.match('(.+)?c_i=(.+)', invite_url) assert matches, 'Improperly formatted invite url!' invite_msg = Serializer.unpack( base64.urlsafe_b64decode(matches.group(2)).decode('ascii')) validate_message([('@type', Connection.Message.INVITE), 'label', 'recipientKeys', 'serviceEndpoint'], invite_msg) return invite_msg
def validate(disclose, thid): validate_message( [ ('@type', ProtocolDiscovery.Message.DISCLOSE), '~thread', 'protocols' ], disclose ) validate_message( [ ('thid', thid) ], disclose['~thread'] )
def validate(msg: Message): validate_message( [ ('@type', BasicMessage.MESSAGE), '~l10n', 'sent_time', 'content', ], msg ) validate_message( [ ('locale', 'en') ], msg['~l10n'] )
def validate(diddoc): validate_message( [ '@context', 'publicKey', 'service' ], diddoc ) for publicKeyBlock in diddoc['publicKey']: validate_message( [ 'id', 'type', 'controller', 'publicKeyBase58' ], publicKeyBlock ) for serviceBlock in diddoc['service']: validate_message( [ ('type', 'IndyAgent'), 'recipientKeys', 'serviceEndpoint' ], serviceBlock )
def validate(response: Message, req_id: str): validate_message( [ ('@type', Connection.Message.RESPONSE), '~thread', 'connection' ], response ) validate_message( [ ('thid', req_id) ], response['~thread'] ) validate_message( [ 'DID', 'DIDDoc' ], response['connection'] ) Connection.DIDDoc.validate(response['connection']['DIDDoc'])
async def test_connection_started_by_tested_agent(config, wallet_handle, transport): invite_url = input('Input generated connection invite: ') matches = re.match('(.+)?c_i=(.+)', invite_url) assert matches, 'Improperly formatted invite url!' invite_msg = Serializer.unpack( base64.urlsafe_b64decode(matches.group(2)).decode('utf-8')) validate_message(['@type', 'label', 'key', 'endpoint'], invite_msg) # Create my information for connection (my_did, my_vk) = await did.create_and_store_my_did(wallet_handle, '{}') # Send Connection Request to inviter request = Message({ '@type': Connection.REQUEST, 'label': 'testing-agent', 'DID': my_did, 'DIDDoc': { 'key': my_vk, 'endpoint': config.endpoint, } }) await transport.send( invite_msg['endpoint'], await pack(wallet_handle, my_vk, invite_msg['key'], request)) # Wait for response response_bytes = await expect_message(transport, 60) response = await unpack(wallet_handle, response_bytes, expected_to_vk=my_vk) validate_message(['@type', 'DID', 'DIDDoc'], response) validate_message(['key', 'endpoint'], response['DIDDoc'])
def validate(message, ping_id): validate_message([('@type', TrustPing.PING_REPONSE), '~thread'], message) validate_message([('thid', ping_id)], message['~thread'])
def validate(message): validate_message([('@type', TrustPing.PING), '@id'], message)