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
Subpackages¶
- aries_cloudagent.protocols.present_proof.v1_0.handlers package
- Submodules
- aries_cloudagent.protocols.present_proof.v1_0.handlers.presentation_ack_handler module
- aries_cloudagent.protocols.present_proof.v1_0.handlers.presentation_handler module
- aries_cloudagent.protocols.present_proof.v1_0.handlers.presentation_proposal_handler module
- aries_cloudagent.protocols.present_proof.v1_0.handlers.presentation_request_handler module
- aries_cloudagent.protocols.present_proof.v1_0.messages package
- Subpackages
- Submodules
- aries_cloudagent.protocols.present_proof.v1_0.messages.presentation module
- aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_ack module
- aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_proposal module
- aries_cloudagent.protocols.present_proof.v1_0.messages.presentation_request module
- aries_cloudagent.protocols.present_proof.v1_0.models package
- aries_cloudagent.protocols.present_proof.v1_0.util package
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