aries_cloudagent.protocols.present_proof.v1_0 package

aries_cloudagent.protocols.present_proof.v1_0.problem_report_for_record(record: Union[aries_cloudagent.connections.models.conn_record.ConnRecord, aries_cloudagent.protocols.present_proof.v1_0.models.presentation_exchange.V10PresentationExchange], desc_en: str) → aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_problem_report.PresentationProblemReport[source]

Create problem report for record.

Parameters:
  • record – connection or exchange record
  • desc_en – description text to include in problem report
aries_cloudagent.protocols.present_proof.v1_0.report_problem(err: aries_cloudagent.core.error.BaseError, desc_en: str, http_error_class, record: Union[aries_cloudagent.connections.models.conn_record.ConnRecord, aries_cloudagent.protocols.present_proof.v1_0.models.presentation_exchange.V10PresentationExchange], outbound_handler: Coroutine[T_co, T_contra, V_co])[source]

Send problem report response and raise corresponding HTTP error.

Parameters:
  • err – error for internal diagnostics
  • desc_en – description text to include in problem report (response)
  • http_error_class – HTTP error to raise
  • record – record to cite by thread in problem report
  • outbound_handler – outbound message handler

Submodules

aries_cloudagent.protocols.present_proof.v1_0.manager module

Classes to manage presentations.

class aries_cloudagent.protocols.present_proof.v1_0.manager.PresentationManager(profile: aries_cloudagent.core.profile.Profile)[source]

Bases: object

Class for managing presentations.

create_bound_request(presentation_exchange_record: aries_cloudagent.protocols.present_proof.v1_0.models.presentation_exchange.V10PresentationExchange, name: str = None, version: str = None, nonce: str = None, comment: str = None)[source]

Create a presentation request bound to a proposal.

Parameters:
  • presentation_exchange_record – Presentation exchange record for which to create presentation request
  • name – name to use in presentation request (None for default)
  • version – version to use in presentation request (None for default)
  • nonce – nonce to use in presentation request (None to generate)
  • comment – Optional human-readable comment pertaining to request creation
Returns:

A tuple (updated presentation exchange record, presentation request message)

create_exchange_for_proposal(connection_id: str, presentation_proposal_message: aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_proposal.PresentationProposal, auto_present: bool = None)[source]

Create a presentation exchange record for input presentation proposal.

Parameters:
  • connection_id – connection identifier
  • presentation_proposal_message – presentation proposal to serialize to exchange record
  • auto_present – whether to present proof upon receiving proof request (default to configuration setting)
Returns:

Presentation exchange record, created

create_exchange_for_request(connection_id: str, presentation_request_message: aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_request.PresentationRequest)[source]

Create a presentation exchange record for input presentation request.

Parameters:
  • connection_id – connection identifier
  • presentation_request_message – presentation request to use in creating exchange record, extracting indy proof request and thread id
Returns:

Presentation exchange record, updated

create_presentation(presentation_exchange_record: aries_cloudagent.protocols.present_proof.v1_0.models.presentation_exchange.V10PresentationExchange, requested_credentials: dict, comment: str = None)[source]

Create a presentation.

Parameters:
  • presentation_exchange_record – Record to update
  • requested_credentials – Indy formatted requested_credentials
  • comment – optional human-readable comment

Example requested_credentials format, mapping proof request referents (uuid) to wallet referents (cred id):

{
    "self_attested_attributes": {
        "j233ffbc-bd35-49b1-934f-51e083106f6d": "value"
    },
    "requested_attributes": {
        "6253ffbb-bd35-49b3-934f-46e083106f6c": {
            "cred_id": "5bfa40b7-062b-4ae0-a251-a86c87922c0e",
            "revealed": true
        }
    },
    "requested_predicates": {
        "bfc8a97d-60d3-4f21-b998-85eeabe5c8c0": {
            "cred_id": "5bfa40b7-062b-4ae0-a251-a86c87922c0e"
        }
    }
}
Returns:A tuple (updated presentation exchange record, presentation message)
receive_presentation(message: aries_cloudagent.protocols.present_proof.v1_0.messages.presentation.Presentation, connection_record: aries_cloudagent.connections.models.conn_record.ConnRecord)[source]

Receive a presentation, from message in context on manager creation.

Returns:presentation exchange record, retrieved and updated
receive_presentation_ack(message: aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_ack.PresentationAck, connection_record: aries_cloudagent.connections.models.conn_record.ConnRecord)[source]

Receive a presentation ack, from message in context on manager creation.

Returns:presentation exchange record, retrieved and updated
receive_problem_report(message: aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_problem_report.PresentationProblemReport, connection_id: str)[source]

Receive problem report.

Returns:presentation exchange record, retrieved and updated
receive_proposal(message: aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_proposal.PresentationProposal, connection_record: aries_cloudagent.connections.models.conn_record.ConnRecord)[source]

Receive a presentation proposal from message in context on manager creation.

Returns:Presentation exchange record, created
receive_request(presentation_exchange_record: aries_cloudagent.protocols.present_proof.v1_0.models.presentation_exchange.V10PresentationExchange)[source]

Receive a presentation request.

Parameters:presentation_exchange_record – presentation exchange record with request to receive
Returns:The presentation_exchange_record, updated
send_presentation_ack(presentation_exchange_record: aries_cloudagent.protocols.present_proof.v1_0.models.presentation_exchange.V10PresentationExchange)[source]

