@enbox/dwn-sdk-js 0.4.14 → 0.4.15

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 (50) hide show
  1. package/dist/browser.mjs +1 -1
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/src/core/constants.js +2 -0
  4. package/dist/esm/src/core/constants.js.map +1 -1
  5. package/dist/esm/src/core/dwn-error.js +2 -0
  6. package/dist/esm/src/core/dwn-error.js.map +1 -1
  7. package/dist/esm/src/core/protocol-authorization-validation.js +9 -0
  8. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  9. package/dist/esm/src/handlers/protocols-configure.js +157 -7
  10. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  11. package/dist/esm/src/index.js +2 -2
  12. package/dist/esm/src/index.js.map +1 -1
  13. package/dist/esm/src/protocols/encryption.js +41 -10
  14. package/dist/esm/src/protocols/encryption.js.map +1 -1
  15. package/dist/esm/src/types/protocols-types.js.map +1 -1
  16. package/dist/esm/tests/features/protocol-composition.spec.js +5 -1
  17. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  18. package/dist/esm/tests/handlers/protocols-configure.spec.js +244 -1
  19. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  20. package/dist/esm/tests/handlers/records-read.spec.js +2 -1
  21. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  22. package/dist/esm/tests/handlers/records-write.spec.js +24 -1
  23. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  24. package/dist/esm/tests/protocols/encryption.spec.js +3 -1
  25. package/dist/esm/tests/protocols/encryption.spec.js.map +1 -1
  26. package/dist/types/src/core/constants.d.ts +2 -0
  27. package/dist/types/src/core/constants.d.ts.map +1 -1
  28. package/dist/types/src/core/dwn-error.d.ts +2 -0
  29. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  30. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  31. package/dist/types/src/handlers/protocols-configure.d.ts +17 -0
  32. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  33. package/dist/types/src/index.d.ts +2 -2
  34. package/dist/types/src/index.d.ts.map +1 -1
  35. package/dist/types/src/protocols/encryption.d.ts +3 -1
  36. package/dist/types/src/protocols/encryption.d.ts.map +1 -1
  37. package/dist/types/src/types/protocols-types.d.ts +2 -1
  38. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  39. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  40. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
  41. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  42. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/core/constants.ts +2 -0
  45. package/src/core/dwn-error.ts +2 -0
  46. package/src/core/protocol-authorization-validation.ts +14 -0
  47. package/src/handlers/protocols-configure.ts +236 -7
  48. package/src/index.ts +3 -0
  49. package/src/protocols/encryption.ts +54 -11
  50. package/src/types/protocols-types.ts +2 -1
@@ -16,6 +16,8 @@ export const PERMISSIONS_PROTOCOL_URI = 'https://identity.foundation/dwn/permiss
16
16
  * The DWN Encryption protocol URI.
17
17
  */
18
18
  export const ENCRYPTION_PROTOCOL_URI = 'https://identity.foundation/dwn/protocols/encryption';
