aries_cloudagent.protocols.didexchange.v1_0 package

Submodules

aries_cloudagent.protocols.didexchange.v1_0.manager module

Classes to manage connection establishment under RFC 23 (DID exchange).

class aries_cloudagent.protocols.didexchange.v1_0.manager.DIDXManager(session: aries_cloudagent.core.profile.ProfileSession)[source]

Bases: aries_cloudagent.connections.base_manager.BaseConnectionManager

Class for managing connections under RFC 23 (DID exchange).

accept_complete(complete: aries_cloudagent.protocols.didexchange.v1_0.messages.complete.DIDXComplete, receipt: aries_cloudagent.transport.inbound.receipt.MessageReceipt) → aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Accept a connection complete message under RFC 23 (DID exchange).

Process a DIDXComplete message by looking up the connection record and marking the exchange complete.

Parameters:
  • complete – The DIDXComplete to accept
  • receipt – The message receipt
Returns:

The updated ConnRecord representing the connection

Raises:

DIDXManagerError – If the corresponding connection does not exist or is not in the response-sent state

accept_response(response: aries_cloudagent.protocols.didexchange.v1_0.messages.response.DIDXResponse, receipt: aries_cloudagent.transport.inbound.receipt.MessageReceipt) → aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Accept a connection response under RFC 23 (DID exchange).

Process a DIDXResponse message by looking up the connection request and setting up the pairwise connection.

Parameters:
  • response – The DIDXResponse to accept
  • receipt – The message receipt
Returns:

The updated ConnRecord representing the connection

Raises:
  • DIDXManagerError – If there is no DID associated with the connection response
  • DIDXManagerError – If the corresponding connection is not in the request-sent state
create_request(conn_rec: aries_cloudagent.connections.models.conn_record.ConnRecord, my_label: str = None, my_endpoint: str = None, mediation_id: str = None) → aries_cloudagent.protocols.didexchange.v1_0.messages.request.DIDXRequest[source]

Create a new connection request for a previously-received invitation.

Parameters:
  • conn_rec – The ConnRecord representing the invitation to accept
  • my_label – My label for request
  • my_endpoint – My endpoint
  • mediation_id – The record id for mediation that contains routing_keys and service endpoint
Returns:

A new DIDXRequest message to send to the other agent

create_request_implicit(their_public_did: str, my_label: str = None, my_endpoint: str = None, mediation_id: str = None, use_public_did: bool = False) → aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Create and send a request against a public DID only (no explicit invitation).

Parameters:
  • their_public_did – public DID to which to request a connection
  • my_label – my label for request
  • my_endpoint – my endpoint
  • mediation_id – record id for mediation with routing_keys, service endpoint
  • use_public_did – use my public DID for this connection
Returns:

The new ConnRecord instance

create_response(conn_rec: aries_cloudagent.connections.models.conn_record.ConnRecord, my_endpoint: str = None, mediation_id: str = None) → aries_cloudagent.protocols.didexchange.v1_0.messages.response.DIDXResponse[source]

Create a connection response for a received connection request.

Parameters:
  • conn_rec – The ConnRecord with a pending connection request
  • my_endpoint – Current agent endpoint
  • mediation_id – The record id for mediation that contains routing_keys and service endpoint
Returns:

New DIDXResponse message

receive_invitation(invitation: aries_cloudagent.protocols.out_of_band.v1_0.messages.invitation.InvitationMessage, their_public_did: str = None, auto_accept: bool = None, alias: str = None, mediation_id: str = None) → aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Create a new connection record to track a received invitation.

Parameters:
  • invitation – invitation to store
  • their_public_did – their public DID
  • auto_accept – set to auto-accept invitation (None to use config)
  • alias – optional alias to set on record
  • mediation_id – record id for mediation with routing_keys, service endpoint
Returns:

The new ConnRecord instance

receive_request(request: aries_cloudagent.protocols.didexchange.v1_0.messages.request.DIDXRequest, recipient_did: str, recipient_verkey: str = None, my_endpoint: str = None, alias: str = None, auto_accept_implicit: bool = None, mediation_id: str = None) → aries_cloudagent.connections.models.conn_record.ConnRecord[source]

