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

feat: DIDComm V2 messaging support #1458

Merged
Merged
Changes from 1 commit
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
adba83d
feat: add anoncreds package (#1118)
karimStekelenburg Jan 9, 2023
2f6ae14
build(deps): bump luxon from 1.28.0 to 1.28.1 (#1196)
dependabot[bot] Jan 10, 2023
59d1982
build(deps): bump json5 from 1.0.1 to 1.0.2 (#1191)
dependabot[bot] Jan 10, 2023
fd006f2
feat: adding trust ping events and trust ping command (#1182)
KimEbert42 Jan 10, 2023
da7abde
chore: rename plugin to module (#1201)
TimoGlastra Jan 10, 2023
9933b35
feat(indy-sdk): add indy-sdk package (#1200)
TimoGlastra Jan 11, 2023
c34a3df
docs: update readme packages (#1206)
karimStekelenburg Jan 12, 2023
8a04d1b
chore: remove husky pre-push hook (#1209)
TimoGlastra Jan 12, 2023
86647e7
feat(anoncreds): add anoncreds registry service (#1204)
TimoGlastra Jan 12, 2023
b6f89f9
feat: add minimal oidc-client package (#1197)
karimStekelenburg Jan 12, 2023
c697716
fix(openid4vc-client): set package to private (#1210)
karimStekelenburg Jan 12, 2023
409d36c
docs: corrected some mistakes on demo documentation (#1215)
GramThanos Jan 17, 2023
087980f
fix: fix typing issues with typescript 4.9 (#1214)
TimoGlastra Jan 17, 2023
4a572fe
chore(release): v0.3.3 (#1217)
github-actions[bot] Jan 18, 2023
25b2bcf
feat(cache): add caching interface (#1229)
TimoGlastra Jan 20, 2023
0f6d231
feat(proofs): sort credentials based on revocation (#1225)
TimoGlastra Jan 20, 2023
b6ae948
chore: deprecate injectionContainer on agent (#1241)
TimoGlastra Jan 26, 2023
e8d6ac3
feat(indy-vdr): add indy-vdr package and indy vdr pool (#1160)
Vickysomtee Jan 26, 2023
13f3740
feat(anoncreds): add legacy indy credential format (#1220)
TimoGlastra Jan 29, 2023
b5eb08e
feat(indy-vdr): did:sov resolver (#1247)
genaris Jan 30, 2023
acdb20a
feat(indy-vdr): use @hyperledger packages (#1252)
genaris Feb 2, 2023
f1e4937
ci: forceExit and bail tests (#1266)
TimoGlastra Feb 5, 2023
3a4c5ec
feat(anoncreds): add anoncreds API (#1232)
TimoGlastra Feb 6, 2023
7f65ba9
feat: optional routing for legacy connectionless invitation (#1271)
jimezesinachi Feb 6, 2023
3d86e78
feat(openid4vc-client): pre-authorized (#1243)
karimStekelenburg Feb 6, 2023
115d897
build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 (#1258)
dependabot[bot] Feb 6, 2023
f18d189
feat: add initial askar package (#1211)
genaris Feb 7, 2023
d056316
feat(indy-vdr): add IndyVdrAnonCredsRegistry (#1270)
Vickysomtee Feb 10, 2023
86cb9d0
ci: increase maximum heap memory for node (#1280)
genaris Feb 10, 2023
1d487b1
feat: added endpoint setter to agent InitConfig (#1278)
jimezesinachi Feb 10, 2023
2669d7d
fix: set updateAt on records when updating a record (#1272)
KolbyRKunz Feb 10, 2023
efe0271
feat: add anoncreds-rs package (#1275)
genaris Feb 10, 2023
30857b9
fix(transport)!: added docs moved connection to connectionId (#1222)
berendsliedrecht Feb 11, 2023
d61f6ed
chore(core): remove useless file (#1288)
berendsliedrecht Feb 13, 2023
51030d4
feat(indy-vdr): module registration (#1285)
karimStekelenburg Feb 13, 2023
fb8d58b
refactor(proofs)!: generalize proofs api and improve consistency with…
TimoGlastra Feb 13, 2023
231145f
chore: make askar, anoncreds(-rs), indy-vdr packages public (#1292)
genaris Feb 13, 2023
dfb3eaf
build(indy-sdk): set private to false (#1293)
karimStekelenburg Feb 13, 2023
c72fd74
feat(anoncreds): legacy indy proof format service (#1283)
TimoGlastra Feb 13, 2023
b570e0f
fix(indy-vdr): export relevant packages from root (#1291)
karimStekelenburg Feb 13, 2023
c63350c
test: add anoncreds restriction test (#1294)
TimoGlastra Feb 13, 2023
ecce0a7
fix(askar): generate nonce suitable for anoncreds (#1295)
genaris Feb 13, 2023
a487705
docs: update readme (#1298)
TimoGlastra Feb 14, 2023
efab8dd
feat(indy-vdr): resolver and registrar for did:indy (#1253)
genaris Feb 14, 2023
4ac5332
feat: add devcontainer support (#1282)
jleach Feb 15, 2023
3e02227
fix: imports from core (#1303)
genaris Feb 15, 2023
1d782f5
feat: add fetch indy schema method (#1290)
Vickysomtee Feb 17, 2023
229ed1b
fix: thread id improvements (#1311)
TimoGlastra Feb 17, 2023
af384e8
fix: loosen base64 validation (#1312)
TimoGlastra Feb 18, 2023
ff5596d
feat!: add data, cache and temp dirs to FileSystem (#1306)
genaris Feb 18, 2023
64a5da9
fix(samples): dummy module response message type (#1321)
genaris Feb 18, 2023
616b908
feat(wallet)!: createKey from private key (#1301)
genaris Feb 19, 2023
b6d66b1
refactor!: remove indy from core (#1286)
TimoGlastra Feb 19, 2023
edf392f
refactor: remove master secret id from wallet (#1320)
TimoGlastra Feb 20, 2023
c0e5339
fix: seed and private key validation and return type in registrars (#…
genaris Feb 20, 2023
64e20f1
fix!: don't emit legacy did:sov prefix for new protocols (#1245)
TimoGlastra Feb 20, 2023
fb7ee50
feat: IndyVdrAnonCredsRegistry revocation methods (#1328)
Vickysomtee Feb 21, 2023
1c6aeae
fix(askar): anoncrypt messages unpacking (#1332)
genaris Feb 21, 2023
518e5e4
fix: expose indy pool configs and action menu messages (#1333)
genaris Feb 22, 2023
d5e34ff
test(indy-sdk): wait before resolving ledger objects (#1340)
genaris Feb 24, 2023
cac2ec3
refactor(core)!: remove deprecated injectionContainer prop (#1344)
auer-martin Feb 24, 2023
da8f2ad
fix: create new socket if socket state is 'closing' (#1337)
niall-shaw Feb 24, 2023
d38ecb1
fix(anoncreds): include prover_did for legacy indy (#1342)
genaris Feb 24, 2023
e14d853
test: increase indy-sdk timeout (#1345)
TimoGlastra Feb 24, 2023
dc60acb
build(anoncreds): remove node package from deps (#1339)
TimoGlastra Feb 24, 2023
21d4bf7
feat!: allow to import created dids (and remove legacy `publicDidSeed…
TimoGlastra Feb 24, 2023
254f661
fix(indy-sdk): import from core (#1346)
genaris Feb 25, 2023
4ab3b54
refactor!: set default outbound content type to didcomm v1 (#1314)
TimoGlastra Feb 27, 2023
1bda3f0
fix(anoncreds-rs): save revocation registry index (#1351)
genaris Feb 27, 2023
78ecf1e
refactor!: remove Dispatcher.registerMessageHandler (#1354)
genaris Mar 1, 2023
2c792fe
refactor!: remove getKeyDidMappingByVerificationMethod (#1350)
auer-martin Mar 2, 2023
18abb18
fix: isNewSocket logic (#1355)
Zzocker Mar 2, 2023
fd13bb8
feat(oob): implicit invitations (#1348)
genaris Mar 2, 2023
cb4e469
test: various improvements (#1361)
TimoGlastra Mar 2, 2023
7795975
fix(tenant): Correctly configure storage for multi tenant agents (#1359)
auer-martin Mar 3, 2023
8f6b344
feat(indy-sdk)!: move to did:indy with limited support (#1347)
TimoGlastra Mar 3, 2023
c133538
fix(anoncreds): Buffer not imported from core (#1367)
genaris Mar 6, 2023
953069a
fix(core): repository event when calling deleteById (#1356)
genaris Mar 6, 2023
01669a7
test: increase timeout to 120 seconds (#1375)
TimoGlastra Mar 8, 2023
39c4ed0
feat(indy-vdr)!: extend did:indy support (#1362)
TimoGlastra Mar 8, 2023
c72ba14
fix(askar): custom error handling (#1372)
TimoGlastra Mar 8, 2023
19cefa5
feat(askar): import/export wallet support for SQLite (#1377)
genaris Mar 11, 2023
582c711
feat: outbound message send via session (#1335)
morrieinmaas Mar 11, 2023
122cdde
fix: return HTTP 415 if unsupported content type (#1313)
TimoGlastra Mar 11, 2023
dd6c020
feat(anoncreds-rs): use new API methods for json conversion (#1373)
genaris Mar 11, 2023
a4204ef
fix: remove named capture groups (#1378)
TimoGlastra Mar 11, 2023
d59366a
docs: fix example usage of indy-sdk-react-native package (#1382)
jimezesinachi Mar 15, 2023
f27fb99
feat: basic message pthid/thid support (#1381)
genaris Mar 15, 2023
0351eec
fix: connection id in sessions for new connections (#1383)
genaris Mar 15, 2023
c17013c
feat(anoncreds): use legacy prover did (#1374)
genaris Mar 17, 2023
5f71dc2
feat(anoncreds): add AnonCreds format services (#1385)
genaris Mar 18, 2023
4a6b99c
feat: indy sdk aries askar migration script (#1289)
berendsliedrecht Mar 18, 2023
2efc009
feat(anoncreds): add getCredential(s) methods (#1386)
TimoGlastra Mar 18, 2023
5559996
feat(anoncreds): support credential attribute value and marker (#1369)
Vickysomtee Mar 19, 2023
343ce6a
refactor: require native shared components implementation (#1349)
Vickysomtee Mar 19, 2023
dbfebb4
feat: default return route (#1327)
NB-MikeRichardson Mar 20, 2023
1125e81
fix: did cache key not being set correctly (#1394)
TimoGlastra Mar 21, 2023
9f0f8f2
fix: incorrect type for anoncreds registration (#1396)
TimoGlastra Mar 21, 2023
d6e2ea2
fix: reference to indyLedgers in IndyXXXNotConfiguredError (#1397)
genaris Mar 21, 2023
996c08f
feat(openid4vc-client): openid authorization flow (#1384)
karimStekelenburg Mar 22, 2023
50e877d
test: randomize askar wallet ids (#1405)
genaris Mar 27, 2023
7459509
test(migration): minor cleanup (#1403)
berendsliedrecht Mar 28, 2023
3bff26d
test(indy-vdr): add delay after DID creation (#1406)
genaris Mar 29, 2023
bc5455f
feat: 0.4.0 migration script (#1392)
TimoGlastra Mar 29, 2023
692defa
fix: add reflect-metadata (#1409)
TimoGlastra Mar 29, 2023
ef00099
chore(bbs-signatures): make module public (#1411)
Amit-Padmani Mar 30, 2023
47636b4
feat(anoncreds): store method name in records (#1387)
TimoGlastra Mar 30, 2023
9558256
chore!: update dependencies (#1388)
TimoGlastra Mar 31, 2023
806ccd9
refactor!: remove module specific config options (#1393)
TimoGlastra Mar 31, 2023
fa5b1a8
chore(askar-migration): move indy-sdk to dev deps (#1414)
TimoGlastra Mar 31, 2023
a8439db
feat: add message pickup module (#1413)
genaris Apr 1, 2023
8bc8dbc
refactor(anoncreds): master secret to link secret (#1415)
genaris Apr 1, 2023
d9cfc7d
fix: various anoncreds revocation fixes (#1416)
TimoGlastra Apr 1, 2023
c46a6b8
fix: jsonld credential format identifier version (#1412)
NB-MikeRichardson Apr 3, 2023
c888736
feat(core): add W3cCredentialsApi
karimStekelenburg Apr 4, 2023
c8b16a6
fix: remove `deleteOnFinish` and added documentation (#1418)
berendsliedrecht Apr 4, 2023
fe10fb4
chore: update shared components libraries (#1419)
TimoGlastra Apr 4, 2023
7b59629
fix(askar): default key derivation method (#1420)
TimoGlastra Apr 4, 2023
644e860
fix(anoncreds): make revocation status list inline with the spec (#1421)
berendsliedrecht Apr 5, 2023
ec5c233
fix(anoncreds-rs): revocation status list as JSON (#1422)
genaris Apr 10, 2023
b35fec4
feat: allow sending problem report when declining a proof request (#1…
Artemkaaas Apr 10, 2023
4e7a380
build: test large builders (#1429)
ryjones Apr 12, 2023
b38525f
feat: Add cheqd-sdk module (#1334)
DaevMithran Apr 13, 2023
de90caf
fix: issuance with unqualified identifiers (#1431)
TimoGlastra Apr 14, 2023
66afda2
fix(connections): store imageUrl when using DIDExchange (#1433)
genaris Apr 14, 2023
8a933c0
fix(indy-vdr): do not force indy-vdr version (#1434)
genaris Apr 16, 2023
ccc7f28
chore(ci): switch to dedicated Aries runners (#1436)
ryjones Apr 19, 2023
cf98f76
chore: export askar types (#1437)
auer-martin Apr 19, 2023
1ffb011
feat: Add cheqd demo and localnet for tests (#1435)
DaevMithran Apr 19, 2023
d247b53
feat(indy-vdr)!: did transaction endorsement (#1417)
auer-martin Apr 24, 2023
ef6164a
ci: downgrade ubuntu docker image (#1442)
genaris Apr 28, 2023
83cf387
fix: small issues with migration and WAL files (#1443)
TimoGlastra May 1, 2023
9a43afe
fix: migration of link secret (#1444)
TimoGlastra May 1, 2023
4145957
fix: Emit RoutingCreated event for mediator routing record (#1445)
AlexanderShenshin May 3, 2023
61daf0c
fix: small updates to cheqd module and demo (#1439)
TimoGlastra May 8, 2023
6ecab7a
Merge remote-tracking branch 'upstream/main' into feat/didcomm-v2
Artemkaaas May 9, 2023
7dd4061
fix: remove scope check from response (#1450)
karimStekelenburg May 10, 2023
700d3f8
feat: support for did:jwk and p-256, p-384, p-512 (#1446)
TimoGlastra May 11, 2023
9208910
Fixed merge and linter errors. DIDComm V2 package is not integrated yet.
Artemkaaas May 11, 2023
1017f72
Implemented DidComm V2 encryption in askar wallet
Artemkaaas May 16, 2023
12bbe55
Merge remote-tracking branch 'upstream/main' into feat/didcomm-v2
Artemkaaas May 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat(indy-vdr): did:sov resolver (#1247)
Signed-off-by: Ariel Gentile <[email protected]>
genaris authored Jan 30, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit b5eb08e99d7ea61adefb8c6c0c5c99c6c1ba1597
95 changes: 95 additions & 0 deletions packages/indy-vdr/src/dids/IndyVdrSovDidResolver.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import type { GetNymResponseData, IndyEndpointAttrib } from './didSovUtil'
import type { DidResolutionResult, ParsedDid, DidResolver, AgentContext } from '@aries-framework/core'

import { GetAttribRequest, GetNymRequest } from 'indy-vdr-test-shared'

import { IndyVdrError, IndyVdrNotFoundError } from '../error'
import { IndyVdrPoolService } from '../pool'

import { addServicesFromEndpointsAttrib, sovDidDocumentFromDid } from './didSovUtil'

export class IndyVdrSovDidResolver implements DidResolver {
public readonly supportedMethods = ['sov']

public async resolve(agentContext: AgentContext, did: string, parsed: ParsedDid): Promise<DidResolutionResult> {
const didDocumentMetadata = {}

try {
const nym = await this.getPublicDid(agentContext, parsed.id)
const endpoints = await this.getEndpointsForDid(agentContext, parsed.id)

const keyAgreementId = `${parsed.did}#key-agreement-1`
const builder = sovDidDocumentFromDid(parsed.did, nym.verkey)
addServicesFromEndpointsAttrib(builder, parsed.did, endpoints, keyAgreementId)

return {
didDocument: builder.build(),
didDocumentMetadata,
didResolutionMetadata: { contentType: 'application/did+ld+json' },
}
} catch (error) {
return {
didDocument: null,
didDocumentMetadata,
didResolutionMetadata: {
error: 'notFound',
message: `resolver_error: Unable to resolve did '${did}': ${error}`,
},
}
}
}

private async getPublicDid(agentContext: AgentContext, did: string) {
const indyVdrPoolService = agentContext.dependencyManager.resolve(IndyVdrPoolService)

const pool = await indyVdrPoolService.getPoolForDid(agentContext, did)

const request = new GetNymRequest({ dest: did })

const didResponse = await pool.submitReadRequest(request)

if (!didResponse.result.data) {
throw new IndyVdrNotFoundError(`DID ${did} not found`)
}
return JSON.parse(didResponse.result.data) as GetNymResponseData
}

private async getEndpointsForDid(agentContext: AgentContext, did: string) {
const indyVdrPoolService = agentContext.dependencyManager.resolve(IndyVdrPoolService)

const pool = await indyVdrPoolService.getPoolForDid(agentContext, did)

try {
agentContext.config.logger.debug(`Get endpoints for did '${did}' from ledger '${pool.indyNamespace}'`)

const request = new GetAttribRequest({ targetDid: did, raw: 'endpoint' })

agentContext.config.logger.debug(
`Submitting get endpoint ATTRIB request for did '${did}' to ledger '${pool.indyNamespace}'`
)
const response = await pool.submitReadRequest(request)

if (!response.result.data) return {}

const endpoints = JSON.parse(response.result.data as string)?.endpoint as IndyEndpointAttrib
agentContext.config.logger.debug(
`Got endpoints '${JSON.stringify(endpoints)}' for did '${did}' from ledger '${pool.indyNamespace}'`,
{
response,
endpoints,
}
)

return endpoints ?? {}
} catch (error) {
agentContext.config.logger.error(
`Error retrieving endpoints for did '${did}' from ledger '${pool.indyNamespace}'`,
{
error,
}
)

throw new IndyVdrError(error)
}
}
}
127 changes: 127 additions & 0 deletions packages/indy-vdr/src/dids/__tests__/IndyVdrSovDidResolver.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
import { JsonTransformer } from '@aries-framework/core'

import { parseDid } from '../../../../core/src/modules/dids/domain/parse'
import { getAgentConfig, getAgentContext, mockProperty } from '../../../../core/tests/helpers'
import { IndyVdrPool, IndyVdrPoolService } from '../../pool'
import { IndyVdrSovDidResolver } from '../IndyVdrSovDidResolver'

import didSovR1xKJw17sUoXhejEpugMYJFixture from './__fixtures__/didSovR1xKJw17sUoXhejEpugMYJ.json'
import didSovWJz9mHyW9BZksioQnRsrAoFixture from './__fixtures__/didSovWJz9mHyW9BZksioQnRsrAo.json'

jest.mock('../../pool/IndyVdrPoolService')
const IndyVdrPoolServiceMock = IndyVdrPoolService as jest.Mock<IndyVdrPoolService>
const poolServiceMock = new IndyVdrPoolServiceMock()

jest.mock('../../pool/IndyVdrPool')
const IndyVdrPoolMock = IndyVdrPool as jest.Mock<IndyVdrPool>
const poolMock = new IndyVdrPoolMock()
mockProperty(poolMock, 'indyNamespace', 'local')
jest.spyOn(poolServiceMock, 'getPoolForDid').mockResolvedValue(poolMock)

const agentConfig = getAgentConfig('IndyVdrSovDidResolver')

const agentContext = getAgentContext({
agentConfig,
registerInstances: [[IndyVdrPoolService, poolServiceMock]],
})

const resolver = new IndyVdrSovDidResolver()

describe('DidResolver', () => {
describe('IndyVdrSovDidResolver', () => {
it('should correctly resolve a did:sov document', async () => {
const did = 'did:sov:R1xKJw17sUoXhejEpugMYJ'

const nymResponse = {
result: {
data: JSON.stringify({
did: 'R1xKJw17sUoXhejEpugMYJ',
verkey: 'E6D1m3eERqCueX4ZgMCY14B4NceAr6XP2HyVqt55gDhu',
role: 'ENDORSER',
}),
},
}

const attribResponse = {
result: {
data: JSON.stringify({
endpoint: {
endpoint: 'https://ssi.com',
profile: 'https://profile.com',
hub: 'https://hub.com',
},
}),
},
}

jest.spyOn(poolMock, 'submitReadRequest').mockResolvedValueOnce(nymResponse)
jest.spyOn(poolMock, 'submitReadRequest').mockResolvedValueOnce(attribResponse)

const result = await resolver.resolve(agentContext, did, parseDid(did))

expect(JsonTransformer.toJSON(result)).toMatchObject({
didDocument: didSovR1xKJw17sUoXhejEpugMYJFixture,
didDocumentMetadata: {},
didResolutionMetadata: {
contentType: 'application/did+ld+json',
},
})
})

it('should resolve a did:sov document with routingKeys and types entries in the attrib', async () => {
const did = 'did:sov:WJz9mHyW9BZksioQnRsrAo'

const nymResponse = {
result: {
data: JSON.stringify({
did: 'WJz9mHyW9BZksioQnRsrAo',
verkey: 'GyYtYWU1vjwd5PFJM4VSX5aUiSV3TyZMuLBJBTQvfdF8',
role: 'ENDORSER',
}),
},
}

const attribResponse = {
result: {
data: JSON.stringify({
endpoint: {
endpoint: 'https://agent.com',
types: ['endpoint', 'did-communication', 'DIDComm'],
routingKeys: ['routingKey1', 'routingKey2'],
},
}),
},
}

jest.spyOn(poolMock, 'submitReadRequest').mockResolvedValueOnce(nymResponse)
jest.spyOn(poolMock, 'submitReadRequest').mockResolvedValueOnce(attribResponse)

const result = await resolver.resolve(agentContext, did, parseDid(did))

expect(JsonTransformer.toJSON(result)).toMatchObject({
didDocument: didSovWJz9mHyW9BZksioQnRsrAoFixture,
didDocumentMetadata: {},
didResolutionMetadata: {
contentType: 'application/did+ld+json',
},
})
})

it('should return did resolution metadata with error if the indy ledger service throws an error', async () => {
const did = 'did:sov:R1xKJw17sUoXhejEpugMYJ'

jest.spyOn(poolMock, 'submitReadRequest').mockRejectedValue(new Error('Error submitting read request'))

const result = await resolver.resolve(agentContext, did, parseDid(did))

expect(result).toMatchObject({
didDocument: null,
didDocumentMetadata: {},
didResolutionMetadata: {
error: 'notFound',
message: `resolver_error: Unable to resolve did 'did:sov:R1xKJw17sUoXhejEpugMYJ': Error: Error submitting read request`,
},
})
})
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"@context": [
"https://w3id.org/did/v1",
"https://w3id.org/security/suites/ed25519-2018/v1",
"https://w3id.org/security/suites/x25519-2019/v1"
],
"id": "did:sov:R1xKJw17sUoXhejEpugMYJ",
"verificationMethod": [
{
"type": "Ed25519VerificationKey2018",
"controller": "did:sov:R1xKJw17sUoXhejEpugMYJ",
"id": "did:sov:R1xKJw17sUoXhejEpugMYJ#key-1",
"publicKeyBase58": "E6D1m3eERqCueX4ZgMCY14B4NceAr6XP2HyVqt55gDhu"
},
{
"type": "X25519KeyAgreementKey2019",
"controller": "did:sov:R1xKJw17sUoXhejEpugMYJ",
"id": "did:sov:R1xKJw17sUoXhejEpugMYJ#key-agreement-1",
"publicKeyBase58": "Fbv17ZbnUSbafsiUBJbdGeC62M8v8GEscVMMcE59mRPt"
}
],
"authentication": ["did:sov:R1xKJw17sUoXhejEpugMYJ#key-1"],
"assertionMethod": ["did:sov:R1xKJw17sUoXhejEpugMYJ#key-1"],
"keyAgreement": ["did:sov:R1xKJw17sUoXhejEpugMYJ#key-agreement-1"],
"service": [
{
"id": "did:sov:R1xKJw17sUoXhejEpugMYJ#endpoint",
"type": "endpoint",
"serviceEndpoint": "https://ssi.com"
},
{
"accept": ["didcomm/aip2;env=rfc19"],
"id": "did:sov:R1xKJw17sUoXhejEpugMYJ#did-communication",
"priority": 0,
"recipientKeys": ["did:sov:R1xKJw17sUoXhejEpugMYJ#key-agreement-1"],
"routingKeys": [],
"serviceEndpoint": "https://ssi.com",
"type": "did-communication"
},
{
"id": "did:sov:R1xKJw17sUoXhejEpugMYJ#profile",
"serviceEndpoint": "https://profile.com",
"type": "profile"
},
{
"id": "did:sov:R1xKJw17sUoXhejEpugMYJ#hub",
"serviceEndpoint": "https://hub.com",
"type": "hub"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"@context": [
"https://w3id.org/did/v1",
"https://w3id.org/security/suites/ed25519-2018/v1",
"https://w3id.org/security/suites/x25519-2019/v1",
"https://didcomm.org/messaging/contexts/v2"
],
"id": "did:sov:WJz9mHyW9BZksioQnRsrAo",
"verificationMethod": [
{
"type": "Ed25519VerificationKey2018",
"controller": "did:sov:WJz9mHyW9BZksioQnRsrAo",
"id": "did:sov:WJz9mHyW9BZksioQnRsrAo#key-1",
"publicKeyBase58": "GyYtYWU1vjwd5PFJM4VSX5aUiSV3TyZMuLBJBTQvfdF8"
},
{
"type": "X25519KeyAgreementKey2019",
"controller": "did:sov:WJz9mHyW9BZksioQnRsrAo",
"id": "did:sov:WJz9mHyW9BZksioQnRsrAo#key-agreement-1",
"publicKeyBase58": "S3AQEEKkGYrrszT9D55ozVVX2XixYp8uynqVm4okbud"
}
],
"authentication": ["did:sov:WJz9mHyW9BZksioQnRsrAo#key-1"],
"assertionMethod": ["did:sov:WJz9mHyW9BZksioQnRsrAo#key-1"],
"keyAgreement": ["did:sov:WJz9mHyW9BZksioQnRsrAo#key-agreement-1"],
"service": [
{
"id": "did:sov:WJz9mHyW9BZksioQnRsrAo#endpoint",
"type": "endpoint",
"serviceEndpoint": "https://agent.com"
},
{
"id": "did:sov:WJz9mHyW9BZksioQnRsrAo#did-communication",
"type": "did-communication",
"priority": 0,
"recipientKeys": ["did:sov:WJz9mHyW9BZksioQnRsrAo#key-agreement-1"],
"routingKeys": ["routingKey1", "routingKey2"],
"accept": ["didcomm/aip2;env=rfc19"],
"serviceEndpoint": "https://agent.com"
},
{
"id": "did:sov:WJz9mHyW9BZksioQnRsrAo#didcomm-1",
"type": "DIDComm",
"serviceEndpoint": "https://agent.com",
"accept": ["didcomm/v2"],
"routingKeys": ["routingKey1", "routingKey2"]
}
]
}
Loading