Skip to content

Commit 3581b01

Browse files
committed
Switch verifier away from get_info methods in handler
Signed-off-by: jamshale <[email protected]>
1 parent 5dfa089 commit 3581b01

File tree

7 files changed

+57
-51
lines changed

7 files changed

+57
-51
lines changed

acapy_agent/anoncreds/base.py

-4
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,6 @@ async def get_revocation_list(
135135
async def get_schema_info_by_id(self, schema_id: str) -> AnoncredsSchemaInfo:
136136
"""Get a schema info from the registry."""
137137

138-
@abstractmethod
139-
async def get_cred_def_info_by_id(self, schema_id: str) -> AnoncredsSchemaInfo:
140-
"""Get a cred def info from the registry."""
141-
142138

143139
class BaseAnonCredsRegistrar(BaseAnonCredsHandler):
144140
"""Base Anoncreds Registrar."""

acapy_agent/anoncreds/default/did_indy/registry.py

-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from ....config.injection_context import InjectionContext
88
from ....core.profile import Profile
99
from ...base import BaseAnonCredsRegistrar, BaseAnonCredsResolver
10-
from ...models.cred_def_info import AnoncredsCredDefInfo
1110
from ...models.credential_definition import CredDef, CredDefResult, GetCredDefResult
1211
from ...models.revocation import (
1312
GetRevListResult,
@@ -124,7 +123,3 @@ async def update_revocation_list(
124123
async def get_schema_info_by_id(self, schema_id: str) -> AnoncredsSchemaInfo:
125124
"""Get a schema info from the registry."""
126125
return await super().get_schema_info_by_id(schema_id)
127-
128-
async def get_cred_def_info_by_id(self, cred_def_id: str) -> AnoncredsCredDefInfo:
129-
"""Get cred def info by cred def id."""
130-
return await super().get_cred_def_info_by_id(cred_def_id)

acapy_agent/anoncreds/default/did_web/registry.py

-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from ....config.injection_context import InjectionContext
77
from ....core.profile import Profile
88
from ...base import BaseAnonCredsRegistrar, BaseAnonCredsResolver
9-
from ...models.cred_def_info import AnoncredsCredDefInfo
109
from ...models.credential_definition import CredDef, CredDefResult, GetCredDefResult
1110
from ...models.revocation import (
1211
GetRevListResult,
@@ -119,7 +118,3 @@ async def update_revocation_list(
119118
async def get_schema_info_by_id(self, schema_id: str) -> AnoncredsSchemaInfo:
120119
"""Get a schema info from the registry."""
121120
return await super().get_schema_info_by_id(schema_id)
122-
123-
async def get_cred_def_info_by_id(self, cred_def_id: str) -> AnoncredsCredDefInfo:
124-
"""Get cred def info by cred def id."""
125-
return await super().get_cred_def_info_by_id(cred_def_id)

acapy_agent/anoncreds/default/legacy_indy/registry.py

-7
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
)
5757
from ...events import RevListFinishedEvent
5858
from ...issuer import CATEGORY_CRED_DEF, AnonCredsIssuer, AnonCredsIssuerError
59-
from ...models.cred_def_info import AnoncredsCredDefInfo
6059
from ...models.credential_definition import (
6160
CredDef,
6261
CredDefResult,
@@ -1240,9 +1239,3 @@ async def get_schema_info_by_id(self, schema_id: str) -> AnoncredsSchemaInfo:
12401239
name=schema_id_parts.group(2),
12411240
version=schema_id_parts.group(3),
12421241
)
1243-
1244-
async def get_cred_def_info_by_id(self, cred_def_id: str) -> AnoncredsCredDefInfo:
1245-
"""Get cred def info by cred def id."""
1246-
return AnoncredsCredDefInfo(
1247-
issuer_id=cred_def_id.split(":")[-5],
1248-
)

acapy_agent/anoncreds/models/cred_def_info.py

-9
This file was deleted.

acapy_agent/protocols/present_proof/v2_0/formats/anoncreds/handler.py

+22-18
Original file line numberDiff line numberDiff line change
@@ -199,13 +199,16 @@ async def _check_proof_vs_proposal():
199199
sub_proof_index = attr_spec["sub_proof_index"]
200200
schema_id = proof["identifiers"][sub_proof_index]["schema_id"]
201201
cred_def_id = proof["identifiers"][sub_proof_index]["cred_def_id"]
202+
registry = self.profile.inject(AnonCredsRegistry)
203+
schema = await registry.get_schema(self.profile, schema_id)
204+
cred_def = await registry.get_credential_definition(cred_def_id)
202205
criteria = {
203206
"schema_id": schema_id,
204-
"schema_issuer_did": schema_id.split(":")[-4],
205-
"schema_name": schema_id.split(":")[-2],
206-
"schema_version": schema_id.split(":")[-1],
207+
"schema_issuer_did": schema.schema_value.issuer_id,
208+
"schema_name": schema.schema_value.name,
209+
"schema_version": schema.schema_value.version,
207210
"cred_def_id": cred_def_id,
208-
"issuer_did": cred_def_id.split(":")[-5],
211+
"issuer_did": cred_def.credential_definition.issuer_id,
209212
f"attr::{name}::value": proof_value,
210213
}
211214

@@ -232,18 +235,18 @@ async def _check_proof_vs_proposal():
232235
name: values["raw"] for name, values in attr_spec["values"].items()
233236
}
234237
sub_proof_index = attr_spec["sub_proof_index"]
235-
registry = self.profile.inject(AnonCredsRegistry)
236238
schema_id = proof["identifiers"][sub_proof_index]["schema_id"]
237-
schema_info = await registry.get_schema_info_by_id(schema_id)
238239
cred_def_id = proof["identifiers"][sub_proof_index]["cred_def_id"]
239-
cred_def_info = await registry.get_cred_def_info_by_id(cred_def_id)
240+
registry = self.profile.inject(AnonCredsRegistry)
241+
schema = await registry.get_schema(self.profile, schema_id)
242+
cred_def = await registry.get_credential_definition(cred_def_id)
240243
criteria = {
241244
"schema_id": schema_id,
242-
"schema_issuer_did": schema_info.issuer_id,
243-
"schema_name": schema_info.name,
244-
"schema_version": schema_info.version,
245+
"schema_issuer_did": schema.schema_value.issuer_id,
246+
"schema_name": schema.schema_value.name,
247+
"schema_version": schema.schema_value.version,
245248
"cred_def_id": cred_def_id,
246-
"issuer_did": cred_def_info.issuer_id,
249+
"issuer_did": cred_def.credential_definition.issuer_id,
247250
**{
248251
f"attr::{name}::value": value
249252
for name, value in proof_values.items()
@@ -296,18 +299,19 @@ async def _check_proof_vs_proposal():
296299
f"Proposed request predicate on {req_name} not in presentation"
297300
)
298301

299-
registry = self.profile.inject(AnonCredsRegistry)
302+
sub_proof_index = attr_spec["sub_proof_index"]
300303
schema_id = proof["identifiers"][sub_proof_index]["schema_id"]
301-
schema_info = await registry.get_schema_info_by_id(schema_id)
302304
cred_def_id = proof["identifiers"][sub_proof_index]["cred_def_id"]
303-
cred_def_info = await registry.get_cred_def_info_by_id(cred_def_id)
305+
registry = self.profile.inject(AnonCredsRegistry)
306+
schema = await registry.get_schema(self.profile, schema_id)
307+
cred_def = await registry.get_credential_definition(cred_def_id)
304308
criteria = {
305309
"schema_id": schema_id,
306-
"schema_issuer_did": schema_info.issuer_id,
307-
"schema_name": schema_info.name,
308-
"schema_version": schema_info.version,
310+
"schema_issuer_did": schema.schema_value.issuer_id,
311+
"schema_name": schema.schema_value.name,
312+
"schema_version": schema.schema_value.version,
309313
"cred_def_id": cred_def_id,
310-
"issuer_did": cred_def_info.issuer_id,
314+
"issuer_did": cred_def.credential_definition.issuer_id,
311315
}
312316

313317
if (

acapy_agent/protocols/present_proof/v2_0/tests/test_manager_anoncreds.py

+35-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@
66
import pytest
77

88
from .....anoncreds.holder import AnonCredsHolder
9-
from .....anoncreds.models.cred_def_info import AnoncredsCredDefInfo
9+
from .....anoncreds.models.credential_definition import (
10+
CredDef,
11+
CredDefValue,
12+
CredDefValuePrimary,
13+
GetCredDefResult,
14+
)
15+
from .....anoncreds.models.schema import AnonCredsSchema, GetSchemaResult
1016
from .....anoncreds.registry import AnonCredsRegistry
1117
from .....anoncreds.verifier import AnonCredsVerifier
1218
from .....indy.models.pres_preview import (
@@ -472,8 +478,34 @@ async def asyncSetUp(self):
472478
)
473479
injector.bind_instance(AnonCredsHolder, self.holder)
474480
registry = mock.MagicMock(AnonCredsRegistry, autospec=True)
475-
registry.get_cred_def_info_by_id = mock.CoroutineMock(
476-
return_value=AnoncredsCredDefInfo(issuer_id=ISSUER_DID)
481+
registry.get_schema = mock.CoroutineMock(
482+
return_value=GetSchemaResult(
483+
schema=AnonCredsSchema(
484+
issuer_id=ISSUER_DID,
485+
name="vidya",
486+
version="1.0",
487+
attr_names=["player", "screenCapture", "highScore"],
488+
),
489+
schema_id=S_ID,
490+
resolution_metadata={},
491+
schema_metadata={},
492+
)
493+
)
494+
registry.get_credential_definition = mock.CoroutineMock(
495+
return_value=GetCredDefResult(
496+
credential_definition_id="TUku9MDGa7QALbAJX4oAww:3:CL:531757:MYCO_Consent_Enablement",
497+
credential_definition=CredDef(
498+
issuer_id=ISSUER_DID,
499+
schema_id=S_ID,
500+
tag="tag",
501+
type="CL",
502+
value=CredDefValue(
503+
primary=CredDefValuePrimary("n", "s", {}, "rctxt", "z")
504+
),
505+
),
506+
credential_definition_metadata={},
507+
resolution_metadata={},
508+
)
477509
)
478510
injector.bind_instance(AnonCredsRegistry, registry)
479511

0 commit comments

Comments
 (0)