Receive and store a connection request.

Parameters:
  • request – The DIDXRequest to accept
  • recipient_did – The (unqualified) recipient DID
  • recipient_verkey – The recipient verkey: None for public recipient DID
  • my_endpoint – My endpoint
  • alias – Alias for the connection
  • auto_accept – Auto-accept request against implicit invitation
  • mediation_id – The record id for mediation that contains routing_keys and service endpoint
Returns:

The new or updated ConnRecord instance

session

Accessor for the current profile session.

Returns:The profile session for this did exchange manager
verify_diddoc(wallet: aries_cloudagent.wallet.base.BaseWallet, attached: aries_cloudagent.messaging.decorators.attach_decorator.AttachDecorator) → aries_cloudagent.connections.models.diddoc.diddoc.DIDDoc[source]

Verify DIDDoc attachment and return signed data.

exception aries_cloudagent.protocols.didexchange.v1_0.manager.DIDXManagerError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.core.error.BaseError

Connection error.

aries_cloudagent.protocols.didexchange.v1_0.message_types module

Message type identifiers for Connections.

aries_cloudagent.protocols.didexchange.v1_0.routes module

Connection handling admin routes.

class aries_cloudagent.protocols.didexchange.v1_0.routes.DIDXAcceptInvitationQueryStringSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for accept invitation request query string.

my_endpoint = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.Endpoint object>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
my_label = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
class aries_cloudagent.protocols.didexchange.v1_0.routes.DIDXAcceptRequestQueryStringSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for accept-request request query string.

mediation_id = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.UUIDFour object>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
my_endpoint = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.Endpoint object>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
class aries_cloudagent.protocols.didexchange.v1_0.routes.DIDXConnIdMatchInfoSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Path parameters and validators for request taking connection id.

conn_id = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=True, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
class aries_cloudagent.protocols.didexchange.v1_0.routes.DIDXConnIdRefIdMatchInfoSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Path parameters and validators for request taking connection and ref ids.

conn_id = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=True, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
ref_id = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=True, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
class aries_cloudagent.protocols.didexchange.v1_0.routes.DIDXCreateRequestImplicitQueryStringSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for create-request-implicit request query string.

mediation_id = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.UUIDFour object>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
my_endpoint = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.Endpoint object>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
my_label = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
their_public_did = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.MaybeIndyDID object>, required=True, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
use_public_did = <fields.Boolean(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid boolean.'})>
class aries_cloudagent.protocols.didexchange.v1_0.routes.DIDXReceiveRequestImplicitQueryStringSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for receive-request-implicit request query string.

alias = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
auto_accept = <fields.Boolean(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid boolean.'})>
mediation_id = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.UUIDFour object>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
my_endpoint = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.Endpoint object>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
aries_cloudagent.protocols.didexchange.v1_0.routes.didx_accept_invitation(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0546d9c50>)[source]

Request handler for accepting a stored connection invitation.

Parameters:request – aiohttp request object
Returns:The resulting connection record details
aries_cloudagent.protocols.didexchange.v1_0.routes.didx_accept_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0546d9c50>)[source]

Request handler for accepting a stored connection request.

Parameters:request – aiohttp request object
Returns:The resulting connection record details
aries_cloudagent.protocols.didexchange.v1_0.routes.didx_create_request_implicit(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0546d9c50>)[source]

Request handler for creating and sending a request to an implicit invitation.

Parameters:request – aiohttp request object
Returns:The resulting connection record details
aries_cloudagent.protocols.didexchange.v1_0.routes.didx_receive_request_implicit(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0546d9c50>)[source]

Request handler for receiving a request against public DID’s implicit invitation.

Parameters:request – aiohttp request object
Returns:The resulting connection record details
aries_cloudagent.protocols.didexchange.v1_0.routes.post_process_routes(app: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0546d9c50>)[source]

Amend swagger API.

aries_cloudagent.protocols.didexchange.v1_0.routes.register(app: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0546d9c50>)[source]

Register routes.