aries-cloudagent-python: Selective Disclosure check in pres_exch_handler.py not working
I believe I stumbled on a bug in aries-cloudagent-python/aries_cloudagent/protocols/present_proof/dif/pres_exch_handler.py in current main branch. I am getting an DIFPresExchError at line 1322. I followed the logic and printed out values at line 1375:
cred_dict:
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/security/bbs/v1",
{
"MedicalPass": {
"@id": "https://www.vdel.com/MedicalPass",
"@context": {
"description": "http://schema.org/description",
"identifier": "http://schema.org/identifier",
"name": "http://schema.org/name",
"image": "http://schema.org/image"
}
}
},
{
"Patient": {
"@id": "http://hl7.org/fhir/Patient",
"@context": [
"https://fhircat.org/fhir-r5/rdf-r5/contexts/patient.context.jsonld"
]
}
}
],
"id": "urn:bnid:_:c14n14",
"type": [
"MedicalPass",
"VerifiableCredential"
],
"credentialSubject": {
"id": "urn:bnid:_:c14n11",
"Patient": {
"@id": "urn:bnid:_:c14n2",
"type": "fhir:resource-types#Patient",
"birthDate": "1958-12-03T00:00:00"
}
},
"issuanceDate": "2021-09-27T12:40:03+02:00",
"issuer": "did:key:zUC7DVPRfshooBqmnT2LrMxabCUkRhyyUCu8xKvYRot5aeTLTpPxzZoMyFkMLgKHMPUzdEnJM1EqbxfQd466ed3QuEtUJr8iqKRVfJ4txBa3PRoASaup6fjVAkU9VdbDbs5et64",
"proof": {
"type": "BbsBlsSignatureProof2020",
"nonce": "XVdQwHnUYJkkMX4LDWFPVuB7NQJ5IVn6ohW/psGv3fFSJ9kbr59BcWpix7Q3LBfzJ80=",
"proofValue": "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",
"verificationMethod": "did:key:zUC7DVPRfshooBqmnT2LrMxabCUkRhyyUCu8xKvYRot5aeTLTpPxzZoMyFkMLgKHMPUzdEnJM1EqbxfQd466ed3QuEtUJr8iqKRVfJ4txBa3PRoASaup6fjVAkU9VdbDbs5et64#zUC7DVPRfshooBqmnT2LrMxabCUkRhyyUCu8xKvYRot5aeTLTpPxzZoMyFkMLgKHMPUzdEnJM1EqbxfQd466ed3QuEtUJr8iqKRVfJ4txBa3PRoASaup6fjVAkU9VdbDbs5et64",
"proofPurpose": "assertionMethod",
"created": "2021-09-27T10:40:03.200843+00:00"
}
}
extracted_dict:
{
"@id": "urn:bnid:_:c14n2",
"type": "fhir:resource-types#Patient",
"birthDate": "1958-12-03T00:00:00"
}
extracted_dict.keys():
[
"@id",
"type",
"birthDate"
]
nested_field_paths:
{
"credentialSubject": {
"id",
"type",
"Patient"
},
"credentialSubject.Patient": {
"birthDate"
}
}
nested_attr_values:
{
"birthDate"
}
The error is raised because “@id” is not in {“birthDate”} !
This is the body of the send-request endpoint:
{
"connection_id": "83a35636-7297-4dc8-ad9f-5de7825227bb",
"presentation_request": {
"dif": {
"options": {
"challenge": "3fa85f64-5717-4562-b3fc-2c963f66afa7"
},
"presentation_definition": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa7",
"input_descriptors": [
{
"id": "Patient",
"schema": [
{"uri": "https://www.w3.org/2018/credentials#VerifiableCredential"},
{"uri": "https://www.vdel.com/MedicalPass"}
],
"name": "Пацијент",
"purpose": "Лични подаци",
"constraints": {
"limit_disclosure": "required",
"fields": [
{
"path": [
"$.credentialSubject.Patient.birthDate"
],
"id": "birthDate",
"purpose": "Датум рођења"
}
]
}
}
],
"name": "Morbilli virus пропусница",
"purpose": "Улазак у вртић",
"format": {
"ldp_vp": {
"proof_type": [
"BbsBlsSignature2020"
]
}
}
}
}
}
}
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 39 (17 by maintainers)
Sorry again, you are right, it works OK! I will continue testing with more complex cases (and be more careful with arrays 😃 I will report in a couple of hours.