-
Notifications
You must be signed in to change notification settings - Fork 204
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(oob): implicit invitations #1348
feat(oob): implicit invitations #1348
Conversation
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Codecov Report
@@ Coverage Diff @@
## main #1348 +/- ##
==========================================
+ Coverage 86.54% 86.66% +0.11%
==========================================
Files 778 778
Lines 18432 18473 +41
Branches 3143 3161 +18
==========================================
+ Hits 15952 16009 +57
+ Misses 2473 2457 -16
Partials 7 7
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
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.
This is really great @genaris!!!
I have some code in a local branch somewhere that has most of the work done for creating invitations using public dids, if we can add that soon as well we fully support public dids!
One thing I'm curious about, when someone connects to our public did, will we always rotate to a new did? Or will it use the keys from the invitation to create a peer did (in that case we should be careful as it'll use the same key but a diferent did). If i remember correctly a key will be created when an invitation is created, and then later a peer did will be created from that key. Not 100% if this is working as intended, but as it's so little code I'm curious whether it jus works (I know creating invitations with public dids required quite some chagnes...)
packages/core/src/modules/connections/services/ConnectionService.ts
Outdated
Show resolved
Hide resolved
packages/core/src/modules/connections/handlers/DidExchangeRequestHandler.ts
Outdated
Show resolved
Hide resolved
packages/core/src/modules/connections/handlers/ConnectionRequestHandler.ts
Outdated
Show resolved
Hide resolved
packages/core/src/modules/connections/handlers/ConnectionRequestHandler.ts
Outdated
Show resolved
Hide resolved
With the new |
This is exactly one of the main goals I want to achieve with this and the import! Using did:web will simplify a lot the deployments and discovery of public agents. |
Thanks for the fast but quite in-depth review! It was actually meant to be marked as 'draft' but fortunately I put it for review and you gave some good pointers about the approach to take.
I'm not completely sure if I understood your question but the idea is that for both DID Exchange Request and Connection Request a new "reusable" Out of Band record will be created, so it will rotate the keys as it would be managing the requests for a reusable OOB Invitation (in the code, it will call |
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
This answers my question. I was mostly curious whether we were always rotating to a new did/key in the response message, but if it works the same as reusable out of band invitations then I understand. 👍 |
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
…r checks Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
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.
I'm okay with merging, but left some additional comments/questions
|
||
const outOfBandRecord = | ||
parentThreadId && tryParseDid(parentThreadId) | ||
? await this.outOfBandService.createImplicitInvitation(agentContext, { |
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.
I'm not 100% on the naming of this method. We've just received a request based on an implicit invitation (the service in the did document is the implicit invitation). It feels like createFromImplicitInvitation
would be more suitable? Also not 100% happy with that, but it should denote that we're creating an out of band record based on a request that was sent based on an implicit invitation.
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.
Well, at least I removed that isImplicitInvitation
that didn't convince you neither 😆. The naming was somehow borrowed from the OutOfBandApi method called createInvitation
that returned an OutOfBandRecord
. But you are completely right: createFromImplicitInvitation
is a bit more accurate. Could be also createFromConnectionRequest
or createFromImplicitInvitationResponse
? I still prefer your suggestion.
export type ReceiveOutOfBandInvitationConfig = Omit<BaseReceiveOutOfBandInvitationConfig, 'isImplicit'> | ||
|
||
export interface ReceiveOutOfBandImplicitInvitationConfig | ||
extends Omit<BaseReceiveOutOfBandInvitationConfig, 'isImplicit' | 'reuseConnection'> { |
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.
Why don't we allow reuseConnection
? If I'm already connected I may or may not reuse the connection right?
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.
I set this before moving to the idea of using id = did
for all OOBInvitations related to the same did. I think it can be re-added, but it can add some complexity: suppose you have a connection related to a public did and call this method with reuseConnection = false
, meaning that it will create a new connection related to the same public did. As a result, we will have two connections related to the same did. If you call this method again with reuseConnection = true
, which of those two connections should it reuse?
I think it´s valuable to have this feature enabled in an automatic way (otherwise it's the consumer app who should check if there is an existing connection before calling this method). Maybe we can support it and, if two or more connections are found, we throw an error?
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.
The problem I see here is that reuseConnection
parameter is related to the reuse messages as specified in RFC 434 (handshake-reuse
and handshake-reuse-accepted
). This one uses OOB Invitation pthid
as the way of identifying the invitee... but in an implicit invitation, the pthid will be the public did of the inviter 🤔 .
This makes me think that this flow is not possible or intended to work with implicit invitations. Any clarification will be certainly welcome (my brains are as fried as yours nowadays 😛)
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.
Yes makes sense. I think we may also be able to just return an existing connection based on reuseConnection
. if you pass reuseConnection=true
it will just look if we already have a connection with this did, but if you pass false it will always create a new connection. With an OOB invitation you MUST use the handshake-reuse. But this approach is perfect for now
packages/core/src/modules/connections/handlers/DidExchangeCompleteHandler.ts
Show resolved
Hide resolved
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
LGTM |
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
commit 0351eec Author: Ariel Gentile <gentilester@gmail.com> Date: Wed Mar 15 12:02:50 2023 -0300 fix: connection id in sessions for new connections (openwallet-foundation#1383) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit f27fb99 Author: Ariel Gentile <gentilester@gmail.com> Date: Wed Mar 15 09:23:10 2023 -0300 feat: basic message pthid/thid support (openwallet-foundation#1381) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit d59366a Author: Jim Ezesinachi <ezesinachijim@gmail.com> Date: Wed Mar 15 11:04:52 2023 +0100 docs: fix example usage of indy-sdk-react-native package (openwallet-foundation#1382) Signed-off-by: Jim Ezesinachi <jim@animo.id> commit a4204ef Author: Timo Glastra <timo@animo.id> Date: Sat Mar 11 16:31:09 2023 +0100 fix: remove named capture groups (openwallet-foundation#1378) named capture groups are only supported in more recent versions of hermes Signed-off-by: Timo Glastra <timo@animo.id> commit dd6c020 Author: Ariel Gentile <gentilester@gmail.com> Date: Sat Mar 11 11:57:37 2023 -0300 feat(anoncreds-rs): use new API methods for json conversion (openwallet-foundation#1373) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 122cdde Author: Timo Glastra <timo@animo.id> Date: Sat Mar 11 13:31:09 2023 +0100 fix: return HTTP 415 if unsupported content type (openwallet-foundation#1313) Signed-off-by: Timo Glastra <timo@animo.id> commit 582c711 Author: Mo <10432473+morrieinmaas@users.noreply.github.com> Date: Sat Mar 11 12:08:02 2023 +0100 feat: outbound message send via session (openwallet-foundation#1335) Co-authored-by: Jim Ezesinachi <ezesinachijim@gmail.com> Co-authored-by: Timo Glastra <timo@animo.id> Signed-off-by: Moriarty <moritz@animo.id> commit 19cefa5 Author: Ariel Gentile <gentilester@gmail.com> Date: Sat Mar 11 07:20:49 2023 -0300 feat(askar): import/export wallet support for SQLite (openwallet-foundation#1377) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit c72ba14 Author: Timo Glastra <timo@animo.id> Date: Wed Mar 8 17:40:03 2023 +0100 fix(askar): custom error handling (openwallet-foundation#1372) Signed-off-by: Timo Glastra <timo@animo.id> commit 39c4ed0 Author: Timo Glastra <timo@animo.id> Date: Wed Mar 8 16:52:12 2023 +0100 feat(indy-vdr)!: extend did:indy support (openwallet-foundation#1362) Signed-off-by: Timo Glastra <timo@animo.id> commit 01669a7 Author: Timo Glastra <timo@animo.id> Date: Wed Mar 8 14:48:34 2023 +0100 test: increase timeout to 120 seconds (openwallet-foundation#1375) Signed-off-by: Timo Glastra <timo@animo.id> commit 953069a Author: Ariel Gentile <gentilester@gmail.com> Date: Mon Mar 6 10:28:30 2023 -0300 fix(core): repository event when calling deleteById (openwallet-foundation#1356) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit c133538 Author: Ariel Gentile <gentilester@gmail.com> Date: Mon Mar 6 08:26:42 2023 -0300 fix(anoncreds): Buffer not imported from core (openwallet-foundation#1367) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 8f6b344 Author: Timo Glastra <timo@animo.id> Date: Fri Mar 3 12:15:58 2023 +0100 feat(indy-sdk)!: move to did:indy with limited support (openwallet-foundation#1347) Signed-off-by: Timo Glastra <timo@animo.id> commit 7795975 Author: Martin Auer <martin.auer97@gmail.com> Date: Fri Mar 3 11:07:43 2023 +0100 fix(tenant): Correctly configure storage for multi tenant agents (openwallet-foundation#1359) Fixes hyperledger#1353 Signed-off-by: martin auer <martin.auer97@gmail.com> commit cb4e469 Author: Timo Glastra <timo@animo.id> Date: Thu Mar 2 22:38:14 2023 +0100 test: various improvements (openwallet-foundation#1361) Signed-off-by: Timo Glastra <timo@animo.id> commit fd13bb8 Author: Ariel Gentile <gentilester@gmail.com> Date: Thu Mar 2 17:00:57 2023 -0300 feat(oob): implicit invitations (openwallet-foundation#1348) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 18abb18 Author: Pritam Singh <43764373+Zzocker@users.noreply.github.com> Date: Thu Mar 2 22:11:20 2023 +0530 fix: isNewSocket logic (openwallet-foundation#1355) Signed-off-by: Pritam Singh <pkspritam16@gmail.com> commit 2c792fe Author: Martin Auer <martin.auer97@gmail.com> Date: Thu Mar 2 14:29:05 2023 +0100 refactor!: remove getKeyDidMappingByVerificationMethod (openwallet-foundation#1350) Signed-off-by: martin auer <martin.auer97@gmail.com> commit 78ecf1e Author: Ariel Gentile <gentilester@gmail.com> Date: Wed Mar 1 18:44:26 2023 -0300 refactor!: remove Dispatcher.registerMessageHandler (openwallet-foundation#1354) BREAKING CHANGE: `Dispatcher.registerMessageHandler` has been removed in favour of `MessageHandlerRegistry.registerMessageHandler`. If you want to register message handlers in an extension module, you can use directly `agentContext.dependencyManager.registerMessageHandlers`. Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 1bda3f0 Author: Ariel Gentile <gentilester@gmail.com> Date: Mon Feb 27 15:35:16 2023 -0300 fix(anoncreds-rs): save revocation registry index (openwallet-foundation#1351) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 4ab3b54 Author: Timo Glastra <timo@animo.id> Date: Mon Feb 27 13:23:47 2023 +0100 refactor!: set default outbound content type to didcomm v1 (openwallet-foundation#1314) Signed-off-by: Timo Glastra <timo@animo.id> BREAKING CHANGE: Agent default outbound content type has been changed to DIDComm V1. If you want to use former behaviour, you can do it so by manually setting `didcommMimeType` in `Agent`'s init config: ``` const agent = new Agent({ config: { ... didCommMimeType: DidCommMimeType.V0 }, ... }) ``` commit 254f661 Author: Ariel Gentile <gentilester@gmail.com> Date: Sat Feb 25 11:49:36 2023 -0300 fix(indy-sdk): import from core (openwallet-foundation#1346) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 21d4bf7 Author: Timo Glastra <timo@animo.id> Date: Fri Feb 24 22:20:54 2023 +0100 feat!: allow to import created dids (and remove legacy `publicDidSeed`) (openwallet-foundation#1325) Signed-off-by: Timo Glastra <timo@animo.id> commit dc60acb Author: Timo Glastra <timo@animo.id> Date: Fri Feb 24 20:50:28 2023 +0100 build(anoncreds): remove node package from deps (openwallet-foundation#1339) Signed-off-by: Timo Glastra <timo@animo.id> commit e14d853 Author: Timo Glastra <timo@animo.id> Date: Fri Feb 24 17:59:30 2023 +0100 test: increase indy-sdk timeout (openwallet-foundation#1345) Signed-off-by: Timo Glastra <timo@animo.id> commit d38ecb1 Author: Ariel Gentile <gentilester@gmail.com> Date: Fri Feb 24 09:12:40 2023 -0300 fix(anoncreds): include prover_did for legacy indy (openwallet-foundation#1342) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit da8f2ad Author: Niall Shaw <100220424+niall-shaw@users.noreply.github.com> Date: Fri Feb 24 13:01:47 2023 +0200 fix: create new socket if socket state is 'closing' (openwallet-foundation#1337) Signed-off-by: Niall Shaw <niall.shaw@absa.africa> commit cac2ec3 Author: Martin Auer <martin.auer97@gmail.com> Date: Fri Feb 24 11:11:28 2023 +0100 refactor(core)!: remove deprecated injectionContainer prop (openwallet-foundation#1344) Signed-off-by: martin auer <martin.auer97@gmail.com> commit d5e34ff Author: Ariel Gentile <gentilester@gmail.com> Date: Fri Feb 24 06:19:32 2023 -0300 test(indy-sdk): wait before resolving ledger objects (openwallet-foundation#1340) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 518e5e4 Author: Ariel Gentile <gentilester@gmail.com> Date: Wed Feb 22 04:36:33 2023 -0300 fix: expose indy pool configs and action menu messages (openwallet-foundation#1333) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 1c6aeae Author: Ariel Gentile <gentilester@gmail.com> Date: Tue Feb 21 19:18:19 2023 -0300 fix(askar): anoncrypt messages unpacking (openwallet-foundation#1332) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit fb7ee50 Author: Victor Anene <62852943+Vickysomtee@users.noreply.github.com> Date: Tue Feb 21 15:39:14 2023 +0100 feat: IndyVdrAnonCredsRegistry revocation methods (openwallet-foundation#1328) Signed-off-by: Victor Anene <victor@animo.id> commit 64e20f1 Author: Timo Glastra <timo@animo.id> Date: Mon Feb 20 17:07:30 2023 +0100 fix!: don't emit legacy did:sov prefix for new protocols (openwallet-foundation#1245) Signed-off-by: Timo Glastra <timo@animo.id> commit c0e5339 Author: Ariel Gentile <gentilester@gmail.com> Date: Mon Feb 20 09:04:20 2023 -0300 fix: seed and private key validation and return type in registrars (openwallet-foundation#1324) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit edf392f Author: Timo Glastra <timo@animo.id> Date: Mon Feb 20 12:14:21 2023 +0100 refactor: remove master secret id from wallet (openwallet-foundation#1320) Signed-off-by: Timo Glastra <timo@animo.id> commit b6d66b1 Author: Timo Glastra <timo@animo.id> Date: Mon Feb 20 00:59:42 2023 +0100 refactor!: remove indy from core (openwallet-foundation#1286) Signed-off-by: Timo Glastra <timo@animo.id> commit 616b908 Author: Ariel Gentile <gentilester@gmail.com> Date: Sun Feb 19 13:27:16 2023 -0300 feat(wallet)!: createKey from private key (openwallet-foundation#1301) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 64a5da9 Author: Ariel Gentile <gentilester@gmail.com> Date: Sat Feb 18 16:54:25 2023 -0300 fix(samples): dummy module response message type (openwallet-foundation#1321) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit ff5596d Author: Ariel Gentile <gentilester@gmail.com> Date: Fri Feb 17 23:10:09 2023 -0300 feat!: add data, cache and temp dirs to FileSystem (openwallet-foundation#1306) Signed-off-by: Ariel Gentile <gentilester@gmail.com> BREAKING CHANGE: Agent-produced files will now be divided in different system paths depending on their nature: data, temp and cache. Previously, they were located at a single location, defaulting to a temporary directory. If you specified a custom path in `FileSystem` object constructor, you now must provide an object containing `baseDataPath`, `baseTempPath` and `baseCachePath`. They can point to the same path, although it's recommended to specify different path to avoid future file clashes. commit af384e8 Author: Timo Glastra <timo@animo.id> Date: Sat Feb 18 01:32:45 2023 +0100 fix: loosen base64 validation (openwallet-foundation#1312) Signed-off-by: Timo Glastra <timo@animo.id> commit 229ed1b Author: Timo Glastra <timo@animo.id> Date: Fri Feb 17 21:31:47 2023 +0100 fix: thread id improvements (openwallet-foundation#1311) Signed-off-by: Timo Glastra <timo@animo.id> commit 1d782f5 Author: Victor Anene <62852943+Vickysomtee@users.noreply.github.com> Date: Fri Feb 17 20:01:35 2023 +0100 feat: add fetch indy schema method (openwallet-foundation#1290) Signed-off-by: Victor Anene <victor@animo.id> commit 3e02227 Author: Ariel Gentile <gentilester@gmail.com> Date: Wed Feb 15 20:14:47 2023 -0300 fix: imports from core (openwallet-foundation#1303) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 4ac5332 Author: Jason C. Leach <jason.leach@fullboar.ca> Date: Wed Feb 15 14:11:41 2023 -0800 feat: add devcontainer support (openwallet-foundation#1282) Signed-off-by: Jason C. Leach <jason.leach@fullboar.ca> commit efab8dd Author: Ariel Gentile <gentilester@gmail.com> Date: Tue Feb 14 19:49:59 2023 -0300 feat(indy-vdr): resolver and registrar for did:indy (openwallet-foundation#1253) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit a487705 Author: Timo Glastra <timo@animo.id> Date: Tue Feb 14 10:57:22 2023 +0100 docs: update readme (openwallet-foundation#1298) docs: update reaadme Signed-off-by: Timo Glastra <timo@animo.id> commit ecce0a7 Author: Ariel Gentile <gentilester@gmail.com> Date: Mon Feb 13 19:01:39 2023 -0300 fix(askar): generate nonce suitable for anoncreds (openwallet-foundation#1295) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit c63350c Author: Timo Glastra <timo@animo.id> Date: Mon Feb 13 20:58:46 2023 +0100 test: add anoncreds restriction test (openwallet-foundation#1294) Signed-off-by: Timo Glastra <timo@animo.id> commit b570e0f Author: Karim Stekelenburg <karim@animo.id> Date: Mon Feb 13 19:49:21 2023 +0100 fix(indy-vdr): export relevant packages from root (openwallet-foundation#1291) Signed-off-by: Karim Stekelenburg <karim@animo.id> commit c72fd74 Author: Timo Glastra <timo@animo.id> Date: Mon Feb 13 18:40:44 2023 +0100 feat(anoncreds): legacy indy proof format service (openwallet-foundation#1283) Signed-off-by: Timo Glastra <timo@animo.id> commit dfb3eaf Author: Karim Stekelenburg <karim@animo.id> Date: Mon Feb 13 16:23:41 2023 +0100 build(indy-sdk): set private to false (openwallet-foundation#1293) Signed-off-by: Karim Stekelenburg <karim@animo.id> commit 231145f Author: Ariel Gentile <gentilester@gmail.com> Date: Mon Feb 13 10:22:44 2023 -0300 chore: make askar, anoncreds(-rs), indy-vdr packages public (openwallet-foundation#1292) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit fb8d58b Author: Timo Glastra <timo@animo.id> Date: Mon Feb 13 12:57:35 2023 +0100 refactor(proofs)!: generalize proofs api and improve consistency with credentials module (openwallet-foundation#1279) Signed-off-by: Timo Glastra <timo@animo.id> commit 51030d4 Author: Karim Stekelenburg <karim@animo.id> Date: Mon Feb 13 11:43:02 2023 +0100 feat(indy-vdr): module registration (openwallet-foundation#1285) Signed-off-by: Karim Stekelenburg <karim@animo.id> commit d61f6ed Author: Berend Sliedrecht <61358536+blu3beri@users.noreply.github.com> Date: Mon Feb 13 09:23:17 2023 +0100 chore(core): remove useless file (openwallet-foundation#1288) commit 30857b9 Author: Berend Sliedrecht <61358536+blu3beri@users.noreply.github.com> Date: Sat Feb 11 22:50:10 2023 +0100 fix(transport)!: added docs moved connection to connectionId (openwallet-foundation#1222) Signed-off-by: blu3beri <blu3beri@proton.me> commit efe0271 Author: Ariel Gentile <gentilester@gmail.com> Date: Fri Feb 10 19:15:36 2023 -0300 feat: add anoncreds-rs package (openwallet-foundation#1275) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 2669d7d Author: KolbyRKunz <KolbyKunz@yahoo.com> Date: Fri Feb 10 14:14:59 2023 -0700 fix: set updateAt on records when updating a record (openwallet-foundation#1272) Signed-off-by: KolbyRKunz <kolbykunz@yahoo.com> commit 1d487b1 Author: Jim Ezesinachi <jim@animo.id> Date: Fri Feb 10 20:21:20 2023 +0100 feat: added endpoint setter to agent InitConfig (openwallet-foundation#1278) Signed-off-by: Jim Ezesinachi <jim@animo.id> commit 86cb9d0 Author: Ariel Gentile <gentilester@gmail.com> Date: Fri Feb 10 11:13:44 2023 -0300 ci: increase maximum heap memory for node (openwallet-foundation#1280) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit d056316 Author: Victor Anene <62852943+Vickysomtee@users.noreply.github.com> Date: Fri Feb 10 01:31:43 2023 +0100 feat(indy-vdr): add IndyVdrAnonCredsRegistry (openwallet-foundation#1270) Signed-off-by: Timo Glastra <timo@animo.id> commit f18d189 Author: Ariel Gentile <gentilester@gmail.com> Date: Mon Feb 6 23:34:21 2023 -0300 feat: add initial askar package (openwallet-foundation#1211) Signed-off-by: Ariel Gentile <gentilester@gmail.com> commit 115d897 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Feb 6 23:45:01 2023 +0000 build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 (openwallet-foundation#1258) commit 3d86e78 Author: Karim Stekelenburg <karim@animo.id> Date: Tue Feb 7 00:09:24 2023 +0100 feat(openid4vc-client): pre-authorized (openwallet-foundation#1243) This PR adds support for the `pre-authorized` OpenID for Verifiable Credentials issuance flow to the new `openid4vc-client` module. Here are some highlights of the work: - Allows the user to execute the entire `pre-authorized` flow by calling a single method. - Adds a happy-flow test - HTTP(S) requests and responses are mocked using a network mocking library called [nock](https://github.com/nock/nock) - Because the JSON-LD credential that is received is expanded by the `W3cCredentialService`, I've added a few new contexts to our test document loader. - Not-so-happy-flow tests will be added later on. If you have any suggestions for edge cases that deserve testing, feel free to drop a comment. - Modifies the `JwsService` - The `JwsService` was geared towards a very specific use case. I've generalized its API so it's usable for a wider range of applications. - All pre-existing tests and calls to the `JwsService` have been updated. It's worth noting that I have had to add some `@ts-ignore` statements here and there to get around some incomplete types in the `OpenID4VCI-Client` library we're using. Once these issues have been resolved in the client library, they will be removed. **Work funded by the government of Ontario** --------- Signed-off-by: Karim Stekelenburg <karim@animo.id> Co-authored-by: Timo Glastra <timo@animo.id> commit 7f65ba9 Author: Jim Ezesinachi <jim@animo.id> Date: Mon Feb 6 22:27:03 2023 +0100 feat: optional routing for legacy connectionless invitation (openwallet-foundation#1271) Signed-off-by: Jim Ezesinachi <jim@animo.id> commit 3a4c5ec Author: Timo Glastra <timo@animo.id> Date: Mon Feb 6 21:49:12 2023 +0100 feat(anoncreds): add anoncreds API (openwallet-foundation#1232) Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Add support for Out-of-Band protocol 'implicit invitations', meaning by that to connect to a public DID given it has a DID Communication service in its DidDocument.
The API consists on the method
oob.receiveImplicitInvitation
, similar to regularoob.receiveInvitation
but it of course receiving a resolvable did instead of a Connection Invitation.It can use both Connection and DID Exchange protocols and it's possible to create multiple connections from the same public DID. By querying
connections.findByInvitationDid(publicDid)
it's possible for an application to know if it's already connected to a public entity.Using AFJ agents it's working, but didn't test it against ACA-Py yet. Hopefully with these changes we can pass some DID Exchange tests in the AATH.