Skip to content
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

OOB / DIDExchange issue tracker #764

Closed
13 of 33 tasks
TimoGlastra opened this issue May 11, 2022 · 1 comment
Closed
13 of 33 tasks

OOB / DIDExchange issue tracker #764

TimoGlastra opened this issue May 11, 2022 · 1 comment

Comments

@TimoGlastra
Copy link
Contributor

TimoGlastra commented May 11, 2022

Tasks left from PR review:

  • Reuse oob invitation keys also for multiuse invitation (?)
    • @TimoGlastra Currently, I'm still creating new keys when it's multiuse invitation. I assume we don't want to do that, right?
  • Add oob record state and role checks
  • feat(api): store more from receiveInvitation config into a record and allow override in acceptInvitation
  • refactor(core): Change did to unqualifiedSovDid or maybe unqualifiedIndyDid
  • refactor(core): Extract connection protocol methods from service to protocol class
  • Throw an error if there is more then one rule resolved by state machine
    • But I actually didn’t find beneficial the way how I implemented the did exchange state machine
  • Fix naming caused by DecryptedMessageContext vs. UnpackedMessageContext
  • 🚧 OOB state should be set to done once we send or receive the first non-oob message (so after sending or receiving the didexchange / connection request message)
    • Currently done in response / complete handlers
  • Store legacy did and did document string in did record after converting to new did document (needs changes from feat: 0.2.0 connection migration script #731)
  • We can probably remove some props from the connection record over time? E.g. multiUseInvitation (in oob record) and mediatorId (in oob record)
  • associating out of band recor with session and finding it based on that can maybe be insecure, as there's multiple entities that can act on the same oob record when using multi use invitations. Is this true?
  • differentiate between stored and resolved version of peer did document
  • demo is broken (docs: fix demo for oob #779)
  • 🚧 connectionless should be integrated with oob, also we should allow for connection reuse when doing connectionless.
    the oob offer/request will not have a connection id when we receive the first reply. we must set it on the record
  • creating an out of band offer/request will currently create keys, and the oob invitation will also create keys. I propose the following flow:
    1. create oob offer/request no keys will be created, no ~service is present
    2. call oob.createInvitation to create oob invitation containing the offer/request
    3. OR call oob.createLegacyConnectionlessInvitation (naming not final yet, but you get the idea) that will generate a key and set the ~service decorator. This makes the process two steps, but I think the api is nice enough to do that.
  • rename outOfBand to outOfBandRecord
  • Think of ways to not require ConnectionsModule. acceptOutOfBandInvitation to be public
  • support other numAlgo than did:peer method 2 / figure out what to do with dids without a did document (RFC 0023: Can we accept inline peer did without a signature? hyperledger/aries-rfcs#717) -- only if key rotation is used
  • connectionRecord.threadId = message.threadId || message.id (message.id is redundant)
  • Change the defaults of autoAcceptConnection and autoAcceptInvitation?
  • Update connection complete listener to event listener so it survives agent shutdown
  • resolveDidDocument vs resolve in dids module
  • use ReferencedAuthentication instead of embeddedAuthentication (@jakubkoci specific reason you changed this?) we now include the same key object twice which I'm not sure if that's allowed
  • oob.test.ts use event listener instead of while loop to get all credentials (test: use event listener instead of while loop #778)
  • fix the test packages/core/src/utils/tests/JsonTransformer.test.ts
  • remove dupilcates from recipientKeyFingerprints
  • oob record did value is not always a qualified did
  • 🚧 integrate connectionless with oob
  • integrate ppv2 with createLegacyConnectionlessInvitation (will do so once ppv2 has been merged)
  • remove old tags in migration script
  • add unit tests for didexchange protocol
  • check all todos in code comments
  • createLegacyInvitation should not allow all parameters from createInvitation with oob
  • passing mediatorId when creating invitation is too complex (need to call getRouting first?)
  • receiveInvitation should accept a ConnectionInvitationMessage
  • autoAcceptConnection should also be taken from the out of band record?
@TimoGlastra
Copy link
Contributor Author

Closing. Most of it has been addressed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant