@extrimian/agent 0.12.0-2 → 0.12.0-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/agent.d.ts +77 -0
  2. package/dist/agent.js +174 -0
  3. package/dist/agent.js.map +1 -0
  4. package/dist/data-share-behaviours/data-share-behavior.d.ts +4 -0
  5. package/dist/data-share-behaviours/data-share-behavior.js +3 -0
  6. package/dist/data-share-behaviours/data-share-behavior.js.map +1 -0
  7. package/dist/data-share-behaviours/identity-data-share-behavior.d.ts +16 -0
  8. package/dist/data-share-behaviours/identity-data-share-behavior.js +3 -0
  9. package/dist/data-share-behaviours/identity-data-share-behavior.js.map +1 -0
  10. package/dist/data-share-behaviours/identity-plaintext-data-share-behavior.d.ts +5 -0
  11. package/dist/data-share-behaviours/identity-plaintext-data-share-behavior.js +16 -0
  12. package/dist/data-share-behaviours/identity-plaintext-data-share-behavior.js.map +1 -0
  13. package/dist/data-share-behaviours/vcs/vc-share-behavior.d.ts +12 -0
  14. package/dist/data-share-behaviours/vcs/vc-share-behavior.js +3 -0
  15. package/dist/data-share-behaviours/vcs/vc-share-behavior.js.map +1 -0
  16. package/dist/data-share-behaviours/vcs/vc-share-didcomm-behavior.d.ts +20 -0
  17. package/dist/data-share-behaviours/vcs/vc-share-didcomm-behavior.js +30 -0
  18. package/dist/data-share-behaviours/vcs/vc-share-didcomm-behavior.js.map +1 -0
  19. package/dist/did/did-services.d.ts +14 -0
  20. package/dist/did/did-services.js +15 -0
  21. package/dist/did/did-services.js.map +1 -0
  22. package/dist/exceptions/agent-plugin-not-found.d.ts +2 -0
  23. package/dist/exceptions/agent-plugin-not-found.js +7 -0
  24. package/dist/exceptions/agent-plugin-not-found.js.map +1 -0
  25. package/dist/exceptions/vc-protocol-not-found.d.ts +3 -0
  26. package/dist/exceptions/vc-protocol-not-found.js +12 -0
  27. package/dist/exceptions/vc-protocol-not-found.js.map +1 -0
  28. package/dist/index.d.ts +32 -0
  29. package/dist/index.js +61 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/messaging/messaging.d.ts +41 -0
  32. package/dist/messaging/messaging.js +89 -0
  33. package/dist/messaging/messaging.js.map +1 -0
  34. package/dist/models/agent-identity.d.ts +86 -0
  35. package/dist/models/agent-identity.js +400 -0
  36. package/dist/models/agent-identity.js.map +1 -0
  37. package/dist/models/agent-kms.d.ts +42 -0
  38. package/dist/models/agent-kms.js +79 -0
  39. package/dist/models/agent-kms.js.map +1 -0
  40. package/dist/models/agent-pbk.d.ts +11 -0
  41. package/dist/models/agent-pbk.js +12 -0
  42. package/dist/models/agent-pbk.js.map +1 -0
  43. package/dist/models/agent-registry.d.ts +94 -0
  44. package/dist/models/agent-registry.js +130 -0
  45. package/dist/models/agent-registry.js.map +1 -0
  46. package/dist/models/agent-resolver-cache.d.ts +21 -0
  47. package/dist/models/agent-resolver-cache.js +48 -0
  48. package/dist/models/agent-resolver-cache.js.map +1 -0
  49. package/dist/models/agent-resolver.d.ts +19 -0
  50. package/dist/models/agent-resolver.js +34 -0
  51. package/dist/models/agent-resolver.js.map +1 -0
  52. package/dist/models/agent-secure-storage.d.ts +3 -0
  53. package/dist/models/agent-secure-storage.js +3 -0
  54. package/dist/models/agent-secure-storage.js.map +1 -0
  55. package/dist/models/agent-secure-storages/filesystem-agent-secure-storage.d.ts +14 -0
  56. package/dist/models/agent-secure-storages/filesystem-agent-secure-storage.js +49 -0
  57. package/dist/models/agent-secure-storages/filesystem-agent-secure-storage.js.map +1 -0
  58. package/dist/models/agent-storage.d.ts +9 -0
  59. package/dist/models/agent-storage.js +3 -0
  60. package/dist/models/agent-storage.js.map +1 -0
  61. package/dist/models/did.d.ts +19 -0
  62. package/dist/models/did.js +64 -0
  63. package/dist/models/did.js.map +1 -0
  64. package/dist/models/transports/ami-transport.d.ts +30 -0
  65. package/dist/models/transports/ami-transport.js +184 -0
  66. package/dist/models/transports/ami-transport.js.map +1 -0
  67. package/dist/models/transports/connectable-transport.d.ts +25 -0
  68. package/dist/models/transports/connectable-transport.js +26 -0
  69. package/dist/models/transports/connectable-transport.js.map +1 -0
  70. package/dist/models/transports/dwn-transport.d.ts +32 -0
  71. package/dist/models/transports/dwn-transport.js +192 -0
  72. package/dist/models/transports/dwn-transport.js.map +1 -0
  73. package/dist/models/transports/messaging-transport.d.ts +3 -0
  74. package/dist/models/transports/messaging-transport.js +3 -0
  75. package/dist/models/transports/messaging-transport.js.map +1 -0
  76. package/dist/models/transports/transport.d.ts +30 -0
  77. package/dist/models/transports/transport.js +8 -0
  78. package/dist/models/transports/transport.js.map +1 -0
  79. package/dist/models/transports/websocket-client-transport.d.ts +5 -0
  80. package/dist/models/transports/websocket-client-transport.js +34 -0
  81. package/dist/models/transports/websocket-client-transport.js.map +1 -0
  82. package/dist/models/transports/websocket-server-transport.d.ts +7 -0
  83. package/dist/models/transports/websocket-server-transport.js +22 -0
  84. package/dist/models/transports/websocket-server-transport.js.map +1 -0
  85. package/dist/models/transports/websocket-transport.d.ts +30 -0
  86. package/dist/models/transports/websocket-transport.js +85 -0
  87. package/dist/models/transports/websocket-transport.js.map +1 -0
  88. package/dist/models/vc-storage.d.ts +8 -0
  89. package/dist/models/vc-storage.js +3 -0
  90. package/dist/models/vc-storage.js.map +1 -0
  91. package/dist/plugins/iplugin.d.ts +17 -0
  92. package/dist/plugins/iplugin.js +3 -0
  93. package/dist/plugins/iplugin.js.map +1 -0
  94. package/dist/plugins/istatus-list-plugin.d.ts +14 -0
  95. package/dist/plugins/istatus-list-plugin.js +3 -0
  96. package/dist/plugins/istatus-list-plugin.js.map +1 -0
  97. package/dist/plugins/ivc-interceptor-plugin.d.ts +9 -0
  98. package/dist/plugins/ivc-interceptor-plugin.js +3 -0
  99. package/dist/plugins/ivc-interceptor-plugin.js.map +1 -0
  100. package/dist/plugins/plugin-dispatcher.d.ts +6 -0
  101. package/dist/plugins/plugin-dispatcher.js +20 -0
  102. package/dist/plugins/plugin-dispatcher.js.map +1 -0
  103. package/dist/transport/transport.d.ts +43 -0
  104. package/dist/transport/transport.js +110 -0
  105. package/dist/transport/transport.js.map +1 -0
  106. package/dist/utils/index.d.ts +1 -0
  107. package/dist/utils/index.js +15 -0
  108. package/dist/utils/index.js.map +1 -0
  109. package/dist/utils/lite-event.d.ts +25 -0
  110. package/dist/utils/lite-event.js +37 -0
  111. package/dist/utils/lite-event.js.map +1 -0
  112. package/dist/vc/models/credentia-flow.d.ts +4 -0
  113. package/dist/vc/models/credentia-flow.js +9 -0
  114. package/dist/vc/models/credentia-flow.js.map +1 -0
  115. package/dist/vc/models/credential-request.d.ts +3 -0
  116. package/dist/vc/models/credential-request.js +3 -0
  117. package/dist/vc/models/credential-request.js.map +1 -0
  118. package/dist/vc/models/vc-create-key-request.d.ts +4 -0
  119. package/dist/vc/models/vc-create-key-request.js +3 -0
  120. package/dist/vc/models/vc-create-key-request.js.map +1 -0
  121. package/dist/vc/models/waci-message.d.ts +3 -0
  122. package/dist/vc/models/waci-message.js +8 -0
  123. package/dist/vc/models/waci-message.js.map +1 -0
  124. package/dist/vc/protocols/openid-protocol.d.ts +161 -0
  125. package/dist/vc/protocols/openid-protocol.js +126 -0
  126. package/dist/vc/protocols/openid-protocol.js.map +1 -0
  127. package/dist/vc/protocols/vc-protocol.d.ts +106 -0
  128. package/dist/vc/protocols/vc-protocol.js +37 -0
  129. package/dist/vc/protocols/vc-protocol.js.map +1 -0
  130. package/dist/vc/protocols/waci-protocol.d.ts +183 -0
  131. package/dist/vc/protocols/waci-protocol.js +553 -0
  132. package/dist/vc/protocols/waci-protocol.js.map +1 -0
  133. package/dist/vc/vc-setup/vc-setup.d.ts +0 -0
  134. package/dist/vc/vc-setup/vc-setup.js +1 -0
  135. package/dist/vc/vc-setup/vc-setup.js.map +1 -0
  136. package/dist/vc/vc.d.ts +225 -0
  137. package/dist/vc/vc.js +329 -0
  138. package/dist/vc/vc.js.map +1 -0
  139. package/package.json +2 -2
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Messaging = void 0;
4
+ const did_core_1 = require("@extrimian/did-core");
5
+ const kms_core_1 = require("@extrimian/kms-core");
6
+ const did_1 = require("../models/did");
7
+ class Messaging {
8
+ constructor(args) {
9
+ this.kms = args.kms;
10
+ this.resolver = args.resolver;
11
+ this.registry = args.registry;
12
+ this.identity = args.identity;
13
+ this.transport = args.transport;
14
+ }
15
+ async packMessage(params) {
16
+ var _a, _b;
17
+ if (!Array.isArray(params.to)) {
18
+ params.to = [params.to];
19
+ }
20
+ const myDID = ((_a = params.from) === null || _a === void 0 ? void 0 : _a.value) || this.identity.getDIDs().find(x => params.message.from == x) || this.identity.getOperationalDID().value;
21
+ if (!myDID) {
22
+ throw new Error(`Message from ${(_b = params.message) === null || _b === void 0 ? void 0 : _b.from} is not a DID managed by this agent. Please check message.from`);
23
+ }
24
+ const myDIDDocument = await this.resolver.resolve(did_1.DID.from(myDID));
25
+ const myKeyAgreements = did_core_1.DIDDocumentUtils.getVerificationMethodsByType(myDIDDocument, did_core_1.VerificationMethodTypes.X25519KeyAgreementKey2019);
26
+ const didCommV2Keys = await this.kms.getPublicKeysBySuiteType(kms_core_1.Suite.DIDCommV2);
27
+ const keyToSign = myKeyAgreements.find(x => didCommV2Keys.some(y => y.x == x.publicKeyJwk.x && y.y == x.publicKeyJwk.y));
28
+ const receiptVerificationMethods = await Promise.all(params.to.map(async (did) => {
29
+ const targetDIDDocument = await this.resolver.resolve(did);
30
+ const targetKeyAgreements = did_core_1.DIDDocumentUtils.getVerificationMethodsByType(targetDIDDocument, did_core_1.VerificationMethodTypes.X25519KeyAgreementKey2019);
31
+ return targetKeyAgreements;
32
+ // return `${this.getFullVerificationMethodId(targetKeyAgreements[0].id, did)}`;
33
+ }));
34
+ if (params.messageManagerCompatible) {
35
+ const toPublickKeyHex = kms_core_1.BaseConverter.convert(receiptVerificationMethods[0][0].publicKeyJwk, kms_core_1.Base.JWK, kms_core_1.Base.Hex, receiptVerificationMethods[0][0].type);
36
+ const message = await this.kms.packv2(myKeyAgreements[0].publicKeyJwk, this.getFullVerificationMethodId(myKeyAgreements[0].id, this.identity.getOperationalDID()), [toPublickKeyHex], params.message, "authcrypt");
37
+ return { packedMessage: JSON.parse(message.message) };
38
+ }
39
+ const result = await this.kms.packDIDCommV2({
40
+ senderVerificationMethodId: this.getFullVerificationMethodId(keyToSign.id, did_1.DID.from(myDID)),
41
+ recipientVerificationMethodIds: receiptVerificationMethods.map(vm => `${this.getFullVerificationMethodId(vm[0].id, did_1.DID.from(vm[0].controller))}`),
42
+ message: params.message,
43
+ packing: "authcrypt"
44
+ });
45
+ return result;
46
+ }
47
+ async unpackMessage(params) {
48
+ if (typeof params.message === "string") {
49
+ params.message = JSON.parse(params.message);
50
+ }
51
+ const myKid = params.message.recipients.find(x => this.identity.getDIDs().some(did => did == did_1.DID.from(x.header.kid).value));
52
+ if (!myKid) {
53
+ const didDocument = await this.resolver.resolve(this.identity.getOperationalDID());
54
+ const myKeyAgreements = did_core_1.DIDDocumentUtils.getVerificationMethodsByType(didDocument, did_core_1.VerificationMethodTypes.X25519KeyAgreementKey2019);
55
+ const key = myKeyAgreements[0];
56
+ const packedMessage = await this.kms.unpackv2(key.publicKeyJwk, { message: params.message });
57
+ return packedMessage.message;
58
+ //TODO Arrojar excepción cuando se implemente el Backend Agent y sacar esto.
59
+ }
60
+ const unpackedMessage = await this.kms.unpackvDIDCommV2(did_1.DID.from(myKid.header.kid).value, params.message);
61
+ return unpackedMessage.message;
62
+ }
63
+ async sendMessage(params) {
64
+ if (!params.packing) {
65
+ params.packing = "authcrypt";
66
+ }
67
+ if (params.packing != "none") {
68
+ params.message = (await this.packMessage({
69
+ to: params.to,
70
+ from: params.from,
71
+ message: params.message
72
+ })).packedMessage;
73
+ }
74
+ await this.transport.sendMessage({
75
+ message: params.message,
76
+ from: params.from,
77
+ to: params.to,
78
+ preferredTransport: params.preferredTransport
79
+ });
80
+ }
81
+ getFullVerificationMethodId(verificationMethodId, did) {
82
+ if (verificationMethodId.indexOf(did.value) > -1) {
83
+ return verificationMethodId;
84
+ }
85
+ return `${did.value}#${verificationMethodId.replace("#", "")}`;
86
+ }
87
+ }
88
+ exports.Messaging = Messaging;
89
+ //# sourceMappingURL=messaging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/messaging/messaging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { IJWK, IKeyPair, IKMS } from '@extrimian/kms-core';
2
+ import { IdentityDataShareBehavior, IdentityExportResult } from '../data-share-behaviours/identity-data-share-behavior';
3
+ import { IAgentRegistry, KeyDefinition, ServiceDefinition, VMKey } from './agent-registry';
4
+ import { IAgentResolver } from './agent-resolver';
5
+ import { IAgentStorage } from './agent-storage';
6
+ import { DID } from './did';
7
+ export declare class AgentIdentity {
8
+ private agentStorage;
9
+ private kms;
10
+ private resolver;
11
+ private registry;
12
+ private _dids;
13
+ private _did;
14
+ private _onOperationalDIDChanged;
15
+ get operationalDIDChanged(): import("../utils/lite-event").ILiteEvent<{
16
+ did: DID;
17
+ }>;
18
+ private _onIdentityInitialized;
19
+ get identityInitialized(): import("../utils/lite-event").ILiteEvent<void>;
20
+ private readonly onDidCreated;
21
+ get didCreated(): import("../utils/lite-event").ILiteEvent<{
22
+ did: DID;
23
+ }>;
24
+ constructor(params: {
25
+ agentStorage?: IAgentStorage;
26
+ resolver: IAgentResolver;
27
+ registry: IAgentRegistry;
28
+ kms: IKMS;
29
+ });
30
+ private _initialized;
31
+ get initialized(): boolean;
32
+ initialize(params?: {
33
+ operationalDID?: DID;
34
+ resolver: IAgentResolver;
35
+ registry: IAgentRegistry;
36
+ }): Promise<void>;
37
+ addDID(params: {
38
+ did: DID;
39
+ }): Promise<void>;
40
+ setOperationalDID(did: DID): Promise<void>;
41
+ getOperationalDID(): DID;
42
+ getDIDs(): string[];
43
+ createNewDID(): Promise<DID>;
44
+ createNewDID(params: {
45
+ preventCredentialCreation?: boolean;
46
+ dwnUrl?: string | string[];
47
+ services?: ServiceDefinition[];
48
+ keysToCreate?: KeyDefinition[];
49
+ createDefaultKeys?: boolean;
50
+ keysToImport?: {
51
+ id: string;
52
+ vmKey: VMKey;
53
+ publicKeyJWK: IJWK;
54
+ secrets: IKeyPair;
55
+ }[];
56
+ didMethod?: string;
57
+ alsoKnownAs?: string[];
58
+ }): Promise<DID>;
59
+ checkDIDPublished(shortDid: DID, setAsOperationalAfterDIDPublish?: boolean): Promise<boolean>;
60
+ waitForDIDPublish(shortDid: DID, setAsOperationalAfterDIDPublish?: boolean): Promise<void>;
61
+ updateDID(params?: {
62
+ did?: DID;
63
+ dwnUrl?: {
64
+ id?: string;
65
+ url: string;
66
+ }[];
67
+ idsOfServiceToRemove?: string[];
68
+ controllersToAdd?: IJWK[];
69
+ servicesToAdd?: ServiceDefinition[];
70
+ verificationMethodsToAdd?: KeyDefinition[];
71
+ updateKeysToRemove?: {
72
+ publicKeys?: IJWK[];
73
+ updateCommitment?: string[];
74
+ };
75
+ idsOfVerificationMethodsToRemove?: string[];
76
+ alsoKnownAsToAdd?: string[];
77
+ alsoKnownAsToRemove?: string[];
78
+ }): Promise<void>;
79
+ exportKeys(params: {
80
+ exportBehavior: IdentityDataShareBehavior;
81
+ }): Promise<IdentityExportResult>;
82
+ importKeys(params: {
83
+ exportResult: IdentityExportResult;
84
+ exportBehavior: IdentityDataShareBehavior;
85
+ }): Promise<void>;
86
+ }
@@ -0,0 +1,400 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentIdentity = void 0;
4
+ const did_core_1 = require("@extrimian/did-core");
5
+ const kms_core_1 = require("@extrimian/kms-core");
6
+ const lite_event_1 = require("../utils/lite-event");
7
+ const agent_registry_1 = require("./agent-registry");
8
+ const did_1 = require("./did");
9
+ const modena_sdk_1 = require("@extrimian/modena-sdk");
10
+ const AGENT_DID_KEY = 'agent-did';
11
+ const OPERATIONAL_DID_KEY = 'operational-did';
12
+ class AgentIdentity {
13
+ get operationalDIDChanged() {
14
+ return this._onOperationalDIDChanged.expose();
15
+ }
16
+ get identityInitialized() {
17
+ return this._onIdentityInitialized.expose();
18
+ }
19
+ get didCreated() {
20
+ return this.onDidCreated.expose();
21
+ }
22
+ constructor(params) {
23
+ this._dids = new Array();
24
+ this._onOperationalDIDChanged = new lite_event_1.LiteEvent();
25
+ this._onIdentityInitialized = new lite_event_1.LiteEvent();
26
+ this.onDidCreated = new lite_event_1.LiteEvent();
27
+ this.agentStorage = params.agentStorage;
28
+ this.kms = params.kms;
29
+ this.resolver = params.resolver;
30
+ this.registry = params.registry;
31
+ }
32
+ get initialized() {
33
+ return this._initialized;
34
+ }
35
+ async initialize(params) {
36
+ var _a;
37
+ this.resolver = params.resolver;
38
+ this.registry = params.registry;
39
+ this._dids =
40
+ (await this.agentStorage.get(AGENT_DID_KEY)) || new Array();
41
+ if (params.operationalDID) {
42
+ if (this._dids.indexOf(params.operationalDID.value) == -1) {
43
+ throw new Error(`Operational DID ${params.operationalDID} not exists on agent. You must import the did with its private keys`);
44
+ }
45
+ await this.setOperationalDID(params.operationalDID);
46
+ }
47
+ else {
48
+ const did = (await this.agentStorage.get(OPERATIONAL_DID_KEY));
49
+ this._did = did != null ? did_1.DID.from(did) : null;
50
+ if (!this._did && this._dids && this._dids.length > 0) {
51
+ await this.setOperationalDID(did_1.DID.from(this._dids[0]));
52
+ }
53
+ else if (this._did) {
54
+ await this.setOperationalDID(this._did);
55
+ }
56
+ if ((_a = this._did) === null || _a === void 0 ? void 0 : _a.isLongDID()) {
57
+ const shortDID = this.getDIDs().map(x => did_1.DID.from(x)).find(x => this._did.isLongDIDFor(x));
58
+ if (shortDID) {
59
+ const result = await this.checkDIDPublished(shortDID, true);
60
+ if (!result) {
61
+ this.waitForDIDPublish(shortDID, true);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ this._initialized = true;
67
+ this._onIdentityInitialized.trigger();
68
+ }
69
+ async addDID(params) {
70
+ if (!this._did) {
71
+ this._did = params.did;
72
+ }
73
+ if (!this._dids[params.did.value]) {
74
+ this._dids.push(params.did.value);
75
+ await this.agentStorage.add(AGENT_DID_KEY, this._dids);
76
+ }
77
+ }
78
+ async setOperationalDID(did) {
79
+ if (!did) {
80
+ throw new Error("Operational DID to set can't be null or undefined.");
81
+ }
82
+ if (this._dids.indexOf(did.value) == -1) {
83
+ throw new Error('Operational DID to set must be defined on dids of the identity. You must import the did with its private keys');
84
+ }
85
+ const auxDid = this._did;
86
+ this._did = did;
87
+ await this.agentStorage.add(OPERATIONAL_DID_KEY, this._did.value);
88
+ if (auxDid != did) {
89
+ this._onOperationalDIDChanged.trigger({ did });
90
+ }
91
+ }
92
+ getOperationalDID() {
93
+ return this._did;
94
+ }
95
+ getDIDs() {
96
+ return [...this._dids];
97
+ }
98
+ async createNewDID(params) {
99
+ var _a, _b, _c, _d;
100
+ params = params || {};
101
+ if (!params.keysToCreate || params.createDefaultKeys) {
102
+ if (!params.keysToCreate) {
103
+ params.keysToCreate = new Array();
104
+ }
105
+ if (!params.preventCredentialCreation) {
106
+ params.keysToCreate.push({ id: 'vc-bbsbls', vmKey: agent_registry_1.VMKey.VC });
107
+ }
108
+ params.keysToCreate.push({ id: 'didcomm', vmKey: agent_registry_1.VMKey.DIDComm });
109
+ params.keysToCreate.push({ id: 'rsa', vmKey: agent_registry_1.VMKey.RSA });
110
+ }
111
+ const updateKey = await this.kms.create(kms_core_1.Suite.ES256k);
112
+ const recoveryKey = await this.kms.create(kms_core_1.Suite.ES256k);
113
+ if (params.keysToImport) {
114
+ for (let ktu of params.keysToImport) {
115
+ await this.kms.import({
116
+ publicKeyHex: kms_core_1.BaseConverter.convert(ktu.publicKeyJWK, kms_core_1.Base.JWK, kms_core_1.Base.Hex, ktu.secrets.keyType),
117
+ secret: ktu.secrets,
118
+ });
119
+ }
120
+ }
121
+ const didCommKeys = [...await Promise.all(params.keysToCreate
122
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.DIDComm)
123
+ .map(async (x) => ({
124
+ id: x.id,
125
+ pbk: await this.kms.create(kms_core_1.Suite.DIDCommV2),
126
+ }))), ...(_a = (params.keysToImport || [])) === null || _a === void 0 ? void 0 : _a.filter(x => x.vmKey == agent_registry_1.VMKey.DIDComm).map(x => ({
127
+ id: x.id,
128
+ pbk: { publicKeyJWK: x.publicKeyJWK }
129
+ }))];
130
+ const bbsbls2020Keys = [...await Promise.all(params.keysToCreate
131
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.VC)
132
+ .map(async (x) => ({
133
+ id: x.id,
134
+ pbk: await this.kms.create(kms_core_1.Suite.Bbsbls2020),
135
+ }))),
136
+ ...(_b = (params.keysToImport || [])) === null || _b === void 0 ? void 0 : _b.filter(x => x.vmKey == agent_registry_1.VMKey.VC).map(x => ({
137
+ id: x.id,
138
+ pbk: { publicKeyJWK: x.publicKeyJWK }
139
+ }))];
140
+ const rsaKeys = [...await Promise.all(params.keysToCreate
141
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.RSA)
142
+ .map(async (x) => ({
143
+ id: x.id,
144
+ pbk: await this.kms.create(kms_core_1.Suite.RsaSignature2018),
145
+ }))),
146
+ ...(_c = (params.keysToImport || [])) === null || _c === void 0 ? void 0 : _c.filter(x => x.vmKey == agent_registry_1.VMKey.RSA).map(x => ({
147
+ id: x.id,
148
+ pbk: { publicKeyJWK: x.publicKeyJWK }
149
+ }))];
150
+ const ecdskeys = [...await Promise.all(params.keysToCreate
151
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.ES256k)
152
+ .map(async (x) => ({
153
+ id: x.id,
154
+ pbk: await this.kms.create(kms_core_1.Suite.ES256k),
155
+ }))),
156
+ ...(_d = (params.keysToImport || [])) === null || _d === void 0 ? void 0 : _d.filter(x => x.vmKey == agent_registry_1.VMKey.ES256k).map(x => ({
157
+ id: x.id,
158
+ pbk: { publicKeyJWK: x.publicKeyJWK }
159
+ }))];
160
+ if (!params.services) {
161
+ params.services = new Array();
162
+ }
163
+ if (params.dwnUrl) {
164
+ params.services.push({
165
+ id: 'dwn-default',
166
+ type: 'DecentralizedWebNode',
167
+ serviceEndpoint: {
168
+ nodes: typeof params.dwnUrl === 'string' ? [params.dwnUrl] : params.dwnUrl,
169
+ },
170
+ });
171
+ }
172
+ const response = await this.registry.createDID({
173
+ didMethod: params.didMethod,
174
+ recoveryKeys: [recoveryKey.publicKeyJWK],
175
+ updateKeys: [updateKey.publicKeyJWK],
176
+ services: params.services,
177
+ alsoKnownAs: params.alsoKnownAs,
178
+ verificationMethods: didCommKeys
179
+ .map((x) => ({
180
+ id: x.id,
181
+ publicKeyJwk: x.pbk.publicKeyJWK,
182
+ purpose: [new did_core_1.KeyAgreementPurpose()],
183
+ type: 'X25519KeyAgreementKey2019',
184
+ controller: this.getOperationalDID(),
185
+ }))
186
+ .concat(bbsbls2020Keys
187
+ .map((x) => ({
188
+ id: x.id,
189
+ publicKeyJwk: x.pbk.publicKeyJWK,
190
+ purpose: [new did_core_1.AssertionMethodPurpose()],
191
+ type: 'Bls12381G1Key2020',
192
+ controller: this.getOperationalDID(),
193
+ }))
194
+ .concat(rsaKeys.map((x) => ({
195
+ id: x.id,
196
+ publicKeyJwk: x.pbk.publicKeyJWK,
197
+ purpose: [new did_core_1.AuthenticationPurpose()],
198
+ type: 'RsaSignature2018',
199
+ controller: this.getOperationalDID(),
200
+ })))
201
+ .concat(ecdskeys.map((x) => ({
202
+ id: x.id,
203
+ publicKeyJwk: x.pbk.publicKeyJWK,
204
+ purpose: [new did_core_1.AuthenticationPurpose()],
205
+ type: 'EcdsaSecp256k1VerificationKey2019',
206
+ controller: this.getOperationalDID(),
207
+ }))))
208
+ });
209
+ if ('longDid' in response) {
210
+ const sidetreeResponse = response;
211
+ this.addDID({ did: did_1.DID.from(sidetreeResponse.longDid) });
212
+ const h = (args) => {
213
+ if (args.did.value == response.did) {
214
+ this.onDidCreated.off(h);
215
+ if (this.getOperationalDID().isEqual(did_1.DID.from(sidetreeResponse.longDid))) {
216
+ this.setOperationalDID(args.did);
217
+ }
218
+ }
219
+ };
220
+ await this.setOperationalDID(did_1.DID.from(sidetreeResponse.longDid));
221
+ this.onDidCreated.on(h);
222
+ }
223
+ this.addDID({ did: did_1.DID.from(response.did) });
224
+ this.waitForDIDPublish(did_1.DID.from(response.did));
225
+ return did_1.DID.from(response.did);
226
+ }
227
+ async checkDIDPublished(shortDid, setAsOperationalAfterDIDPublish = false) {
228
+ const didDocument = await this.resolver.resolve(shortDid);
229
+ if (didDocument) {
230
+ if (setAsOperationalAfterDIDPublish) {
231
+ this.setOperationalDID(shortDid);
232
+ }
233
+ this.onDidCreated.trigger({ did: shortDid });
234
+ return true;
235
+ }
236
+ return false;
237
+ }
238
+ async waitForDIDPublish(shortDid, setAsOperationalAfterDIDPublish = false) {
239
+ let interval = null;
240
+ const pollFunc = () => new Promise(async (resolve, reject) => {
241
+ if (await this.checkDIDPublished(shortDid, setAsOperationalAfterDIDPublish)) {
242
+ if (interval) {
243
+ clearInterval(interval);
244
+ }
245
+ }
246
+ resolve();
247
+ });
248
+ const result = await this.checkDIDPublished(shortDid, setAsOperationalAfterDIDPublish);
249
+ if (result)
250
+ return;
251
+ interval = setInterval(async () => {
252
+ await pollFunc();
253
+ }, 5000);
254
+ }
255
+ async updateDID(params) {
256
+ params.did = params.did || this.getOperationalDID();
257
+ const didDoc = await this.resolver.resolveWithMetdata(params.did);
258
+ const keys = (await this.kms.getPublicKeysBySuiteType(kms_core_1.Suite.ES256k)).map(jwk => ({
259
+ jwk,
260
+ updateCommitmentHash: modena_sdk_1.UpdateCommitmentUtils.getUpdateCommitmentHash(jwk),
261
+ }));
262
+ const updateKey = keys.find(x => didDoc.didDocumentMetadata.method.updateCommitment.some(y => y == x.updateCommitmentHash));
263
+ const newUpdateKey = await this.kms.create(kms_core_1.Suite.ES256k);
264
+ params.verificationMethodsToAdd = params.verificationMethodsToAdd || [];
265
+ const didCommKeys = await Promise.all(params.verificationMethodsToAdd
266
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.DIDComm)
267
+ .map(async (x) => ({
268
+ id: x.id,
269
+ pbk: await this.kms.create(kms_core_1.Suite.DIDCommV2),
270
+ })));
271
+ const bbsbls2020Keys = await Promise.all(params.verificationMethodsToAdd
272
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.VC)
273
+ .map(async (x) => ({
274
+ id: x.id,
275
+ pbk: await this.kms.create(kms_core_1.Suite.Bbsbls2020),
276
+ })));
277
+ const rsaKeys = await Promise.all(params.verificationMethodsToAdd
278
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.RSA)
279
+ .map(async (x) => ({
280
+ id: x.id,
281
+ pbk: await this.kms.create(kms_core_1.Suite.RsaSignature2018),
282
+ })));
283
+ const es256kKeys = await Promise.all(params.verificationMethodsToAdd
284
+ .filter((x) => x.vmKey == agent_registry_1.VMKey.ES256k)
285
+ .map(async (x) => ({
286
+ id: x.id,
287
+ pbk: await this.kms.create(kms_core_1.Suite.ES256k),
288
+ })));
289
+ let time = Date.now();
290
+ if (params.dwnUrl) {
291
+ for (let dwn of params.dwnUrl) {
292
+ dwn.id = dwn.id || `dwn-service-${time++}`;
293
+ params.servicesToAdd = params.servicesToAdd || new Array;
294
+ params.servicesToAdd.push({
295
+ id: dwn.id,
296
+ type: 'DecentralizedWebNode',
297
+ serviceEndpoint: {
298
+ nodes: typeof params.dwnUrl === 'string' ? [params.dwnUrl] : params.dwnUrl,
299
+ },
300
+ });
301
+ }
302
+ }
303
+ await this.registry.updateDIDDocument({
304
+ did: params.did,
305
+ updatePublicKey: updateKey.jwk,
306
+ kms: this.kms,
307
+ documentMetadata: didDoc.didDocumentMetadata,
308
+ newUpdateKeys: [...(params.controllersToAdd || []), newUpdateKey.publicKeyJWK],
309
+ servicesToAdd: params.servicesToAdd,
310
+ idsOfServiceToRemove: params.idsOfServiceToRemove,
311
+ idsOfVerificationMethodsToRemove: params.idsOfVerificationMethodsToRemove,
312
+ updateKeysToRemove: params.updateKeysToRemove,
313
+ alsoKnownAsToAdd: params.alsoKnownAsToAdd,
314
+ alsoKnownAsToRemove: params.alsoKnownAsToRemove,
315
+ verificationMethodsToAdd: didCommKeys
316
+ .map((x) => ({
317
+ id: x.id,
318
+ publicKeyJwk: x.pbk.publicKeyJWK,
319
+ purpose: [new did_core_1.KeyAgreementPurpose()],
320
+ type: 'X25519KeyAgreementKey2019',
321
+ controller: this.getOperationalDID(),
322
+ }))
323
+ .concat(bbsbls2020Keys
324
+ .map((x) => ({
325
+ id: x.id,
326
+ publicKeyJwk: x.pbk.publicKeyJWK,
327
+ purpose: [new did_core_1.AssertionMethodPurpose()],
328
+ type: 'Bls12381G1Key2020',
329
+ controller: this.getOperationalDID(),
330
+ }))
331
+ .concat(rsaKeys.map((x) => ({
332
+ id: x.id,
333
+ publicKeyJwk: x.pbk.publicKeyJWK,
334
+ purpose: [new did_core_1.AuthenticationPurpose()],
335
+ type: 'RsaSignature2018',
336
+ controller: this.getOperationalDID(),
337
+ })))
338
+ .concat(es256kKeys.map((x) => ({
339
+ id: x.id,
340
+ publicKeyJwk: x.pbk.publicKeyJWK,
341
+ purpose: [new did_core_1.AuthenticationPurpose()],
342
+ type: 'EcdsaSecp256k1VerificationKey2019',
343
+ controller: this.getOperationalDID(),
344
+ })))),
345
+ // verificationMethodsToAdd: didCommKeys
346
+ // .map((x) => ({
347
+ // id: x.id,
348
+ // publicKeyJwk: x.pbk.publicKeyJWK,
349
+ // purpose: [new KeyAgreementPurpose()],
350
+ // type: 'X25519KeyAgreementKey2019',
351
+ // controller: this.getOperationalDID(),
352
+ // }))
353
+ // .concat(
354
+ // bbsbls2020Keys
355
+ // .map((x) => ({
356
+ // id: x.id,
357
+ // publicKeyJwk: x.pbk.publicKeyJWK,
358
+ // purpose: [new AssertionMethodPurpose()],
359
+ // type: 'Bls12381G1Key2020',
360
+ // controller: this.getOperationalDID(),
361
+ // }))
362
+ // .concat(
363
+ // rsaKeys.map((x) => ({
364
+ // id: x.id,
365
+ // publicKeyJwk: x.pbk.publicKeyJWK,
366
+ // purpose: [new AuthenticationPurpose()],
367
+ // type: 'RsaSignature2018',
368
+ // controller: this.getOperationalDID(),
369
+ // }))
370
+ // )
371
+ // ),
372
+ });
373
+ }
374
+ async exportKeys(params) {
375
+ const keys = await this.kms.getAllPublicKeys();
376
+ const exportResult = await params.exportBehavior.export({
377
+ dids: this._dids,
378
+ operationalDID: this.getOperationalDID().value,
379
+ keys: await Promise.all(keys.map(async (x) => ({
380
+ publicKeyHex: kms_core_1.BaseConverter.convert(x, kms_core_1.Base.JWK, kms_core_1.Base.Hex, x.kty),
381
+ secret: await this.kms.export(x),
382
+ }))),
383
+ });
384
+ return exportResult;
385
+ }
386
+ async importKeys(params) {
387
+ const importResult = await params.exportBehavior.import(params.exportResult);
388
+ if (importResult.dids.length == 0)
389
+ throw new Error('agent importKeys requires at least one did in exportResult');
390
+ await Promise.all(importResult.keys.map(async (key) => this.kms.import({
391
+ publicKeyHex: key.publicKeyHex,
392
+ secret: key.secret,
393
+ })));
394
+ this._dids = importResult.dids;
395
+ await this.agentStorage.add(AGENT_DID_KEY, this._dids);
396
+ await this.setOperationalDID(did_1.DID.from(importResult.operationalDID || this._dids[0]));
397
+ }
398
+ }
399
+ exports.AgentIdentity = AgentIdentity;
400
+ //# sourceMappingURL=agent-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-identity.js","sourceRoot":"","sources":["../../src/models/agent-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { IJWK, IKMS } from "@extrimian/kms-core";
2
+ import { AgentIdentity } from "./agent-identity";
3
+ import { IAgentResolver } from "./agent-resolver";
4
+ export declare class AgentKMS {
5
+ private kms;
6
+ private resolver;
7
+ private identity;
8
+ constructor(opts: {
9
+ kms: IKMS;
10
+ resolver: IAgentResolver;
11
+ identity: AgentIdentity;
12
+ });
13
+ signMessage(params: {
14
+ content: string;
15
+ publicKey?: IJWK;
16
+ }): Promise<{
17
+ signature: string;
18
+ publicKey: IJWK;
19
+ verificationMethodId: string;
20
+ }>;
21
+ verifyMessage(params: {
22
+ content: string;
23
+ publicKey: IJWK;
24
+ signature: string;
25
+ } | {
26
+ content: string;
27
+ verificationMethodId: string;
28
+ signature: string;
29
+ }): Promise<{
30
+ verified: true;
31
+ } | {
32
+ verified: false;
33
+ result: VerifiyJWSResult;
34
+ signedContent: string;
35
+ error?: any;
36
+ }>;
37
+ }
38
+ export declare enum VerifiyJWSResult {
39
+ InvalidContent = "invalid-content",
40
+ UnexpectedError = "invalid-content",
41
+ InvalidSignature = "invalid-signature"
42
+ }