aries_cloudagent.protocols.present_proof.dif package

Submodules

aries_cloudagent.protocols.present_proof.dif.pres_exch module

Schemas for dif presentation exchange attachment.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.ClaimFormat(*, jwt: Mapping = None, jwt_vc: Mapping = None, jwt_vp: Mapping = None, ldp: Mapping = None, ldp_vc: Mapping = None, ldp_vp: Mapping = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Defines Claim field.

class Meta[source]

Bases: object

ClaimFormat metadata.

schema_class = 'ClaimFormatSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.ClaimFormatSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single ClaimFormat Schema.

class Meta[source]

Bases: object

ClaimFormatSchema metadata.

model_class

alias of ClaimFormat

unknown

Used by autodoc_mock_imports.

jwt

Used by autodoc_mock_imports.

jwt_vc

Used by autodoc_mock_imports.

jwt_vp

Used by autodoc_mock_imports.

ldp

Used by autodoc_mock_imports.

ldp_vc

Used by autodoc_mock_imports.

ldp_vp

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.Constraints(*, subject_issuer: str = None, limit_disclosure: bool = None, holders: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFHolder] = None, _fields: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFField] = None, status_active: str = None, status_suspended: str = None, status_revoked: str = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single Constraints which describes InputDescriptor’s Contraint field.

class Meta[source]

Bases: object

Constraints metadata.

schema_class = 'ConstraintsSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.ConstraintsSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Constraints Schema.

class Meta[source]

Bases: object

ConstraintsSchema metadata.

model_class

alias of Constraints

unknown

Used by autodoc_mock_imports.

extract_info(data, **kwargs)[source]

Support deserialization of statuses according to DIF spec.

holders

Used by autodoc_mock_imports.

limit_disclosure

Used by autodoc_mock_imports.

reformat_data(data, **kwargs)[source]

Support serialization of statuses according to DIF spec.

status_active

Used by autodoc_mock_imports.

status_revoked

Used by autodoc_mock_imports.

status_suspended

Used by autodoc_mock_imports.