Send acknowledgement of presentation receipt.

Parameters:presentation_exchange_record – presentation exchange record with thread id
verify_presentation(presentation_exchange_record: aries_cloudagent.protocols.present_proof.v1_0.models.presentation_exchange.V10PresentationExchange)[source]

Verify a presentation.

Parameters:presentation_exchange_record – presentation exchange record with presentation request and presentation to verify
Returns:presentation record, updated
exception aries_cloudagent.protocols.present_proof.v1_0.manager.PresentationManagerError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.core.error.BaseError

Presentation error.

aries_cloudagent.protocols.present_proof.v1_0.message_types module

Message and inner object type identifiers for present-proof protocol v1.0.

aries_cloudagent.protocols.present_proof.v1_0.routes module

Admin routes for presentations.

class aries_cloudagent.protocols.present_proof.v1_0.routes.CredentialsFetchQueryStringSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for credentials fetch request query string.

count = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.NumericStrNatural 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.'})>
extra_query = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.IndyExtraWQL 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.'})>
referent = <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.'})>
start = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.NumericStrWhole 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.present_proof.v1_0.routes.V10PresExIdMatchInfoSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Path parameters and validators for request taking presentation exchange id.

pres_ex_id = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<aries_cloudagent.messaging.valid.UUIDFour 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.'})>
class aries_cloudagent.protocols.present_proof.v1_0.routes.V10PresentProofModuleResponseSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Response schema for Present Proof Module.

class aries_cloudagent.protocols.present_proof.v1_0.routes.V10PresentationCreateRequestRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.utils.tracing.AdminAPIMessageTracingSchema

Request schema for creating a proof request free of any connection.

comment = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=True, 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.'})>
proof_request = <fields.Nested(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.', 'type': 'Invalid type.'})>
trace = <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.present_proof.v1_0.routes.V10PresentationExchangeListQueryStringSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for presentation exchange list query.

connection_id = <fields.UUID(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.', 'invalid_uuid': 'Not a valid UUID.'})>
role = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<OneOf(choices=['prover', 'verifier'], labels=[], error='Must be one of: {choices}.')>, 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.'})>
state = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<OneOf(choices=['proposal_sent', 'proposal_received', 'request_sent', 'request_received', 'presentation_sent', 'presentation_received', 'verified', 'presentation_acked'], labels=[], error='Must be one of: {choices}.')>, 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.'})>
thread_id = <fields.UUID(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.', 'invalid_uuid': 'Not a valid UUID.'})>
class aries_cloudagent.protocols.present_proof.v1_0.routes.V10PresentationExchangeListSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Result schema for an Aries RFC 37 v1.0 presentation exchange query.

results = <fields.List(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 list.'})>
class aries_cloudagent.protocols.present_proof.v1_0.routes.V10PresentationProblemReportRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Request schema for sending problem report.

description = <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.present_proof.v1_0.routes.V10PresentationProposalRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.utils.tracing.AdminAPIMessageTracingSchema

Request schema for sending a presentation proposal admin message.

auto_present = <fields.Boolean(default=False, 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.'})>
comment = <fields.String(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=True, 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.'})>
connection_id = <fields.UUID(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.', 'invalid_uuid': 'Not a valid UUID.'})>
presentation_proposal = <fields.Nested(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.', 'type': 'Invalid type.'})>
trace = <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.present_proof.v1_0.routes.V10PresentationSendRequestRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.protocols.present_proof.v1_0.routes.V10PresentationCreateRequestRequestSchema

Request schema for sending a proof request on a connection.

connection_id = <fields.UUID(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.', 'invalid_uuid': 'Not a valid UUID.'})>
aries_cloudagent.protocols.present_proof.v1_0.routes.post_process_routes(app: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Amend swagger API.

aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_create_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for creating a free presentation request.

The presentation request will not be bound to any proposal or existing connection.

Parameters:request – aiohttp request object
Returns:The presentation exchange details
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_credentials_list(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for searching applicable credential records.

Parameters:request – aiohttp request object
Returns:The credential list response
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_list(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for searching presentation exchange records.

Parameters:request – aiohttp request object
Returns:The presentation exchange list response
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_problem_report(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for sending problem report.

Parameters:request – aiohttp request object
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_remove(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for removing a presentation exchange record.

Parameters:request – aiohttp request object
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_retrieve(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for fetching a single presentation exchange record.

Parameters:request – aiohttp request object
Returns:The presentation exchange record response
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_send_bound_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for sending a presentation request bound to a proposal.

Parameters:request – aiohttp request object
Returns:The presentation exchange details
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_send_free_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for sending a presentation request free from any proposal.

Parameters:request – aiohttp request object
Returns:The presentation exchange details
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_send_presentation(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for sending a presentation.

Parameters:request – aiohttp request object
Returns:The presentation exchange details
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_send_proposal(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for sending a presentation proposal.

Parameters:request – aiohttp request object
Returns:The presentation exchange details
aries_cloudagent.protocols.present_proof.v1_0.routes.presentation_exchange_verify_presentation(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Request handler for verifying a presentation request.

Parameters:request – aiohttp request object
Returns:The presentation exchange details
aries_cloudagent.protocols.present_proof.v1_0.routes.register(app: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0542e01d0>)[source]

Register routes.