19
+ export const ENCRYPTION_PROTOCOL_GRANT_KEY_PATH = 'grantKey';
20
+ export const ENCRYPTION_PROTOCOL_WRAPPED_GRANT_KEY_PATH = 'wrappedGrantKey';
19
21
  /**
20
22
  * Reserved virtual protocol path root for source-protocol-native encryption
21
23
  * control records.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,6CAA6C,CAAC;AAEtF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,sDAAsD,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,4BAA4B,WAAW,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,4BAA4B,WAAW,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,uEAAuE,CAAC;AAE9H;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,uEAAuE,CAAC;AAE9H;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,gCAAgC;IAChC,gCAAgC;CACxB,CAAC;AAIX;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAgC;IACtE,OAAO,YAAY,KAAK,SAAS;QAC9B,wBAA8C,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,6CAA6C,CAAC;AAEtF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,sDAAsD,CAAC;AAC9F,MAAM,CAAC,MAAM,kCAAkC,GAAG,UAAU,CAAC;AAC7D,MAAM,CAAC,MAAM,0CAA0C,GAAG,iBAAiB,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,4BAA4B,WAAW,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,4BAA4B,WAAW,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,uEAAuE,CAAC;AAE9H;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,uEAAuE,CAAC;AAE9H;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,gCAAgC;IAChC,gCAAgC;CACxB,CAAC;AAIX;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAgC;IACtE,OAAO,YAAY,KAAK,SAAS;QAC9B,wBAA8C,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC3E,CAAC"}
@@ -139,6 +139,7 @@ export var DwnErrorCode;
139
139
  DwnErrorCode["ProtocolAuthorizationIncorrectProtocolPath"] = "ProtocolAuthorizationIncorrectProtocolPath";
140
140
  DwnErrorCode["ProtocolAuthorizationInitialWriteRevalidationNotInitial"] = "ProtocolAuthorizationInitialWriteRevalidationNotInitial";
141
141
  DwnErrorCode["ProtocolAuthorizationDuplicateRoleRecipient"] = "ProtocolAuthorizationDuplicateRoleRecipient";
142
+ DwnErrorCode["ProtocolAuthorizationEncryptionNotAllowed"] = "ProtocolAuthorizationEncryptionNotAllowed";
142
143
  DwnErrorCode["ProtocolAuthorizationEncryptionRequired"] = "ProtocolAuthorizationEncryptionRequired";
143
144
  DwnErrorCode["ProtocolAuthorizationEncryptionKeyAgreementMissing"] = "ProtocolAuthorizationEncryptionKeyAgreementMissing";
144
145
  DwnErrorCode["ProtocolAuthorizationEncryptionProtocolPathEntryMissing"] = "ProtocolAuthorizationEncryptionProtocolPathEntryMissing";
@@ -190,6 +191,7 @@ export var DwnErrorCode;
190
191
  DwnErrorCode["ProtocolsConfigureInvalidEncryptedRoleMissingKeyAgreement"] = "ProtocolsConfigureInvalidEncryptedRoleMissingKeyAgreement";
191
192
  DwnErrorCode["ProtocolsConfigureMissingEncryptedPathKeyAgreement"] = "ProtocolsConfigureMissingEncryptedPathKeyAgreement";
192
193
  DwnErrorCode["ProtocolsConfigureMissingTopLevelKeyAgreement"] = "ProtocolsConfigureMissingTopLevelKeyAgreement";
194
+ DwnErrorCode["ProtocolsConfigureEncryptionPolicyImmutable"] = "ProtocolsConfigureEncryptionPolicyImmutable";
193
195
  DwnErrorCode["ProtocolsConfigureInvalidRecipientOfAction"] = "ProtocolsConfigureInvalidRecipientOfAction";
194
196
  DwnErrorCode["ProtocolsConfigureInvalidRuleSetRecordType"] = "ProtocolsConfigureInvalidRuleSetRecordType";
195
197
  DwnErrorCode["ProtocolsConfigureInvalidTagSchema"] = "ProtocolsConfigureInvalidTagSchema";
@@ -1 +1 @@
1
- {"version":3,"file":"dwn-error.js","sourceRoot":"","sources":["../../../../src/core/dwn-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dwn-error.js","sourceRoot":"","sources":["../../../../src/core/dwn-error.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Records } from '../utils/records.js';
3
3
  import { validateProtocolTags } from '../utils/protocol-tags.js';
4
4
  import { DwnError, DwnErrorCode } from './dwn-error.js';
5
5
  import { Encryption, ROLE_AUDIENCE_DERIVATION_SCHEME } from '../utils/encryption.js';
6
+ import { ENCRYPTION_PROTOCOL_GRANT_KEY_PATH, ENCRYPTION_PROTOCOL_URI } from './constants.js';
6
7
  import { getRoleAudienceContextId, getRuleSetAtPath, getTypeName, parseCrossProtocolRef } from '../utils/protocols.js';
7
8
  import { ProtocolAction, ProtocolRecordLimitStrategy } from '../types/protocols-types.js';
8
9
  /**
@@ -163,6 +164,9 @@ export function verifyType(inboundMessage, protocolTypes, typeName) {
163
164
  if (protocolType.encryptionRequired === true && inboundMessage.encryption === undefined) {
164
165
  throw new DwnError(DwnErrorCode.ProtocolAuthorizationEncryptionRequired, `type '${declaredTypeName}' requires encryption but message has no encryption metadata`);
165
166
  }
167
+ if (protocolType.encryptionRequired !== true && inboundMessage.encryption !== undefined) {
168
+ throw new DwnError(DwnErrorCode.ProtocolAuthorizationEncryptionNotAllowed, `type '${declaredTypeName}' requires plaintext but message has encryption metadata`);
169
+ }
166
170
  return protocolType;
167
171
  }
168
172
  async function verifyProtocolPathEncryptionIfNeeded(tenant, inboundMessage, protocolDefinition, protocolType, validationStateReader) {
@@ -171,6 +175,11 @@ async function verifyProtocolPathEncryptionIfNeeded(tenant, inboundMessage, prot
171
175
  }
172
176
  const ruleSet = getRuleSetAtPath(inboundMessage.descriptor.protocolPath, protocolDefinition.structure);
173
177
  if (ruleSet?.$keyAgreement?.publicKeyJwk === undefined) {
178
+ const usesDynamicCoreRecipientKey = protocolDefinition.protocol === ENCRYPTION_PROTOCOL_URI &&
179
+ inboundMessage.descriptor.protocolPath === ENCRYPTION_PROTOCOL_GRANT_KEY_PATH;
180
+ if (usesDynamicCoreRecipientKey) {
181
+ return;
182
+ }
174
183
  throw new DwnError(DwnErrorCode.ProtocolAuthorizationEncryptionKeyAgreementMissing, `encrypted protocol path '${inboundMessage.descriptor.protocolPath}' has no $keyAgreement`);
175
184
  }
176
185
  const publicKeyJwk = ruleSet.$keyAgreement.publicKeyJwk;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-authorization-validation.js","sourceRoot":"","sources":["../../../../src/core/protocol-authorization-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol-authorization-validation.js","sourceRoot":"","sources":["../../../../src/core/protocol-authorization-validation.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { authenticate } from '../core/auth.js';
2
+ import { isEncryptionControlPath } from '../core/constants.js';
2
3
  import { Message } from '../core/message.js';
3
4
  import { messageReplyFromError } from '../core/message-reply.js';
4
5
  import { ProtocolAuthorization } from '../core/protocol-authorization.js';
5
6
  import { ProtocolsConfigure } from '../interfaces/protocols-configure.js';
6
7
  import { ProtocolsGrantAuthorization } from '../core/protocols-grant-authorization.js';
7
8
  import { RecordsWrite } from '../interfaces/records-write.js';
9
+ import { resolveProtocolTypesForPath } from '../core/protocol-authorization-validation.js';
8
10
  import { StorageController } from '../store/storage-controller.js';
9
11
  import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
10
12
  import { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
@@ -12,6 +14,7 @@ import { getRuleSetAtPath, getTypeName, parseCrossProtocolRef } from '../utils/p
12
14
  const STORED_INITIAL_WRITE_CONFIG_INVALID_CODES = new Set([
13
15
  DwnErrorCode.EncryptionControlValidateAudienceRolePathInvalid,
14
16
  DwnErrorCode.EncryptionControlValidateAudienceSealKeyIdMismatch,
17
+ DwnErrorCode.ProtocolAuthorizationEncryptionNotAllowed,
15
18
  DwnErrorCode.ProtocolAuthorizationEncryptionRequired,
16
19
  DwnErrorCode.ProtocolAuthorizationIncorrectDataFormat,
17
20
  DwnErrorCode.ProtocolAuthorizationInitialWriteRevalidationNotInitial,
@@ -72,8 +75,15 @@ export class ProtocolsConfigureHandler {
72
75
  return { status: { code: 409, detail: 'Conflict' } };
73
76
  }
74
77
  }
75
- // find newest message, and if the incoming message is the newest
76
78
  let newestMessage = await Message.getNewestMessage(existingMessages);
79
+ let prefetchedRecordsWrites;
80
+ try {
81
+ prefetchedRecordsWrites = await this.validateEncryptionPolicyIsImmutable(tenant, message.descriptor.definition, message.descriptor.messageTimestamp, newestMessage);
82
+ }
83
+ catch (e) {
84
+ return messageReplyFromError(e, 400);
85
+ }
86
+ // find newest message, and if the incoming message is the newest
77
87
  let incomingMessageIsNewest = false;
78
88
  if (newestMessage === undefined || await Message.isNewer(message, newestMessage)) {
79
89
  incomingMessageIsNewest = true;
@@ -109,7 +119,7 @@ export class ProtocolsConfigureHandler {
109
119
  await this.deps.messageStore.updateIndexes(tenant, existingCid, updatedIndexes);
110
120
  }
111
121
  }
112
- await this.purgeRecordsInvalidatedByProtocolConfig(tenant, message.descriptor.definition.protocol);
122
+ await this.purgeRecordsInvalidatedByProtocolConfig(tenant, message.descriptor.definition.protocol, prefetchedRecordsWrites);
113
123
  return messageReply;
114
124
  }
115
125
  ;
@@ -151,19 +161,159 @@ export class ProtocolsConfigureHandler {
151
161
  throw new DwnError(DwnErrorCode.ProtocolsConfigureAuthorizationFailed, 'message failed authorization');
152
162
  }
153
163
  }
154
- async purgeRecordsInvalidatedByProtocolConfig(tenant, protocol) {
164
+ /**
165
+ * Prevents a protocol URI from changing the at-rest representation of a path
166
+ * after records have been admitted under that path. A policy migration must use
167
+ * a new protocol URI so one store never contains both plaintext and ciphertext
168
+ * records governed by the same protocol version.
169
+ */
170
+ async validateEncryptionPolicyIsImmutable(tenant, incomingDefinition, incomingTimestamp, previousConfiguration) {
171
+ if (previousConfiguration === undefined || !ProtocolsConfigureHandler.hasEncryptionPolicyChange(previousConfiguration.descriptor.definition, incomingDefinition)) {
172
+ return undefined;
173
+ }
174
+ const { messages } = await this.deps.messageStore.query(tenant, [{
175
+ interface: DwnInterfaceName.Records,
176
+ method: DwnMethodName.Write,
177
+ protocol: incomingDefinition.protocol,
178
+ }]);
179
+ const recordsWrites = messages;
180
+ const incomingPolicyByPath = new Map();
181
+ for (const recordsWrite of recordsWrites) {
182
+ const { protocolPath } = recordsWrite.descriptor;
183
+ if (isEncryptionControlPath(protocolPath)) {
184
+ continue;
185
+ }
186
+ // Removing a path does not change its representation policy. Existing
187
+ // records remain governed by the configuration active at their timestamp.
188
+ if (getRuleSetAtPath(protocolPath, incomingDefinition.structure) === undefined) {
189
+ continue;
190
+ }
191
+ let incomingEncryptionRequired = incomingPolicyByPath.get(protocolPath);
192
+ if (incomingEncryptionRequired === undefined) {
193
+ const incomingTypes = await resolveProtocolTypesForPath(tenant, protocolPath, incomingDefinition, this.deps.validationStateReader, incomingTimestamp);
194
+ incomingEncryptionRequired = incomingTypes[getTypeName(protocolPath)]?.encryptionRequired === true;
195
+ incomingPolicyByPath.set(protocolPath, incomingEncryptionRequired);
196
+ }
197
+ if ((recordsWrite.encryption !== undefined) === incomingEncryptionRequired) {
198
+ continue;
199
+ }
200
+ throw new DwnError(DwnErrorCode.ProtocolsConfigureEncryptionPolicyImmutable, `cannot change encryption policy for protocol path '${protocolPath}' after records exist; ` +
201
+ 'install the changed definition under a new protocol URI.');
202
+ }
203
+ await this.validateComposedEncryptionPolicyIsImmutable(tenant, incomingDefinition);
204
+ return recordsWrites;
205
+ }
206
+ /** Prevents a referenced protocol from changing the representation of records stored by composing protocols. */
207
+ async validateComposedEncryptionPolicyIsImmutable(tenant, incomingDefinition) {
208
+ const { messages: configurationMessages } = await this.deps.messageStore.query(tenant, [{
209
+ interface: DwnInterfaceName.Protocols,
210
+ isLatestBaseState: true,
211
+ method: DwnMethodName.Configure,
212
+ }]);
213
+ const policiesByProtocol = ProtocolsConfigureHandler.getComposedPathPolicies(configurationMessages, incomingDefinition);
214
+ if (policiesByProtocol.size === 0) {
215
+ return;
216
+ }
217
+ const { messages: dependentRecordsWrites } = await this.deps.messageStore.query(tenant, [...policiesByProtocol.keys()].map((protocol) => ({
218
+ interface: DwnInterfaceName.Records,
219
+ method: DwnMethodName.Write,
220
+ protocol,
221
+ })));
222
+ for (const message of dependentRecordsWrites) {
223
+ const recordsWrite = message;
224
+ const { protocol, protocolPath } = recordsWrite.descriptor;
225
+ if (protocol === undefined) {
226
+ continue;
227
+ }
228
+ const encryptionRequired = policiesByProtocol.get(protocol)?.get(protocolPath);
229
+ if (encryptionRequired === undefined || (recordsWrite.encryption !== undefined) === encryptionRequired) {
230
+ continue;
231
+ }
232
+ throw new DwnError(DwnErrorCode.ProtocolsConfigureEncryptionPolicyImmutable, `cannot change encryption policy for protocol path '${protocolPath}' imported by protocol '${protocol}' ` +
233
+ `after records exist; install the changed definition under a new protocol URI.`);
234
+ }
235
+ }
236
+ /** Maps each installed composing protocol to root `$ref` paths whose policy comes from the incoming definition. */
237
+ static getComposedPathPolicies(configurations, incomingDefinition) {
238
+ const policiesByProtocol = new Map();
239
+ for (const configuration of configurations) {
240
+ const composingDefinition = configuration.descriptor.definition;
241
+ const pathPolicies = ProtocolsConfigureHandler.getImportedPathPolicies(composingDefinition, incomingDefinition);
242
+ if (pathPolicies.size > 0) {
243
+ policiesByProtocol.set(composingDefinition.protocol, pathPolicies);
244
+ }
245
+ }
246
+ return policiesByProtocol;
247
+ }
248
+ /** Resolves the effective policy for root `$ref` paths that import one definition. */
249
+ static getImportedPathPolicies(composingDefinition, incomingDefinition) {
250
+ const pathPolicies = new Map();
251
+ const importedAliases = new Set(Object.entries(composingDefinition.uses ?? {})
252
+ .filter(([, protocol]) => protocol === incomingDefinition.protocol)
253
+ .map(([alias]) => alias));
254
+ if (importedAliases.size === 0) {
255
+ return pathPolicies;
256
+ }
257
+ for (const [protocolPath, ruleSet] of Object.entries(composingDefinition.structure)) {
258
+ const reference = ruleSet.$ref === undefined ? undefined : parseCrossProtocolRef(ruleSet.$ref);
259
+ if (reference === undefined || !importedAliases.has(reference.alias)) {
260
+ continue;
261
+ }
262
+ const typeName = getTypeName(protocolPath);
263
+ pathPolicies.set(protocolPath, incomingDefinition.types[typeName]?.encryptionRequired === true);
264
+ }
265
+ return pathPolicies;
266
+ }
267
+ /** Returns true when a configure can change a path's stored representation. */
268
+ static hasEncryptionPolicyChange(previousDefinition, incomingDefinition) {
269
+ const typeNames = new Set([
270
+ ...Object.keys(previousDefinition.types),
271
+ ...Object.keys(incomingDefinition.types),
272
+ ]);
273
+ for (const typeName of typeNames) {
274
+ const previousRequired = previousDefinition.types[typeName]?.encryptionRequired === true;
275
+ const incomingRequired = incomingDefinition.types[typeName]?.encryptionRequired === true;
276
+ if (previousRequired !== incomingRequired) {
277
+ return true;
278
+ }
279
+ }
280
+ return ProtocolsConfigureHandler.getCompositionEncryptionPolicySignature(previousDefinition) !==
281
+ ProtocolsConfigureHandler.getCompositionEncryptionPolicySignature(incomingDefinition);
282
+ }
283
+ /** Captures only composition fields that can redirect a path to another type policy. */
284
+ static getCompositionEncryptionPolicySignature(definition) {
285
+ const references = [];
286
+ const visit = (ruleSet, parentPath) => {
287
+ for (const [typeName, value] of Object.entries(ruleSet)) {
288
+ if (typeName.startsWith('$')) {
289
+ continue;
290
+ }
291
+ const childRuleSet = value;
292
+ const protocolPath = parentPath === '' ? typeName : `${parentPath}/${typeName}`;
293
+ if (childRuleSet.$ref !== undefined) {
294
+ references.push(`${protocolPath}=${childRuleSet.$ref}`);
295
+ }
296
+ visit(childRuleSet, protocolPath);
297
+ }
298
+ };
299
+ visit(definition.structure, '');
300
+ const uses = Object.entries(definition.uses ?? {})
301
+ .sort(([left], [right]) => left.localeCompare(right));
302
+ references.sort((left, right) => left.localeCompare(right));
303
+ return JSON.stringify({ references, uses });
304
+ }
305
+ async purgeRecordsInvalidatedByProtocolConfig(tenant, protocol, prefetchedRecordsWrites) {
155
306
  const dataStore = this.deps.dataStore;
156
307
  if (dataStore === undefined) {
157
308
  return;
158
309
  }
159
- const { messages } = await this.deps.messageStore.query(tenant, [{
310
+ const recordsWrites = prefetchedRecordsWrites ?? (await this.deps.messageStore.query(tenant, [{
160
311
  interface: DwnInterfaceName.Records,
161
312
  method: DwnMethodName.Write,
162
313
  protocol,
163
- }]);
314
+ }])).messages;
164
315
  const checkedRecordIds = new Set();
165
- for (const message of messages) {
166
- const recordsWriteMessage = message;
316
+ for (const recordsWriteMessage of recordsWrites) {
167
317
  if (checkedRecordIds.has(recordsWriteMessage.recordId)) {
168
318
  continue;
169
319
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocols-configure.js","sourceRoot":"","sources":["../../../../src/handlers/protocols-configure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocols-configure.js","sourceRoot":"","sources":["../../../../src/handlers/protocols-configure.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI7F,MAAM,yCAAyC,GAAG,IAAI,GAAG,CAAS;IAChE,YAAY,CAAC,gDAAgD;IAC7D,YAAY,CAAC,kDAAkD;IAC/D,YAAY,CAAC,yCAAyC;IACtD,YAAY,CAAC,uCAAuC;IACpD,YAAY,CAAC,wCAAwC;IACrD,YAAY,CAAC,uDAAuD;IACpE,YAAY,CAAC,kCAAkC;IAC/C,YAAY,CAAC,gCAAgC;IAC7C,YAAY,CAAC,mCAAmC;IAChD,YAAY,CAAC,mCAAmC;IAChD,YAAY,CAAC,mCAAmC;IAChD,YAAY,CAAC,qCAAqC;IAClD,YAAY,CAAC,0CAA0C;IACvD,YAAY,CAAC,uDAAuD;IACpE,YAAY,CAAC,0DAA0D;IACvE,YAAY,CAAC,2DAA2D;IACxE,YAAY,CAAC,sCAAsC;CACpD,CAAC,CAAC;AAEH,MAAM,OAAO,yBAAyB;IAEP;IAA7B,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAI,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,GACgD;QACvD,IAAI,kBAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,kBAAkB,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjE,MAAM,yBAAyB,CAAC,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,qFAAqF;QACrF,4FAA4F;QAC5F,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,+BAA+B,CAC7D,MAAM,EACN,OAAO,CAAC,UAAU,CAAC,UAAU,EAC7B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAChC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,mCAAmC;QACnC,MAAM,KAAK,GAAG;YACZ,SAAS,EAAG,gBAAgB,CAAC,SAAS;YACtC,MAAM,EAAM,aAAa,CAAC,SAAS;YACnC,QAAQ,EAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ;SACnD,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAE,KAAK,CAAE,CAAC,CAAC;QAE7F,oEAAoE;QACpE,8EAA8E;QAC9E,yCAAyC;QACzC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE,CAAC;gBACnD,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;QAED,IAAI,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAA0C,CAAC;QAC9G,IAAI,uBAA0D,CAAC;QAC/D,IAAI,CAAC;YACH,uBAAuB,GAAG,MAAM,IAAI,CAAC,mCAAmC,CACtE,MAAM,EACN,OAAO,CAAC,UAAU,CAAC,UAAU,EAC7B,OAAO,CAAC,UAAU,CAAC,gBAAgB,EACnC,aAAa,CACd,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,iEAAiE;QACjE,IAAI,uBAAuB,GAAG,KAAK,CAAC;QACpC,IAAI,aAAa,KAAK,SAAS,IAAI,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;YACjF,uBAAuB,GAAG,IAAI,CAAC;YAC/B,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC;QAED,iEAAiE;QACjE,IAAI,YAAiC,CAAC;QACtC,IAAI,QAAmC,CAAC;QACxC,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAErF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7E,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAE9B,YAAY,GAAG;gBACb,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;gBACzC,QAAQ;aACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,sFAAsF;YACtF,MAAM,OAAO,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAEtF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7E,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAE9B,YAAY,GAAG;gBACb,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;gBACzC,QAAQ;aACT,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC/C,IAAI,eAAe,KAAK,aAAa,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,yBAAyB,CAAC,2BAA2B,CAAC,eAA4C,EAAE,KAAK,CAAC,CAAC;gBAClI,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAE1D,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,uCAAuC,CAChD,MAAM,EACN,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EACtC,uBAAuB,CACxB,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC;IAAA,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,kBAAsC,EAAE,iBAA0B;QACxF,OAAO,yBAAyB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC9G,CAAC;IAEO,MAAM,CAAC,2BAA2B,CAAC,OAAkC,EAAE,iBAA0B;QACvG,gDAAgD;QAChD,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAwC;YACnD,GAAG,iBAAiB;YACpB,MAAM,EAAM,MAAO;YACnB,QAAQ,EAAI,UAAU,CAAC,QAAQ,EAAE,yCAAyC;YAC1E,SAAS,EAAG,UAAU,CAAC,SAAS,EAAE,yCAAyC;YAC3E,iBAAiB;SAClB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,MAAc,EAAE,iBAAqC,EAAE,IAAyB;QAE/H,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;YAC/C,MAAM,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;aAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,gBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;YACrI,MAAM,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,gBAAiB,CAAE,CAAC;YAC7F,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YAC/F,MAAM,2BAA2B,CAAC,kBAAkB,CAAC;gBACnD,yBAAyB,EAAG,iBAAiB,CAAC,OAAO;gBACrD,eAAe,EAAa,MAAM;gBAClC,eAAe,EAAa,iBAAiB,CAAC,MAAM;gBACpD,eAAe;gBACf,qBAAqB,EAAO,IAAI,CAAC,qBAAqB;aACvD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,qCAAqC,EAAE,8BAA8B,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,mCAAmC,CAC/C,MAAc,EACd,kBAAsC,EACtC,iBAAyB,EACzB,qBAA4D;QAE5D,IAAI,qBAAqB,KAAK,SAAS,IAAI,CAAC,yBAAyB,CAAC,yBAAyB,CAC7F,qBAAqB,CAAC,UAAU,CAAC,UAAU,EAC3C,kBAAkB,CACnB,EAAE,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC/D,SAAS,EAAG,gBAAgB,CAAC,OAAO;gBACpC,MAAM,EAAM,aAAa,CAAC,KAAK;gBAC/B,QAAQ,EAAI,kBAAkB,CAAC,QAAQ;aACxC,CAAC,CAAC,CAAC;QACJ,MAAM,aAAa,GAAG,QAAiC,CAAC;QACxD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmB,CAAC;QACxD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC;YACjD,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,sEAAsE;YACtE,0EAA0E;YAC1E,IAAI,gBAAgB,CAAC,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/E,SAAS;YACX,CAAC;YAED,IAAI,0BAA0B,GAAG,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACxE,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,aAAa,GAAG,MAAM,2BAA2B,CACrD,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAC/B,iBAAiB,CAClB,CAAC;gBACF,0BAA0B,GAAG,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;gBACnG,oBAAoB,CAAC,GAAG,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,0BAA0B,EAAE,CAAC;gBAC3E,SAAS;YACX,CAAC;YAED,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,2CAA2C,EACxD,sDAAsD,YAAY,yBAAyB;gBAC3F,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,2CAA2C,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACnF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,gHAAgH;IACxG,KAAK,CAAC,2CAA2C,CACvD,MAAc,EACd,kBAAsC;QAEtC,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACtF,SAAS,EAAW,gBAAgB,CAAC,SAAS;gBAC9C,iBAAiB,EAAG,IAAI;gBACxB,MAAM,EAAc,aAAa,CAAC,SAAS;aAC5C,CAAC,CAAC,CAAC;QACJ,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,uBAAuB,CAC1E,qBAAoD,EACpD,kBAAkB,CACnB,CAAC;QACF,IAAI,kBAAkB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAC7E,MAAM,EACN,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAU,EAAE,CAAC,CAAC;YACxD,SAAS,EAAG,gBAAgB,CAAC,OAAO;YACpC,MAAM,EAAM,aAAa,CAAC,KAAK;YAC/B,QAAQ;SACT,CAAC,CAAC,CACJ,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,OAA8B,CAAC;YACpD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC;YAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/E,IAAI,kBAAkB,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,kBAAkB,EAAE,CAAC;gBACvG,SAAS;YACX,CAAC;YAED,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,2CAA2C,EACxD,sDAAsD,YAAY,2BAA2B,QAAQ,IAAI;gBACzG,+EAA+E,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mHAAmH;IAC3G,MAAM,CAAC,uBAAuB,CACpC,cAA2C,EAC3C,kBAAsC;QAEtC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAgC,CAAC;QACnE,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,mBAAmB,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC;YAChE,MAAM,YAAY,GAAG,yBAAyB,CAAC,uBAAuB,CACpE,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;YACF,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,kBAAkB,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,sFAAsF;IAC9E,MAAM,CAAC,uBAAuB,CACpC,mBAAuC,EACvC,kBAAsC;QAEtC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,EAAE,CAAC;aAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAW,EAAE,CAAC,QAAQ,KAAK,kBAAkB,CAAC,QAAQ,CAAC;aAC3E,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAU,EAAE,CAAC,KAAK,CAAC,CACnC,CAAC;QACF,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACpF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/F,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAC3C,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,+EAA+E;IACvE,MAAM,CAAC,yBAAyB,CACtC,kBAAsC,EACtC,kBAAsC;QAEtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;YACxB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACxC,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;SACzC,CAAC,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;YACzF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;YACzF,IAAI,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,yBAAyB,CAAC,uCAAuC,CAAC,kBAAkB,CAAC;YAC1F,yBAAyB,CAAC,uCAAuC,CAAC,kBAAkB,CAAC,CAAC;IAC1F,CAAC;IAED,wFAAwF;IAChF,MAAM,CAAC,uCAAuC,CAAC,UAA8B;QACnF,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC,OAAwB,EAAE,UAAkB,EAAQ,EAAE;YACnE,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,KAAwB,CAAC;gBAC9C,MAAM,YAAY,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC;gBAChF,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBACD,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC;QACF,KAAK,CAAC,UAAU,CAAC,SAA4B,EAAE,EAAE,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;aAC/C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAU,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAU,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,uCAAuC,CACnD,MAAc,EACd,QAAgB,EAChB,uBAA+C;QAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,uBAAuB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC5F,SAAS,EAAG,gBAAgB,CAAC,OAAO;gBACpC,MAAM,EAAM,aAAa,CAAC,KAAK;gBAC/B,QAAQ;aACT,CAAC,CAAC,CAAC,CAAC,QAAiC,CAAC;QAEvC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,KAAK,MAAM,mBAAmB,IAAI,aAAa,EAAE,CAAC;YAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,SAAS;YACX,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mCAAmC,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAC7F,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/E,SAAS,EAAG,gBAAgB,CAAC,OAAO;oBACpC,QAAQ,EAAI,mBAAmB,CAAC,QAAQ;iBACzC,CAAC,CAAC,CAAC;YACJ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,gFAAgF;YAChF,gFAAgF;YAChF,iFAAiF;YACjF,2BAA2B;YAC3B,MAAM,iBAAiB,CAAC,mBAAmB,CACzC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mCAAmC,CAC/C,MAAc,EACd,OAA4B;QAE5B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvD,kFAAkF;YAClF,4FAA4F;YAC5F,MAAM,qBAAqB,CAAC,0BAA0B,CACpD,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CACtD,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,yBAAyB,CAAC,sCAAsC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5E,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,sCAAsC,CAAC,KAAc;QAClE,OAAO,KAAK,YAAY,QAAQ,IAAI,yCAAyC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAClD,MAAc,EACd,UAA8B,EAC9B,qBAA4C,EAC5C,gBAAyB;QAEzB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA8B,CAAC;QACpE,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;gBACjH,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,qCAAqC,EAAE,CAAC;oBACtG,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,8CAA8C,EAC3D,sBAAsB,WAAW,aAAa,KAAK,mCAAmC,MAAM,IAAI,CACjG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,yBAAyB,CAAC,+BAA+B,CACvD,UAAU,EACV,UAAU,CAAC,SAA4B,EACvC,EAAE,EACF,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,+BAA+B,CAC5C,UAA8B,EAC9B,OAAwB,EACxB,YAAoB,EACpB,qBAAsD;QAEtD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAoB,CAAC;YACrD,MAAM,iBAAiB,GAAG,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,GAAG,EAAE,CAAC;YAE/E,kGAAkG;YAClG,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC9D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;wBAChC,sHAAsH;wBACtH,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,iCAAiC,EAC9C,iBAAiB,MAAM,CAAC,KAAK,uBAAuB,iBAAiB,IAAI;4BACzE,kDAAkD,CACnD,CAAC;oBACJ,CAAC;oBAED,yFAAyF;oBACzF,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChD,IAAI,YAAY,GAAuC,aAAa,CAAC,SAAS,CAAC;oBAE/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAgC,CAAC;wBAElE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BACvB,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,wCAAwC,EACrD,4BAA4B,iBAAiB,2BAA2B,MAAM,CAAC,YAAY,IAAI;gCAC/F,qCAAqC,aAAa,CAAC,QAAQ,IAAI,CAChE,CAAC;wBACJ,CAAC;wBAED,6EAA6E;wBAC7E,2EAA2E;wBAC3E,qEAAqE;wBACrE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC5B,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACzD,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,4CAA4C,EACzD,4BAA4B,iBAAiB,2BAA2B,MAAM,CAAC,YAAY,IAAI;gCAC/F,gBAAgB,aAAa,CAAC,QAAQ,oBAAoB,aAAa,cAAc;gCACrF,uGAAuG,CACxG,CAAC;wBACJ,CAAC;wBAED,YAAY,GAAG,IAA0C,CAAC;oBAC5D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;YAChF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,0CAA0C;gBAC1C,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC9D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;4BAChC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,0CAA0C,EACvD,8BAA8B,MAAM,CAAC,KAAK,SAAS,UAAU,CAAC,IAAI,uBAAuB,iBAAiB,IAAI;gCAC9G,kDAAkD,CACnD,CAAC;wBACJ,CAAC;wBAED,uFAAuF;wBACvF,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;wBACnF,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;4BACxB,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,0CAA0C,EACvD,wBAAwB,UAAU,CAAC,IAAI,uBAAuB,iBAAiB,IAAI;gCACnF,6DAA6D,aAAa,CAAC,QAAQ,IAAI,CACxF,CAAC;wBACJ,CAAC;wBAED,IAAI,eAAe,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;4BAClG,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,yDAAyD,EACtE,4BAA4B,iBAAiB,qCAAqC,UAAU,CAAC,IAAI,IAAI;gCACrG,wBAAwB,CACzB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,sGAAsG;gBACtG,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBACpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC9D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;4BAChC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,wCAAwC,EACrD,8BAA8B,MAAM,CAAC,KAAK,SAAS,UAAU,CAAC,EAAE,uBAAuB,iBAAiB,IAAI;gCAC5G,kDAAkD,CACnD,CAAC;wBACJ,CAAC;wBAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;wBACjF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC5B,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,wCAAwC,EACrD,kCAAkC,UAAU,CAAC,EAAE,uBAAuB,iBAAiB,IAAI;gCAC3F,oDAAoD,aAAa,CAAC,QAAQ,IAAI,CAC/E,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,yBAAyB,CAAC,+BAA+B,CAAC,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;QAChI,CAAC;IACH,CAAC;CACF"}
@@ -5,7 +5,7 @@ export { ProtocolRecordLimitStrategy } from './types/protocols-types.js';
5
5
  export { authenticate } from './core/auth.js';
6
6
  export { CoreProtocolRegistry } from './core/core-protocol.js';
7
7
  export { EncryptionControl } from './core/encryption-control.js';
8
- export { ENCRYPTION_CONTROL_AUDIENCE_PATH, ENCRYPTION_CONTROL_AUDIENCE_SCHEMA_URI, ENCRYPTION_CONTROL_DELIVERY_PATH, ENCRYPTION_CONTROL_DELIVERY_SCHEMA_URI, ENCRYPTION_CONTROL_PATHS, ENCRYPTION_CONTROL_ROOT_PATH, ENCRYPTION_PROTOCOL_URI, PERMISSIONS_REVOCATION_PATH, isEncryptionControlPath, } from './core/constants.js';
8
+ export { ENCRYPTION_CONTROL_AUDIENCE_PATH, ENCRYPTION_CONTROL_AUDIENCE_SCHEMA_URI, ENCRYPTION_CONTROL_DELIVERY_PATH, ENCRYPTION_CONTROL_DELIVERY_SCHEMA_URI, ENCRYPTION_CONTROL_PATHS, ENCRYPTION_CONTROL_ROOT_PATH, ENCRYPTION_PROTOCOL_URI, ENCRYPTION_PROTOCOL_GRANT_KEY_PATH, ENCRYPTION_PROTOCOL_WRAPPED_GRANT_KEY_PATH, PERMISSIONS_REVOCATION_PATH, isEncryptionControlPath, } from './core/constants.js';
9
9
  export { AllowAllTenantGate } from './core/tenant-gate.js';
10
10
  export { Cid } from './utils/cid.js';
11
11
  export { RecordsCount } from './interfaces/records-count.js';
@@ -33,7 +33,7 @@ export { PermissionsProtocol } from './protocols/permissions.js';
33
33
  export { EncryptionProtocol, WRAPPED_GRANT_KEY_FORMAT, assertWrappedGrantKeyEnvelope } from './protocols/encryption.js';
34
34
  export { PermissionScopeMatcher } from './utils/permission-scope.js';
35
35
  export { PrivateKeySigner } from './utils/private-key-signer.js';
36
- export { Protocols, getRoleAudienceContextId, getRoleContextPrefix, getRuleSetAtPath, isCrossProtocolRef, parseCrossProtocolRef, } from './utils/protocols.js';
36
+ export { Protocols, getRoleAudienceContextId, getRoleContextPrefix, getRuleSetAtPath, getTypeName, isCrossProtocolRef, parseCrossProtocolRef, } from './utils/protocols.js';
37
37
  export { ProtocolsConfigure } from './interfaces/protocols-configure.js';
38
38
  export { ProtocolsQuery } from './interfaces/protocols-query.js';
39
39
  export { Records } from './utils/records.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { DwnConstant } from '../core/dwn-constant.js';
2
2
  import { Encoder } from '../utils/encoder.js';
3
- import { ENCRYPTION_PROTOCOL_URI } from '../core/constants.js';
4
3
  import { FilterUtility } from '../utils/filter.js';
5
4
  import { Message } from '../core/message.js';
6
5
  import { Records } from '../utils/records.js';
7
6
  import { validateJsonSchema } from '../schema-validator.js';
8
7
  import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
8
+ import { ENCRYPTION_PROTOCOL_GRANT_KEY_PATH, ENCRYPTION_PROTOCOL_URI, ENCRYPTION_PROTOCOL_WRAPPED_GRANT_KEY_PATH, } from '../core/constants.js';
9
9
  import { grantKeyScopeCoversDeliveredScope, isGrantKeyEligibleRecordsScope, isGrantKeyRecordsScope } from '../utils/grant-key-coverage.js';
10
10
  export const WRAPPED_GRANT_KEY_FORMAT = 'enbox/wrapped-grant-key@1';
11
11
  export function assertWrappedGrantKeyEnvelope(envelope) {
@@ -19,15 +19,21 @@ export function assertWrappedGrantKeyEnvelope(envelope) {
19
19
  }
20
20
  export class EncryptionProtocol {
21
21
  static uri = ENCRYPTION_PROTOCOL_URI;
22
- static grantKeyPath = 'grantKey';
22
+ static grantKeyPath = ENCRYPTION_PROTOCOL_GRANT_KEY_PATH;
23
+ static wrappedGrantKeyPath = ENCRYPTION_PROTOCOL_WRAPPED_GRANT_KEY_PATH;
23
24
  static definition = {
24
25
  published: true,
25
26
  protocol: EncryptionProtocol.uri,
26
27
  types: {
27
28
  grantKey: {
28
29
  dataFormats: ['application/json'],
30
+ encryptionRequired: true,
29
31
  schema: 'https://identity.foundation/dwn/json-schemas/encryption/grant-key.json',
30
32
  },
33
+ wrappedGrantKey: {
34
+ dataFormats: ['application/json'],
35
+ schema: 'https://identity.foundation/dwn/json-schemas/encryption/wrapped-grant-key-envelope.json',
36
+ },
31
37
  },
32
38
  structure: {
33
39
  grantKey: {
@@ -45,6 +51,21 @@ export class EncryptionProtocol {
45
51
  protocolPath: { type: 'string' },
46
52
  },
47
53
  },
54
+ wrappedGrantKey: {
55
+ $actions: [
56
+ { can: ['create'], who: 'anyone' },
57
+ { can: ['read'], of: 'wrappedGrantKey', who: 'recipient' },
58
+ ],
59
+ $immutable: true,
60
+ $tags: {
61
+ $allowUndefinedTags: false,
62
+ $requiredTags: ['grantId', 'protocol', 'keyId'],
63
+ grantId: { type: 'string' },
64
+ keyId: { maxLength: 43, minLength: 43, pattern: '^[A-Za-z0-9_-]{43}$', type: 'string' },
65
+ protocol: { type: 'string' },
66
+ protocolPath: { type: 'string' },
67
+ },
68
+ },
48
69
  }
49
70
  };
50
71
  get uri() {
@@ -54,19 +75,19 @@ export class EncryptionProtocol {
54
75
  return EncryptionProtocol.definition;
55
76
  }
56
77
  async preProcessWrite(tenant, message, validationStateReader) {
57
- if (message.descriptor.protocolPath === EncryptionProtocol.grantKeyPath) {
78
+ if (EncryptionProtocol.isGrantKeyPath(message.descriptor.protocolPath)) {
58
79
  await EncryptionProtocol.preProcessGrantKey(tenant, message, validationStateReader);
59
80
  }
60
81
  }
61
82
  async validateRecord(message, dataBytes) {
62
- if (message.descriptor.protocolPath === EncryptionProtocol.grantKeyPath) {
83
+ if (EncryptionProtocol.isGrantKeyPath(message.descriptor.protocolPath)) {
63
84
  EncryptionProtocol.verifyGrantKeyDelivery(message, dataBytes);
64
85
  return;
65
86
  }
66
87
  throw new DwnError(DwnErrorCode.EncryptionProtocolValidateSchemaUnexpectedRecord, `Unexpected encryption record: ${message.descriptor.protocolPath}`);
67
88
  }
68
89
  static async preProcessGrantKey(tenant, message, validationStateReader) {
69
- EncryptionProtocol.verifyInlineWrappedGrantKeyDelivery(message);
90
+ EncryptionProtocol.verifyGrantKeyRepresentation(message);
70
91
  const grantId = EncryptionProtocol.getRequiredStringTag(message, 'grantId');
71
92
  const protocol = EncryptionProtocol.getRequiredStringTag(message, 'protocol');
72
93
  const protocolPath = EncryptionProtocol.getOptionalStringTag(message, 'protocolPath');
@@ -84,16 +105,22 @@ export class EncryptionProtocol {
84
105
  validationStateReader,
85
106
  });
86
107
  }
87
- static verifyInlineWrappedGrantKeyDelivery(message) {
88
- if (message.encryption !== undefined) {
108
+ static verifyGrantKeyRepresentation(message) {
109
+ if (message.descriptor.protocolPath === EncryptionProtocol.grantKeyPath) {
110
+ if (message.encryption === undefined) {
111
+ throw new DwnError(DwnErrorCode.EncryptionProtocolValidateEncryptedDeliveryMissingEncryption, 'grantKey records must be encrypted.');
112
+ }
89
113
  return;
90
114
  }
115
+ if (message.encryption !== undefined) {
116
+ throw new DwnError(DwnErrorCode.ProtocolAuthorizationEncryptionNotAllowed, 'wrappedGrantKey records must be plaintext at the DWN record level.');
117
+ }
91
118
  if (message.descriptor.dataSize > DwnConstant.maxDataSizeAllowedToBeEncoded) {
92
- throw new DwnError(DwnErrorCode.EncryptionProtocolValidateEncryptedDeliveryMissingEncryption, 'plaintext grantKey records must carry an inline wrapped grantKey envelope.');
119
+ throw new DwnError(DwnErrorCode.EncryptionProtocolValidateEncryptedDeliveryMissingEncryption, 'wrappedGrantKey records must carry an inline wrapped grantKey envelope.');
93
120
  }
94
121
  }
95
122
  static verifyGrantKeyDelivery(message, dataBytes) {
96
- if (message.encryption !== undefined) {
123
+ if (message.descriptor.protocolPath === EncryptionProtocol.grantKeyPath) {
97
124
  return;
98
125
  }
99
126
  try {
@@ -105,9 +132,13 @@ export class EncryptionProtocol {
105
132
  throw error;
106
133
  }
107
134
  const detail = error instanceof Error ? error.message : String(error);
108
- throw new DwnError(DwnErrorCode.EncryptionProtocolValidateEncryptedDeliveryMissingEncryption, `${message.descriptor.protocolPath} records must be encrypted or carry a valid wrapped grantKey envelope: ${detail}`);
135
+ throw new DwnError(DwnErrorCode.EncryptionProtocolValidateEncryptedDeliveryMissingEncryption, `${message.descriptor.protocolPath} records must carry a valid wrapped grantKey envelope: ${detail}`);
109
136
  }
110
137
  }
138
+ static isGrantKeyPath(protocolPath) {
139
+ return protocolPath === EncryptionProtocol.grantKeyPath ||
140
+ protocolPath === EncryptionProtocol.wrappedGrantKeyPath;
141
+ }
111
142
  static getRequiredStringTag(message, tag) {
112
143
  const value = message.descriptor.tags?.[tag];
113
144
  if (typeof value !== 'string') {