subject_issuer

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFField(*, id: str = None, paths: Sequence[str] = None, purpose: str = None, predicate: str = None, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single Field object for the Constraint.

class Meta[source]

Bases: object

Field metadata.

schema_class = 'DIFFieldSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFFieldSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Field Schema.

class Meta[source]

Bases: object

DIFFieldSchema metadata.

model_class

alias of DIFField

unknown

Used by autodoc_mock_imports.

id

Used by autodoc_mock_imports.

paths

Used by autodoc_mock_imports.

predicate

Used by autodoc_mock_imports.

purpose

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFHolder(*, field_ids: Sequence[str] = None, directive: str = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single Holder object for Constraints.

class Meta[source]

Bases: object

Holder metadata.

schema_class = 'DIFHolderSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFHolderSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Holder Schema.

class Meta[source]

Bases: object

DIFHolderSchema metadata.

model_class

alias of DIFHolder

unknown

Used by autodoc_mock_imports.

directive

Used by autodoc_mock_imports.

field_ids

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFOptions(*, challenge: str = None, domain: str = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single DIFOptions object.

class Meta[source]

Bases: object

DIFOptions metadata.

schema_class = 'DIFOptionsSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFOptionsSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Schema for options required for the Prover to fulfill the Verifier’s request.

class Meta[source]

Bases: object

DIFOptionsSchema metadata.

model_class

alias of DIFOptions

unknown

Used by autodoc_mock_imports.

challenge

Used by autodoc_mock_imports.

domain

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter(*, _not: bool = False, _type: str = None, fmt: str = None, pattern: str = None, minimum: str = None, maximum: str = None, min_length: int = None, max_length: int = None, exclusive_min: str = None, exclusive_max: str = None, const: str = None, enums: Sequence[str] = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single Filter for the Constraint object.

class Meta[source]

Bases: object

Filter metadata.

schema_class = 'FilterSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.FilterSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Filter Schema.

class Meta[source]

Bases: object

FilterSchema metadata.

model_class

alias of Filter

unknown

Used by autodoc_mock_imports.

const

String or Number field for Marshmallow.

enums

Used by autodoc_mock_imports.

exclusive_max

String or Number field for Marshmallow.

exclusive_min

String or Number field for Marshmallow.

extract_info(data, **kwargs)[source]

Enum validation and not filter logic.

fmt

Used by autodoc_mock_imports.

max_length

Used by autodoc_mock_imports.

maximum

String or Number field for Marshmallow.

min_length

Used by autodoc_mock_imports.

minimum

String or Number field for Marshmallow.

pattern

Used by autodoc_mock_imports.

serialize_reformat(data, **kwargs)[source]

Support serialization of not filter according to DIF spec.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptorMapping(*, id: str = None, fmt: str = None, path: str = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single InputDescriptorMapping object.

class Meta[source]

Bases: object

InputDescriptorMapping metadata.

schema_class = 'InputDescriptorMappingSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptorMappingSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single InputDescriptorMapping Schema.

class Meta[source]

Bases: object

InputDescriptorMappingSchema metadata.

model_class

alias of InputDescriptorMapping

unknown

Used by autodoc_mock_imports.

fmt

Used by autodoc_mock_imports.

id

Used by autodoc_mock_imports.

path

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptors(*, id: str = None, groups: Sequence[str] = None, name: str = None, purpose: str = None, metadata: dict = None, constraint: aries_cloudagent.protocols.present_proof.dif.pres_exch.Constraints = None, schemas: aries_cloudagent.protocols.present_proof.dif.pres_exch.SchemasInputDescriptorFilter = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Input Descriptors.

class Meta[source]

Bases: object

InputDescriptors metadata.

schema_class = 'InputDescriptorsSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptorsSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single InputDescriptors Schema.

class Meta[source]

Bases: object

InputDescriptorsSchema metadata.

model_class

alias of InputDescriptors

unknown

Used by autodoc_mock_imports.

constraint

Used by autodoc_mock_imports.

groups

Used by autodoc_mock_imports.

id

Used by autodoc_mock_imports.

metadata

Used by autodoc_mock_imports.

name

Used by autodoc_mock_imports.

purpose

Used by autodoc_mock_imports.

schemas

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationDefinition(*, id: str = None, name: str = None, purpose: str = None, fmt: aries_cloudagent.protocols.present_proof.dif.pres_exch.ClaimFormat = None, submission_requirements: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.SubmissionRequirements] = None, input_descriptors: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptors] = None, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

https://identity.foundation/presentation-exchange/.

class Meta[source]

Bases: object

PresentationDefinition metadata.

schema_class = 'PresentationDefinitionSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationDefinitionSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Presentation Definition Schema.

class Meta[source]

Bases: object

PresentationDefinitionSchema metadata.

model_class

alias of PresentationDefinition

unknown

Used by autodoc_mock_imports.

fmt

Used by autodoc_mock_imports.

id

Used by autodoc_mock_imports.

input_descriptors

Used by autodoc_mock_imports.

name

Used by autodoc_mock_imports.

purpose

Used by autodoc_mock_imports.

submission_requirements

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationSubmission(*, id: str = None, definition_id: str = None, descriptor_maps: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptorMapping] = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single PresentationSubmission object.

class Meta[source]

Bases: object

PresentationSubmission metadata.

schema_class = 'PresentationSubmissionSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationSubmissionSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single PresentationSubmission Schema.

class Meta[source]

Bases: object

PresentationSubmissionSchema metadata.

model_class

alias of PresentationSubmission

unknown

Used by autodoc_mock_imports.

definition_id

Used by autodoc_mock_imports.

descriptor_maps

Used by autodoc_mock_imports.

id

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.Requirement(*, count: int = None, maximum: int = None, minimum: int = None, input_descriptors: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptors] = None, nested_req: Sequence = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single Requirement generated from toRequirement function.

class Meta[source]

Bases: object

Requirement metadata.

schema_class = 'RequirementSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.RequirementSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Requirement Schema.

class Meta[source]

Bases: object

RequirementSchema metadata.

model_class

alias of Requirement

unknown

Used by autodoc_mock_imports.

count

Used by autodoc_mock_imports.

input_descriptors

Used by autodoc_mock_imports.

maximum

Used by autodoc_mock_imports.

minimum

Used by autodoc_mock_imports.

nested_req()
class aries_cloudagent.protocols.present_proof.dif.pres_exch.SchemaInputDescriptor(*, uri: str = None, required: bool = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

SchemaInputDescriptor.

class Meta[source]

Bases: object

SchemaInputDescriptor metadata.

schema_class = 'SchemaInputDescriptorSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.SchemaInputDescriptorSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single SchemaField Schema.

class Meta[source]

Bases: object

SchemaInputDescriptorSchema metadata.

model_class

alias of SchemaInputDescriptor

unknown

Used by autodoc_mock_imports.

required

Used by autodoc_mock_imports.

uri

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.SchemasInputDescriptorFilter(*, oneof_filter: bool = False, uri_groups: Sequence[Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.SchemaInputDescriptor]] = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

SchemasInputDescriptorFilter.

class Meta[source]

Bases: object

InputDescriptor Schemas filter metadata.

schema_class = 'SchemasInputDescriptorFilterSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.SchemasInputDescriptorFilterSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single SchemasInputDescriptorFilterSchema Schema.

class Meta[source]

Bases: object

SchemasInputDescriptorFilterSchema metadata.

model_class

alias of SchemasInputDescriptorFilter

unknown

Used by autodoc_mock_imports.

extract_info(data, **kwargs)[source]

deserialize.

oneof_filter

Used by autodoc_mock_imports.

uri_groups

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.SubmissionRequirements(*, _name: str = None, purpose: str = None, rule: str = None, count: int = None, minimum: int = None, maximum: int = None, _from: str = None, from_nested: Sequence = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

describes input to be submitted via a presentation submission.

class Meta[source]

Bases: object

SubmissionRequirements metadata.

schema_class = 'SubmissionRequirementsSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.SubmissionRequirementsSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Presentation Definition Schema.

class Meta[source]

Bases: object

SubmissionRequirementsSchema metadata.

model_class

alias of SubmissionRequirements

unknown

Used by autodoc_mock_imports.

count

Used by autodoc_mock_imports.

from_nested()
maximum

Used by autodoc_mock_imports.

minimum

Used by autodoc_mock_imports.

purpose

Used by autodoc_mock_imports.

rule

Used by autodoc_mock_imports.

validate_from(data, **kwargs)[source]

Support validation of from and from_nested.

class aries_cloudagent.protocols.present_proof.dif.pres_exch.VerifiablePresentation(*, id: str = None, contexts: Sequence[Union[str, dict]] = None, types: Sequence[str] = None, credentials: Sequence[dict] = None, proof: Sequence[dict] = None, presentation_submission: aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationSubmission = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

Single VerifiablePresentation object.

class Meta[source]

Bases: object

VerifiablePresentation metadata.

schema_class = 'VerifiablePresentationSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_exch.VerifiablePresentationSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Single Verifiable Presentation Schema.

class Meta[source]

Bases: object

VerifiablePresentationSchema metadata.

model_class

alias of VerifiablePresentation

unknown

Used by autodoc_mock_imports.

contexts

Used by autodoc_mock_imports.

credentials

Used by autodoc_mock_imports.

id

Used by autodoc_mock_imports.

presentation_submission

Used by autodoc_mock_imports.

proof

Used by autodoc_mock_imports.

types

Used by autodoc_mock_imports.

aries_cloudagent.protocols.present_proof.dif.pres_exch_handler module

Utilities for dif presentation exchange attachment.

General Flow: create_vp -> make_requirement [create a Requirement from SubmissionRequirements and Descriptors] -> apply_requirement [filter credentials] -> merge [return applicable credential list and descriptor_map for presentation_submission] returns VerifiablePresentation

exception aries_cloudagent.protocols.present_proof.dif.pres_exch_handler.DIFPresExchError(*args, error_code: str = None, **kwargs)[source]

Bases: aries_cloudagent.core.error.BaseError

Base class for DIF Presentation Exchange related errors.

class aries_cloudagent.protocols.present_proof.dif.pres_exch_handler.DIFPresExchHandler(profile: aries_cloudagent.core.profile.Profile, pres_signing_did: str = None, proof_type: str = None, reveal_doc: dict = None)[source]

Bases: object

Base Presentation Exchange Handler.

DERIVED_PROOF_TYPE_SIGNATURE_SUITE_MAPPING = {'BbsBlsSignatureProof2020': <class 'aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_proof_2020.BbsBlsSignatureProof2020'>}
DERIVE_SIGNATURE_SUITE_KEY_TYPE_MAPPING = {<class 'aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_proof_2020.BbsBlsSignatureProof2020'>: <aries_cloudagent.wallet.key_type.KeyType object>}
ISSUE_SIGNATURE_SUITE_KEY_TYPE_MAPPING = {<class 'aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2018.Ed25519Signature2018'>: <aries_cloudagent.wallet.key_type.KeyType object>, <class 'aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2020.Ed25519Signature2020'>: <aries_cloudagent.wallet.key_type.KeyType object>}
PROOF_TYPE_SIGNATURE_SUITE_MAPPING = {'Ed25519Signature2018': <class 'aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2018.Ed25519Signature2018'>, 'Ed25519Signature2020': <class 'aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2020.Ed25519Signature2020'>}
apply_constraint_received_cred(constraint: aries_cloudagent.protocols.present_proof.dif.pres_exch.Constraints, cred_dict: dict) → bool[source]

Evaluate constraint from the request against received credential.

apply_requirements(req: aries_cloudagent.protocols.present_proof.dif.pres_exch.Requirement, credentials: Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord], records_filter: dict = None) → dict[source]

Apply Requirement.

Parameters:
  • req – Requirement
  • credentials – Sequence of credentials to check against
Returns:

dict of input_descriptor ID key to list of credential_json

build_nested_paths_dict(key: str, value: str, nested_field_paths: dict, cred_dict: dict) → dict[source]

Build and return nested_field_paths dict.

check_attr_in_extracted_dict(extracted_dict: dict, nested_attr_values: dict) → bool[source]

Check if keys of extracted_dict exists in nested_attr_values.

check_filter_only_type_enforced(_filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Check if only type is specified in filter.

Parameters:_filter – Filter
Returns:bool
check_if_cred_id_derived(id: str) → bool[source]

Check if credential or credentialSubjet id is derived.

const_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Const check.

Returns True if value is equal to filter specified check

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

contains(data: Sequence[str], e: str) → bool[source]

Check for e in data.

Returns True if e exists in data else return False

Parameters:
  • data – Sequence of str
  • e – str value to check
Returns:

bool

create_vcrecord(cred_dict: dict) → aries_cloudagent.storage.vc_holder.vc_record.VCRecord[source]

Return VCRecord from a credential dict.

create_vp(credentials: Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord], pd: aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationDefinition, challenge: str = None, domain: str = None, records_filter: dict = None) → Union[Sequence[dict], dict][source]

Create VerifiablePresentation.

Parameters:
  • credentials – Sequence of VCRecords
  • pd – PresentationDefinition
Returns:

VerifiablePresentation

credential_match_schema(credential: aries_cloudagent.storage.vc_holder.vc_record.VCRecord, schema_id: str) → bool[source]

Credential matching by schema.

Used by filter_schema to check if credential.schema_ids or credential.types matched with schema_id

Parameters:
  • credential – VCRecord to check
  • schema_id – schema uri to check
Returns:

bool

enum_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Enum check.

Returns True if value is contained to filter specified list

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

exclusive_maximum_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Exclusivemaximum check.

Returns True if value less than filter specified check

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

exclusive_minimum_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Exclusiveminimum check.

Returns True if value greater than filter specified check

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

field_ids_for_is_holder(constraints: aries_cloudagent.protocols.present_proof.dif.pres_exch.Constraints) → Sequence[str][source]

Return list of field ids for whose subject holder verification is requested.

filter_by_field(field: aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFField, credential: aries_cloudagent.storage.vc_holder.vc_record.VCRecord) → bool[source]

Apply filter on VCRecord.

Checks if a credential is applicable

Parameters:
  • field – Field contains filtering spec
  • credential – credential to apply filtering on
Returns:

bool

filter_constraints(constraints: aries_cloudagent.protocols.present_proof.dif.pres_exch.Constraints, credentials: Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord]) → Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord][source]

Return list of applicable VCRecords after applying filtering.

Parameters:
  • constraints – Constraints
  • credentials – Sequence of credentials to apply filtering on
Returns:

Sequence of applicable VCRecords

filter_creds_record_id(credentials: Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord], records_list: Sequence[str]) → Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord][source]

Return filtered list of credentials using records_list.

filter_schema(credentials: Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord], schemas: aries_cloudagent.protocols.present_proof.dif.pres_exch.SchemasInputDescriptorFilter) → Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord][source]

Filter by schema.

Returns list of credentials where credentialSchema.id or types matched with input_descriptors.schema.uri

Parameters:
  • credentials – list of VCRecords to check
  • schemas – list of schemas from the input_descriptors
Returns:

Sequence of filtered VCRecord

get_dict_keys_from_path(derived_cred_dict: dict, path: str) → List[source]

Return additional_attrs to build nested_field_paths.

get_sign_key_credential_subject_id(applicable_creds: Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord]) → Tuple[Optional[str], Sequence[dict]][source]

