Exemple #1
0
        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'])
Exemple #2
0
 def validate(query):
     validate_message(
         [
             ('@type', ProtocolDiscovery.Message.QUERY),
             '@id',
             'query'
         ],
         query
     )
Exemple #3
0
 def validate_pre_sig(response: Message):
     validate_message(
         [
             ('@type', Connection.Message.RESPONSE),
             '~thread',
             'connection~sig'
         ],
         response
     )
Exemple #4
0
        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
Exemple #5
0
 def validate(disclose, thid):
     validate_message(
         [
             ('@type', ProtocolDiscovery.Message.DISCLOSE),
             '~thread',
             'protocols'
         ],
         disclose
     )
     validate_message(
         [
             ('thid', thid)
         ],
         disclose['~thread']
     )
Exemple #6
0
    def validate(msg: Message):
        validate_message(
            [
                ('@type', BasicMessage.MESSAGE),
                '~l10n',
                'sent_time',
                'content',
            ],
            msg
        )

        validate_message(
            [
                ('locale', 'en')
            ],
            msg['~l10n']
        )
Exemple #7
0
        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
                )
Exemple #8
0
        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'])
Exemple #10
0
        def validate(message, ping_id):
            validate_message([('@type', TrustPing.PING_REPONSE), '~thread'],
                             message)

            validate_message([('thid', ping_id)], message['~thread'])
Exemple #11
0
 def validate(message):
     validate_message([('@type', TrustPing.PING), '@id'], message)