-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: support resolving did:peer:1 received in did exchange #2611
feat: support resolving did:peer:1 received in did exchange #2611
Conversation
06a293b
to
d7bb9c8
Compare
b863fbd
to
94c8117
Compare
This is now ready for review! I would like to continue building did:peer:2 support on top of these changes. @swcurran @usingtechnology |
Adding @Jsyro to reviewer. Can’t give a Maintainer approval, but I can translate… :-) |
Resolves did:peer:1 received in did exchange Signed-off-by: Daniel Bluhm <[email protected]>
Signed-off-by: Daniel Bluhm <[email protected]>
Signed-off-by: Daniel Bluhm <[email protected]>
Signed-off-by: Daniel Bluhm <[email protected]>
Signed-off-by: Daniel Bluhm <[email protected]>
94c8117
to
783895b
Compare
Signed-off-by: Daniel Bluhm <[email protected]>
Kudos, SonarCloud Quality Gate passed! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, great explanation of your work - simple enough even I could follow!
Took a closer look at this. This is a problem that actually just was never solved in the legacy peer case as well. I think fixing this belongs in a future PR. I'll log an issue. |
Issue created: #2654 |
Looks great, one question though. This maintains existing storage and fetching behaviour of the legacy unqualified DIDDocs, those documents are not going to be converted to did:peer:1? |
No — existing documents need not be converted, since they are only ever used internally, never with external parties. At some point we might update them, although almost certainly not to did:peer:1. |
This is an experimental implementation of supporting did:peer:1 resolution. This enables ACA-Py to correctly handle DID Exchange requests from AFJ (AFJ now fails to process our responses since we're not passing back a did:peer, still the unqualified values).
Notably, this does not support creating or sending did:peer:1, just storing and resolving.
Detailed changes:
LegacyCorrections
class was written to deal with.BaseConnectionManager.record_did
; this helps with consistently handling DIDsBaseConnectionManager.fetch_did_document
no longer parses the response from the wallet usingDIDDoc
. This helps this call to be a primitive used by DID resolvers that rely on stored documents to resolve DIDs without the DIDDoc parsing logic getting in the way.Note to self, this resolver should have a clean up routine run when the associated connection record is deleted, similar to did:peer:2/3