Get the issuer_id and filtered_creds from enclosed credentials subject_ids.

get_updated_field(field: aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFField, cred: dict) → aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFField[source]

Return field with updated json path, if necessary.

get_updated_path(cred_dict: dict, json_path: str) → str[source]

Return updated json path, if necessary.

is_len_applicable(req: aries_cloudagent.protocols.present_proof.dif.pres_exch.Requirement, val: int) → bool[source]

Check and validate requirement minimum, maximum and count.

Parameters:
  • req – Requirement
  • val – int value to check
Returns:

bool

is_numeric(val: any)[source]

Check if val is an int or float.

Parameters:val – to check
Returns:numeric value
Raises:DIFPresExchError – Provided value has invalid/incompatible type
length_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Length check.

Returns True if length value string meets the minLength and maxLength specs

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

make_requirement(srs: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.SubmissionRequirements] = None, descriptors: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptors] = None) → aries_cloudagent.protocols.present_proof.dif.pres_exch.Requirement[source]

Return Requirement.

Creates and return Requirement with nesting if required using to_requirement()

Parameters:
  • srs – list of submission_requirements
  • descriptors – list of input_descriptors
Raises:

DIFPresExchError – If not able to create requirement

maximum_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Maximum check.

Returns True if value less than equal to filter specified check

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

