Open FabioPinheiro opened 1 year ago
https://identity.foundation/peer-did-method-spec/ I was expecting the specs web pages to be updated by the GitHub job. @dbluhm @swcurran do you know if the job failed or do we still need to do something?
https://identity.foundation/peer-did-method-spec/ I was expecting the specs web pages to be updated by the GitHub job. @dbluhm @swcurran do you know if the job failed or do we still need to do something?
It should have been updated... good catch, I'll investigate what went wrong!
Thanks for putting this issue together, by the way! This is excellent. We'll work on getting the didcomm-demo updated as well as the Indicio Mediator (no public repo to link to at the moment but feel free to add to your list). We will likely update those two projects in tandem.
For sicpa peer-did-jvm library I have raised a PR which is an initiative to start the work required for the changes in PeerDID Spec https://github.com/sicpa-dlab/peer-did-jvm/pull/37 This PR doesn't handle all the PeerDID Spec changes required.
- lib - decentralized-identity/did-resolver - (TODO open issue)
- docker - uni-resolver-driver-did-uport - (TODO open issue) - click here to see used lib
- app - universal-resolver - (TODO open issue)
- lib - veramolabs/peer-did-resolver - (TODO open issue)
Looking at the list, there's a library under the uniresolver that is missing. The veramo labs depends on a library that handles the actual parsing of DIDs and here's a PR for the fixes https://github.com/aviarytech/did-peer/pull/3
Thanks @frostyfrog. So now we can update the version of @aviarytech/did-peer@0.0.24
in veramolabs/peer-did-resolver
@FabioPinheiro @frostyfrog I bumped the versions of the libraries in the uniresolver chain of dependencies. The last step is merging the changes in teh universal resolver repo: https://github.com/decentralized-identity/universal-resolver/pull/395
@FabioPinheiro @frostyfrog I bumped the versions of the libraries in the uniresolver chain of dependencies. The last step is merging the changes in teh universal resolver repo: decentralized-identity/universal-resolver#395
That is great. I'm seeing a lot of fix/PRs for this lately. Let me try to update the list
The goal of this ticket is just to track the adoption of the community for the specs change.
There are some spec changes for
did:peer:2...
that are breaking changes for DID Comm. In order to achieve interoperability. It's important to fix libraries that implementdid:peer:2
and update all applications that depend on those libraries.I'm pretty sure this list is far from being complete. Feel free to add to this list. Also, help us contact the maintainers by creating tickets on the respective libraries.
Context
The changes were merged in this commit https://github.com/decentralized-identity/peer-did-method-spec/commit/a5eca6b4e0e41f70364949f7008c30879cbcb3ad Both issues have possible mitigation solutions that allow a smoother migration. Although previous implementations are considered faulty! Since DID methods have no version.
Issue 1
The first is to fix the encoding to follow the DID Document. The DID Document's service example in
did:peer
looks likeBut it should instead look like
We should make sure that our
did:peer
used on the applications are encoded correctly. when decrypting you look for that keyIssue 2
The second problem is about the
id
of the keys (kid
). It was unspecified before. So each library generates thekid
in its own way.The major problem is that the
kid
is used on the DID Comm message itself. More specifically the fieldskid
in the message's Protected Header is thekid
of the sender and therecipients.header.kid
is also thekid
recipient. When decrypting you look for that key. So the agent encrypting and the agent decrypting MUST have the same or an equivalent resolver (the key id needs to be deterministic).