-
Notifications
You must be signed in to change notification settings - Fork 5
Process: Create a Connection between Identity Owners
Peter Ullrich edited this page Feb 9, 2018
·
2 revisions
This process explains how two Identity Owners (IO1 and IO2) are creating a connection.
-
IO1creates a new wallet,W1 -
IO1creates a newDID(DID1) andVerification Key(VerKey1) fromIO1seed -
IO1storesDID1andVerKey1inW1- The
DIDcreation and storing is done withdid.create_and_store_my_did
- The
-
IO1creates creates aConnectionRequest(ConReq), which is aHashMapwith keys:didandnonce.-
didis the newly createdDID1 -
nonceis a cryptographically ensured random number
-
-
IO1sends theConReqto the Indy Ledger together withVerKey1- Request is built with
Legder.buildNymRequest - Request is signed and submitted with
Legder.signAndSubmitRequest
- Request is built with
-
IO1sends theConReqtoIO2off-chain
-
IO2receives theConnectionRequest(ConReq-R) fromIO1off-chain -
IO2creates a new wallet,W2 -
IO2creates a newDID(DID2) andVerification Key(VerKey2) fromIO2seed -
IO2storesDID2andVerKey2inW2 -
IO2retrieves theConnectionRequest(ConReq-L) with theDIDofConReq-Rfrom the Indy Legder -
IO2retrieves theVerKey1forConReq-Lfrom the Ledger -
IO2creates aConnectionResponse, which is aHashMapwith keys:did,verkey, andnonce-
didis theDID1fromConReq-R. -
verkeyis theVerkey1forConReq-L -
nonceis theNonceretrieved from theConReq-L
-
-
IO2sends theConnectionResponsetoIO1usingCrypto.anonCrypt -
IO2receives aEncryptedResponseas return value from the last step. -
IO2decrypts theEncryptedResponseusingCrypto.anonDecrypt -
IO2checks that theNonceinEncryptedResponseis equal toNonceinConReq-R- If yes,
-
IO2sends aConnectionResponsewith to the Ledger with- The
VerKey1received forConReq-L - The
DID2ofW2 - The
VerKey2newly created forW2
- The
-
IO2sends aConnectionResponsetoIO1off-chain with the same data.
-
- If no,
IO2doesn't send the connection response.
- If yes,
-
IO1receives theConnectionResponsefromIO2off-chain