merge(dict_descriptor_creds: dict) → Tuple[Sequence[aries_cloudagent.storage.vc_holder.vc_record.VCRecord], Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptorMapping]][source]

Return applicable credentials and descriptor_map for attachment.

Used for generating the presentation_submission property with the descriptor_map, mantaining the order in which applicable credential list is returned.

Parameters:
  • dict_descriptor_creds – dict with input_descriptor.id as keys
  • merged_credentials_list (and) –
Returns:

Tuple of applicable credential list and descriptor map

merge_nested_results(nested_result: Sequence[dict], exclude: dict) → dict[source]

Merge nested results with merged credentials.

Parameters:
  • nested_result – Sequence of dict containing input_descriptor.id as keys and list of creds as values
  • exclude – dict containing info about credentials to exclude
Returns:

dict with input_descriptor.id as keys and merged_credentials_list as values

minimum_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Minimum check.

Returns True if value greater than equal to filter specified check

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

nested_get(input_dict: dict, path: str) → Union[Dict, List][source]

Return dict or list from nested dict given list of nested_key.

new_credential_builder(new_credential: dict, unflatten_dict: dict) → dict[source]

Update and return the new_credential.

Parameters:
  • new_credential – credential dict to be updated and returned
  • unflatten_dict – dict with traversal path as key and match_value as value
Returns:

dict

pattern_check(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Pattern check.

Returns True if value string matches the specified pattern

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

process_constraint_holders(subject_ids: Sequence[str]) → bool[source]

Check if holder or subject of claim still controls the identifier.

process_numeric_val(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Trigger Filter checks.

Trigger appropriate check for a number type filter, according to _filter spec.

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

process_string_val(val: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Trigger Filter checks.

Trigger appropriate check for a string type filter, according to _filter spec.

Parameters:
  • val – value to check, extracted from match
  • _filter – Filter
Returns:

bool

restrict_field_paths_one_of_filter(field_paths: Sequence[str], cred_dict: dict) → Sequence[str][source]

Return field_paths that are applicable to oneof_filter.

reveal_doc(credential_dict: dict, constraints: aries_cloudagent.protocols.present_proof.dif.pres_exch.Constraints)[source]

Generate reveal_doc dict for deriving credential.

string_to_timezone_aware_datetime(datetime_str: str) → datetime.datetime[source]

Convert string with PYTZ timezone to datetime for comparison.

subject_is_issuer(credential: aries_cloudagent.storage.vc_holder.vc_record.VCRecord) → bool[source]

subject_is_issuer check.

Returns True if cred issuer_id is in subject_ids

Parameters:credential – VCRecord
Returns:bool
to_requirement(sr: aries_cloudagent.protocols.present_proof.dif.pres_exch.SubmissionRequirements, descriptors: Sequence[aries_cloudagent.protocols.present_proof.dif.pres_exch.InputDescriptors]) → aries_cloudagent.protocols.present_proof.dif.pres_exch.Requirement[source]

Return Requirement.

Parameters:
  • sr – submission_requirement
  • descriptors – list of input_descriptors
Raises:

DIFPresExchError – If not able to create requirement

validate_patch(to_check: any, _filter: aries_cloudagent.protocols.present_proof.dif.pres_exch.Filter) → bool[source]

Apply filter on match_value.

Utility function used in applying filtering to a cred by triggering checks according to filter specification

Parameters:
  • to_check – value to check, extracted from match
  • _filter – Filter
Returns:

bool

verify_received_pres(pd: aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationDefinition, pres: Union[Sequence[dict], dict])[source]

Verify credentials received in presentation.

Parameters:
  • pres – received VerifiablePresentation
  • pd – PresentationDefinition

aries_cloudagent.protocols.present_proof.dif.pres_proposal_schema module

DIF Proof Proposal Schema.

class aries_cloudagent.protocols.present_proof.dif.pres_proposal_schema.DIFProofProposalSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Schema for DIF Proposal.

input_descriptors

Used by autodoc_mock_imports.

options

Used by autodoc_mock_imports.

aries_cloudagent.protocols.present_proof.dif.pres_request_schema module

DIF Proof Request Schema.

class aries_cloudagent.protocols.present_proof.dif.pres_request_schema.DIFPresSpecSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Schema for DIF Presentation Spec schema.

issuer_id

Used by autodoc_mock_imports.

presentation_definition

Used by autodoc_mock_imports.

record_ids

Used by autodoc_mock_imports.

reveal_doc

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.present_proof.dif.pres_request_schema.DIFProofRequest(presentation_definition: Union[dict, aries_cloudagent.protocols.present_proof.dif.pres_exch.PresentationDefinition, None], options: Union[dict, aries_cloudagent.protocols.present_proof.dif.pres_exch.DIFOptions, None] = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

DIF presentation request input detail.

class Meta[source]

Bases: object

DIFProofRequest metadata.

schema_class = 'DIFProofRequestSchema'
class aries_cloudagent.protocols.present_proof.dif.pres_request_schema.DIFProofRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModelSchema

Schema for DIF presentation request.

class Meta[source]

Bases: object

Accept parameter overload.

model_class

alias of DIFProofRequest

unknown

Used by autodoc_mock_imports.

options

Used by autodoc_mock_imports.

presentation_definition

Used by autodoc_mock_imports.

aries_cloudagent.protocols.present_proof.dif.pres_schema module

DIF Proof Schema.

class aries_cloudagent.protocols.present_proof.dif.pres_schema.DIFProofSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Schema for DIF Proof.

contexts

Used by autodoc_mock_imports.

credentials

Used by autodoc_mock_imports.

id

Used by autodoc_mock_imports.

presentation_submission

Used by autodoc_mock_imports.

proof

Used by autodoc_mock_imports.

types

Used by autodoc_mock_imports.