@enbox/agent 0.5.15 → 0.6.0
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.
- package/dist/browser.mjs +11 -11
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/dwn-api.js +433 -33
- package/dist/esm/dwn-api.js.map +1 -1
- package/dist/esm/dwn-encryption.js +131 -12
- package/dist/esm/dwn-encryption.js.map +1 -1
- package/dist/esm/dwn-key-delivery.js +64 -47
- package/dist/esm/dwn-key-delivery.js.map +1 -1
- package/dist/esm/enbox-connect-protocol.js +400 -3
- package/dist/esm/enbox-connect-protocol.js.map +1 -1
- package/dist/esm/permissions-api.js +11 -1
- package/dist/esm/permissions-api.js.map +1 -1
- package/dist/esm/sync-closure-resolver.js +8 -1
- package/dist/esm/sync-closure-resolver.js.map +1 -1
- package/dist/esm/sync-engine-level.js +407 -6
- package/dist/esm/sync-engine-level.js.map +1 -1
- package/dist/esm/sync-messages.js +10 -3
- package/dist/esm/sync-messages.js.map +1 -1
- package/dist/types/dwn-api.d.ts +159 -0
- package/dist/types/dwn-api.d.ts.map +1 -1
- package/dist/types/dwn-encryption.d.ts +39 -2
- package/dist/types/dwn-encryption.d.ts.map +1 -1
- package/dist/types/dwn-key-delivery.d.ts +1 -9
- package/dist/types/dwn-key-delivery.d.ts.map +1 -1
- package/dist/types/enbox-connect-protocol.d.ts +166 -1
- package/dist/types/enbox-connect-protocol.d.ts.map +1 -1
- package/dist/types/permissions-api.d.ts.map +1 -1
- package/dist/types/sync-closure-resolver.d.ts.map +1 -1
- package/dist/types/sync-engine-level.d.ts +45 -1
- package/dist/types/sync-engine-level.d.ts.map +1 -1
- package/dist/types/sync-messages.d.ts +2 -2
- package/dist/types/sync-messages.d.ts.map +1 -1
- package/dist/types/types/permissions.d.ts +9 -0
- package/dist/types/types/permissions.d.ts.map +1 -1
- package/dist/types/types/sync.d.ts +70 -2
- package/dist/types/types/sync.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/dwn-api.ts +494 -38
- package/src/dwn-encryption.ts +160 -11
- package/src/dwn-key-delivery.ts +73 -61
- package/src/enbox-connect-protocol.ts +575 -6
- package/src/permissions-api.ts +13 -1
- package/src/sync-closure-resolver.ts +7 -1
- package/src/sync-engine-level.ts +368 -4
- package/src/sync-messages.ts +14 -5
- package/src/types/permissions.ts +9 -0
- package/src/types/sync.ts +86 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dwn-key-delivery.js","sourceRoot":"","sources":["../../src/dwn-key-delivery.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"dwn-key-delivery.js","sourceRoot":"","sources":["../../src/dwn-key-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,11 +35,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
35
35
|
import { DidJwk } from '@enbox/dids';
|
|
36
36
|
import { Convert, logger } from '@enbox/common';
|
|
37
37
|
import { CryptoUtils, Ed25519, EdDsaAlgorithm, Hkdf, X25519, XChaCha20Poly1305, } from '@enbox/crypto';
|
|
38
|
-
import { DwnInterfaceName, DwnMethodName } from '@enbox/dwn-sdk-js';
|
|
38
|
+
import { DwnInterfaceName, DwnMethodName, HdKey, KeyDerivationScheme, PermissionsProtocol } from '@enbox/dwn-sdk-js';
|
|
39
39
|
import { AgentPermissionsApi } from './permissions-api.js';
|
|
40
40
|
import { concatenateUrl } from './utils.js';
|
|
41
41
|
import { DwnInterface } from './types/dwn.js';
|
|
42
|
+
import { getEncryptionKeyInfo } from './dwn-encryption.js';
|
|
43
|
+
import { isMultiPartyContext } from './protocol-utils.js';
|
|
42
44
|
import { isRecordPermissionScope } from './dwn-api.js';
|
|
45
|
+
import { KeyDeliveryProtocolDefinition } from './store-data-protocols.js';
|
|
43
46
|
// ---------------------------------------------------------------------------
|
|
44
47
|
// URL building
|
|
45
48
|
// ---------------------------------------------------------------------------
|
|
@@ -302,12 +305,20 @@ function shouldUseDelegatePermission(scope) {
|
|
|
302
305
|
/**
|
|
303
306
|
* Creates permission grants that assign the requested scopes to a delegate DID.
|
|
304
307
|
*/
|
|
305
|
-
function createPermissionGrants(selectedDid, delegateBearerDid, agent, scopes) {
|
|
308
|
+
function createPermissionGrants(selectedDid, delegateBearerDid, agent, scopes, delegateKeyDeliveryData) {
|
|
306
309
|
return __awaiter(this, void 0, void 0, function* () {
|
|
307
310
|
const permissionsApi = new AgentPermissionsApi({ agent });
|
|
308
311
|
logger.log(`Creating permission grants for ${scopes.length} scopes...`);
|
|
309
312
|
const permissionGrants = yield Promise.all(scopes.map((scope) => {
|
|
310
313
|
const delegated = shouldUseDelegatePermission(scope);
|
|
314
|
+
// Attach delegate key-delivery tags to read-like grants so the
|
|
315
|
+
// owner can encrypt future contextKey records to the delegate.
|
|
316
|
+
const readMethods = new Set([
|
|
317
|
+
DwnMethodName.Read, DwnMethodName.Query, DwnMethodName.Subscribe,
|
|
318
|
+
]);
|
|
319
|
+
const isReadLike = isRecordPermissionScope(scope)
|
|
320
|
+
&& readMethods.has(scope.method);
|
|
321
|
+
const delegateKeyDelivery = (isReadLike && delegateKeyDeliveryData) ? delegateKeyDeliveryData : undefined;
|
|
311
322
|
return permissionsApi.createGrant({
|
|
312
323
|
delegated,
|
|
313
324
|
store: true,
|
|
@@ -315,6 +326,7 @@ function createPermissionGrants(selectedDid, delegateBearerDid, agent, scopes) {
|
|
|
315
326
|
scope,
|
|
316
327
|
dateExpires: '2040-06-25T16:09:16.693356Z', // TODO: make dateExpires configurable
|
|
317
328
|
author: selectedDid,
|
|
329
|
+
delegateKeyDelivery,
|
|
318
330
|
});
|
|
319
331
|
}));
|
|
320
332
|
// Resolve all DWN endpoints for the selected DID. `sendDwnRequest` only
|
|
@@ -369,9 +381,19 @@ function createPermissionGrants(selectedDid, delegateBearerDid, agent, scopes) {
|
|
|
369
381
|
/**
|
|
370
382
|
* Installs a DWN protocol on the provider's DWN if it doesn't already exist.
|
|
371
383
|
* Ensures the protocol is available on both the local and remote DWN.
|
|
384
|
+
*
|
|
385
|
+
* When the protocol definition contains types with `encryptionRequired: true`,
|
|
386
|
+
* the protocol is installed with `encryption: true` so that the agent injects
|
|
387
|
+
* `$encryption` keys (derived from the owner's X25519 root key) into the
|
|
388
|
+
* protocol definition. This ensures the protocol is immediately usable for
|
|
389
|
+
* encrypted record operations by both the owner and any delegates.
|
|
372
390
|
*/
|
|
373
391
|
function prepareProtocol(selectedDid, agent, protocolDefinition) {
|
|
374
392
|
return __awaiter(this, void 0, void 0, function* () {
|
|
393
|
+
var _a;
|
|
394
|
+
// Detect whether any type in the protocol requires encryption.
|
|
395
|
+
const needsEncryption = Object.values((_a = protocolDefinition.types) !== null && _a !== void 0 ? _a : {})
|
|
396
|
+
.some((type) => (type === null || type === void 0 ? void 0 : type.encryptionRequired) === true);
|
|
375
397
|
const queryMessage = yield agent.processDwnRequest({
|
|
376
398
|
author: selectedDid,
|
|
377
399
|
messageType: DwnInterface.ProtocolsQuery,
|
|
@@ -388,6 +410,7 @@ function prepareProtocol(selectedDid, agent, protocolDefinition) {
|
|
|
388
410
|
target: selectedDid,
|
|
389
411
|
messageType: DwnInterface.ProtocolsConfigure,
|
|
390
412
|
messageParams: { definition: protocolDefinition },
|
|
413
|
+
encryption: needsEncryption || undefined,
|
|
391
414
|
});
|
|
392
415
|
if (sendReply.status.code !== 202 && sendReply.status.code !== 409) {
|
|
393
416
|
throw new Error(`Could not send protocol: ${sendReply.status.detail}`);
|
|
@@ -414,6 +437,231 @@ function prepareProtocol(selectedDid, agent, protocolDefinition) {
|
|
|
414
437
|
}
|
|
415
438
|
});
|
|
416
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* Derives the minimal set of decryption keys implied by read-like permission
|
|
442
|
+
* scopes for a single-party encrypted protocol.
|
|
443
|
+
*
|
|
444
|
+
* Rules:
|
|
445
|
+
* - Only Records.Read / Records.Query / Records.Subscribe scopes contribute.
|
|
446
|
+
* - Write / Delete / Count scopes produce no decryption keys.
|
|
447
|
+
* - If any unrestricted (no `protocolPath`) read scope exists, one
|
|
448
|
+
* protocol-wide key is emitted and narrower keys are dropped.
|
|
449
|
+
* - Otherwise one exact-path key is emitted per unique `protocolPath`.
|
|
450
|
+
* - Scopes with `contextId` cause a fail-closed error.
|
|
451
|
+
* - Multi-party protocols cause a fail-closed error.
|
|
452
|
+
*
|
|
453
|
+
* @param agent - The platform agent (must hold the owner's KMS keys)
|
|
454
|
+
* @param ownerDid - The DID of the protocol owner
|
|
455
|
+
* @param protocolUri - The protocol URI
|
|
456
|
+
* @param scopes - The permission scopes for this protocol
|
|
457
|
+
* @param protocolDefinition - The protocol definition (for multi-party detection)
|
|
458
|
+
* @returns An array of `DelegateDecryptionKey` (may be empty)
|
|
459
|
+
*/
|
|
460
|
+
function deriveScopedDecryptionKeys(agent, ownerDid, protocolUri, scopes, protocolDefinition) {
|
|
461
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
462
|
+
const readMethods = new Set([
|
|
463
|
+
DwnMethodName.Read, DwnMethodName.Query, DwnMethodName.Subscribe,
|
|
464
|
+
]);
|
|
465
|
+
// Collect read-like scopes only.
|
|
466
|
+
const readScopes = scopes.filter((s) => isRecordPermissionScope(s) && readMethods.has(s.method));
|
|
467
|
+
if (readScopes.length === 0) {
|
|
468
|
+
return []; // write/delete only → no decryption keys
|
|
469
|
+
}
|
|
470
|
+
// Fail closed: reject contextId-scoped encrypted reads.
|
|
471
|
+
for (const scope of readScopes) {
|
|
472
|
+
if ('contextId' in scope && scope.contextId) {
|
|
473
|
+
throw new Error(`Encrypted delegate access scoped by contextId is not supported ` +
|
|
474
|
+
`yet; use protocol-wide permissions for protocol '${protocolUri}'.`);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
// Defense-in-depth: reject if any root is multi-party.
|
|
478
|
+
// The caller should have already routed multi-party protocols to
|
|
479
|
+
// deriveContextKeysForDelegate instead.
|
|
480
|
+
const { multiParty } = classifyProtocolRoots(protocolDefinition);
|
|
481
|
+
if (multiParty.length > 0) {
|
|
482
|
+
throw new Error(`deriveScopedDecryptionKeys called for protocol with multi-party ` +
|
|
483
|
+
`roots [${multiParty.join(', ')}]. Use deriveContextKeysForDelegate ` +
|
|
484
|
+
`for multi-party protocols.`);
|
|
485
|
+
}
|
|
486
|
+
// Check if any scope is protocol-wide (no protocolPath).
|
|
487
|
+
const hasProtocolWideRead = readScopes.some((s) => !('protocolPath' in s) || !s.protocolPath);
|
|
488
|
+
const { keyId, keyUri } = yield getEncryptionKeyInfo(agent, ownerDid);
|
|
489
|
+
// If any unrestricted read scope exists, emit one protocol-wide key
|
|
490
|
+
// and skip narrower keys (the protocol-wide key subsumes them).
|
|
491
|
+
if (hasProtocolWideRead) {
|
|
492
|
+
const derivationPath = [KeyDerivationScheme.ProtocolPath, protocolUri];
|
|
493
|
+
const derivedBytes = yield agent.keyManager.derivePrivateKeyBytes({
|
|
494
|
+
keyUri, derivationPath,
|
|
495
|
+
});
|
|
496
|
+
const derivedJwk = yield X25519.bytesToPrivateKey({ privateKeyBytes: derivedBytes });
|
|
497
|
+
return [{
|
|
498
|
+
protocol: protocolUri,
|
|
499
|
+
scope: { kind: 'protocol' },
|
|
500
|
+
derivedPrivateKey: {
|
|
501
|
+
rootKeyId: keyId,
|
|
502
|
+
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
503
|
+
derivationPath,
|
|
504
|
+
derivedPrivateKey: derivedJwk,
|
|
505
|
+
},
|
|
506
|
+
}];
|
|
507
|
+
}
|
|
508
|
+
// All read scopes are protocolPath-scoped.
|
|
509
|
+
// Emit one exact-path key per unique protocolPath.
|
|
510
|
+
const uniquePaths = new Set();
|
|
511
|
+
for (const scope of readScopes) {
|
|
512
|
+
const pp = scope.protocolPath;
|
|
513
|
+
if (pp) {
|
|
514
|
+
uniquePaths.add(pp);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
const keys = [];
|
|
518
|
+
for (const protocolPath of uniquePaths) {
|
|
519
|
+
const pathSegments = protocolPath.split('/');
|
|
520
|
+
const derivationPath = [KeyDerivationScheme.ProtocolPath, protocolUri, ...pathSegments];
|
|
521
|
+
const derivedBytes = yield agent.keyManager.derivePrivateKeyBytes({
|
|
522
|
+
keyUri, derivationPath,
|
|
523
|
+
});
|
|
524
|
+
const derivedJwk = yield X25519.bytesToPrivateKey({ privateKeyBytes: derivedBytes });
|
|
525
|
+
keys.push({
|
|
526
|
+
protocol: protocolUri,
|
|
527
|
+
scope: { kind: 'protocolPath', protocolPath, match: 'exact' },
|
|
528
|
+
derivedPrivateKey: {
|
|
529
|
+
rootKeyId: keyId,
|
|
530
|
+
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
531
|
+
derivationPath,
|
|
532
|
+
derivedPrivateKey: derivedJwk,
|
|
533
|
+
},
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
return keys;
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Detects whether a protocol definition has any root-level type whose subtree
|
|
541
|
+
* triggers multi-party semantics. Delegates to the canonical
|
|
542
|
+
* `isMultiPartyContext()` from `protocol-utils.ts` which checks:
|
|
543
|
+
*
|
|
544
|
+
* - `$role: true` descendants in the subtree
|
|
545
|
+
* - Relational `who`/`of` `$actions` rules that grant `read` access
|
|
546
|
+
*
|
|
547
|
+
* These patterns cause the DWN agent to use ProtocolContext encryption at
|
|
548
|
+
* write time, which is not supported in delegate sessions yet.
|
|
549
|
+
*/
|
|
550
|
+
/**
|
|
551
|
+
* Classifies root-level types in a protocol definition into multi-party
|
|
552
|
+
* and single-party buckets. Used to detect mixed protocols that cannot
|
|
553
|
+
* be safely modeled with a single key type.
|
|
554
|
+
*/
|
|
555
|
+
function classifyProtocolRoots(definition) {
|
|
556
|
+
const structure = definition.structure;
|
|
557
|
+
if (!structure) {
|
|
558
|
+
return { multiParty: [], singleParty: [] };
|
|
559
|
+
}
|
|
560
|
+
const multiParty = [];
|
|
561
|
+
const singleParty = [];
|
|
562
|
+
for (const rootTypeName of Object.keys(structure)) {
|
|
563
|
+
if (rootTypeName.startsWith('$')) {
|
|
564
|
+
continue;
|
|
565
|
+
}
|
|
566
|
+
if (isMultiPartyContext(definition, rootTypeName)) {
|
|
567
|
+
multiParty.push(rootTypeName);
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
singleParty.push(rootTypeName);
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
return { multiParty, singleParty };
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Derives per-context decryption keys for a delegate's access to a multi-party
|
|
577
|
+
* encrypted protocol. Queries the owner's DWN for all root-level records
|
|
578
|
+
* (thread roots, etc.) and derives a `[ProtocolContext, rootContextId]` key
|
|
579
|
+
* for each.
|
|
580
|
+
*
|
|
581
|
+
* Validates scopes first — only protocol-wide read-like scopes are accepted.
|
|
582
|
+
* `protocolPath`-scoped and `contextId`-scoped reads throw (not yet supported).
|
|
583
|
+
* Write-only scopes return empty (no decryption keys needed).
|
|
584
|
+
*
|
|
585
|
+
* @param agent - The platform agent (must hold the owner's KMS keys)
|
|
586
|
+
* @param ownerDid - The DID of the protocol owner
|
|
587
|
+
* @param protocolDefinition - The protocol definition
|
|
588
|
+
* @param scopes - The permission scopes for this protocol
|
|
589
|
+
* @returns An array of `DelegateContextKey` (may be empty)
|
|
590
|
+
*/
|
|
591
|
+
function deriveContextKeysForDelegate(agent, ownerDid, protocolDefinition, scopes) {
|
|
592
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
593
|
+
var _a, _b, _c;
|
|
594
|
+
const readMethods = new Set([
|
|
595
|
+
DwnMethodName.Read, DwnMethodName.Query, DwnMethodName.Subscribe,
|
|
596
|
+
]);
|
|
597
|
+
const readScopes = scopes.filter((s) => isRecordPermissionScope(s) && readMethods.has(s.method));
|
|
598
|
+
if (readScopes.length === 0) {
|
|
599
|
+
return []; // write-only → no context keys
|
|
600
|
+
}
|
|
601
|
+
// Fail closed: reject contextId-scoped reads.
|
|
602
|
+
for (const scope of readScopes) {
|
|
603
|
+
if ('contextId' in scope && scope.contextId) {
|
|
604
|
+
throw new Error(`Encrypted delegate access scoped by contextId is not supported ` +
|
|
605
|
+
`yet; use protocol-wide permissions for protocol ` +
|
|
606
|
+
`'${protocolDefinition.protocol}'.`);
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
// Fail closed: reject protocolPath-scoped reads on multi-party protocols.
|
|
610
|
+
for (const scope of readScopes) {
|
|
611
|
+
if ('protocolPath' in scope && scope.protocolPath) {
|
|
612
|
+
throw new Error(`Encrypted delegate access scoped by protocolPath on multi-party ` +
|
|
613
|
+
`protocols is not supported yet; use protocol-wide permissions for ` +
|
|
614
|
+
`protocol '${protocolDefinition.protocol}'.`);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
// All read scopes are protocol-wide. Derive context keys for each
|
|
618
|
+
// existing root-level context in the protocol.
|
|
619
|
+
const { keyId, keyUri } = yield getEncryptionKeyInfo(agent, ownerDid);
|
|
620
|
+
const protocolUri = protocolDefinition.protocol;
|
|
621
|
+
// Find root-level types (non-$ keys in structure).
|
|
622
|
+
const rootTypes = Object.keys((_a = protocolDefinition.structure) !== null && _a !== void 0 ? _a : {})
|
|
623
|
+
.filter((k) => !k.startsWith('$'));
|
|
624
|
+
const contextKeys = [];
|
|
625
|
+
const seenContextIds = new Set();
|
|
626
|
+
for (const rootType of rootTypes) {
|
|
627
|
+
// Query all root records for this type.
|
|
628
|
+
const { reply } = yield agent.processDwnRequest({
|
|
629
|
+
author: ownerDid,
|
|
630
|
+
target: ownerDid,
|
|
631
|
+
messageType: DwnInterface.RecordsQuery,
|
|
632
|
+
messageParams: {
|
|
633
|
+
filter: { protocol: protocolUri, protocolPath: rootType },
|
|
634
|
+
},
|
|
635
|
+
});
|
|
636
|
+
for (const entry of (_b = reply.entries) !== null && _b !== void 0 ? _b : []) {
|
|
637
|
+
const rootContextId = ((_c = entry.contextId) === null || _c === void 0 ? void 0 : _c.split('/')[0])
|
|
638
|
+
|| entry.recordId;
|
|
639
|
+
if (!rootContextId || seenContextIds.has(rootContextId)) {
|
|
640
|
+
continue;
|
|
641
|
+
}
|
|
642
|
+
seenContextIds.add(rootContextId);
|
|
643
|
+
const derivationPath = [KeyDerivationScheme.ProtocolContext, rootContextId];
|
|
644
|
+
const derivedBytes = yield agent.keyManager.derivePrivateKeyBytes({
|
|
645
|
+
keyUri, derivationPath,
|
|
646
|
+
});
|
|
647
|
+
const derivedJwk = yield X25519.bytesToPrivateKey({
|
|
648
|
+
privateKeyBytes: derivedBytes,
|
|
649
|
+
});
|
|
650
|
+
contextKeys.push({
|
|
651
|
+
protocol: protocolUri,
|
|
652
|
+
contextId: rootContextId,
|
|
653
|
+
derivedPrivateKey: {
|
|
654
|
+
rootKeyId: keyId,
|
|
655
|
+
derivationScheme: KeyDerivationScheme.ProtocolContext,
|
|
656
|
+
derivationPath,
|
|
657
|
+
derivedPrivateKey: derivedJwk,
|
|
658
|
+
},
|
|
659
|
+
});
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
return contextKeys;
|
|
663
|
+
});
|
|
664
|
+
}
|
|
417
665
|
// ---------------------------------------------------------------------------
|
|
418
666
|
// Full wallet-side flow (provider submits response)
|
|
419
667
|
// ---------------------------------------------------------------------------
|
|
@@ -434,16 +682,158 @@ function submitConnectResponse(selectedDid, connectRequest, pin, agent) {
|
|
|
434
682
|
return __awaiter(this, void 0, void 0, function* () {
|
|
435
683
|
const delegateBearerDid = yield DidJwk.create();
|
|
436
684
|
const delegatePortableDid = yield delegateBearerDid.export();
|
|
685
|
+
// Add X25519 key derived from the delegate's Ed25519 key.
|
|
686
|
+
// did:jwk only supports one verification method, but DWN encryption
|
|
687
|
+
// requires X25519 for key agreement. Including the derived X25519
|
|
688
|
+
// private key in the PortableDid ensures the delegate agent's KMS
|
|
689
|
+
// has both keys after import. The Ed25519→X25519 conversion is a
|
|
690
|
+
// standard cryptographic operation (RFC 8032 / libsodium).
|
|
691
|
+
const delegateEdPrivateKey = delegatePortableDid.privateKeys[0];
|
|
692
|
+
const delegateX25519PrivateKey = yield Ed25519.convertPrivateKeyToX25519({
|
|
693
|
+
privateKey: delegateEdPrivateKey,
|
|
694
|
+
});
|
|
695
|
+
delegatePortableDid.privateKeys.push(delegateX25519PrivateKey);
|
|
696
|
+
// Derive the delegate's key-delivery ProtocolPath leaf public key.
|
|
697
|
+
// This is the pre-derived key that the owner will use later when writing
|
|
698
|
+
// contextKey records addressed to this delegate. The owner cannot derive
|
|
699
|
+
// this from the delegate's root public key alone (HKDF needs the private
|
|
700
|
+
// key), so we compute it now while we have temporary access to the
|
|
701
|
+
// delegate's private key material.
|
|
702
|
+
const delegateX25519PrivateKeyBytes = yield X25519.privateKeyToBytes({
|
|
703
|
+
privateKey: delegateX25519PrivateKey,
|
|
704
|
+
});
|
|
705
|
+
const keyDeliveryDerivationPath = [
|
|
706
|
+
KeyDerivationScheme.ProtocolPath,
|
|
707
|
+
KeyDeliveryProtocolDefinition.protocol,
|
|
708
|
+
'contextKey',
|
|
709
|
+
];
|
|
710
|
+
const delegateLeafPrivateKeyBytes = yield HdKey.derivePrivateKeyBytes(delegateX25519PrivateKeyBytes, keyDeliveryDerivationPath);
|
|
711
|
+
const delegateLeafPrivateKeyJwk = yield X25519.bytesToPrivateKey({
|
|
712
|
+
privateKeyBytes: delegateLeafPrivateKeyBytes,
|
|
713
|
+
});
|
|
714
|
+
const delegateKeyDeliveryLeafPublicKey = yield X25519.getPublicKey({
|
|
715
|
+
key: delegateLeafPrivateKeyJwk,
|
|
716
|
+
});
|
|
717
|
+
// The rootKeyId is the delegate's keyAgreement VM id (e.g. `did:jwk:...#0`).
|
|
718
|
+
// For did:jwk this is the Ed25519 VM, but getEncryptionKeyInfo() also returns
|
|
719
|
+
// this same id after Ed25519→X25519 conversion. The DWN SDK matches the JWE
|
|
720
|
+
// `kid` header against the KeyDecrypter's `rootKeyId`, so both sides must use
|
|
721
|
+
// the same id — which they do because both derive from verificationMethod.id
|
|
722
|
+
// of the keyAgreement relationship.
|
|
723
|
+
const delegateKeyAgreementVmId = delegateBearerDid.document.verificationMethod[0].id;
|
|
724
|
+
const delegateKeyDeliveryData = {
|
|
725
|
+
rootKeyId: delegateKeyAgreementVmId,
|
|
726
|
+
publicKeyJwk: delegateKeyDeliveryLeafPublicKey,
|
|
727
|
+
};
|
|
728
|
+
// Derive scope-aware decryption keys for encrypted protocols.
|
|
729
|
+
// Single-party: ProtocolPath keys (protocol-wide or exact-path).
|
|
730
|
+
// Multi-party: ProtocolContext keys (per rootContextId).
|
|
731
|
+
// Write-only delegates receive no decryption capability.
|
|
732
|
+
const delegateDecryptionKeys = [];
|
|
733
|
+
const delegateContextKeys = [];
|
|
734
|
+
const delegateMultiPartyProtocols = [];
|
|
437
735
|
const delegateGrantPromises = connectRequest.permissionRequests.map((permissionRequest) => __awaiter(this, void 0, void 0, function* () {
|
|
736
|
+
var _a;
|
|
438
737
|
const { protocolDefinition, permissionScopes } = permissionRequest;
|
|
439
738
|
const grantsMatchProtocolUri = permissionScopes.every(scope => 'protocol' in scope && scope.protocol === protocolDefinition.protocol);
|
|
440
739
|
if (!grantsMatchProtocolUri) {
|
|
441
740
|
throw new Error('All permission scopes must match the protocol URI they are provided with.');
|
|
442
741
|
}
|
|
443
742
|
yield prepareProtocol(selectedDid, agent, protocolDefinition);
|
|
444
|
-
|
|
743
|
+
const hasEncryptedTypes = Object.values((_a = protocolDefinition.types) !== null && _a !== void 0 ? _a : {})
|
|
744
|
+
.some((type) => (type === null || type === void 0 ? void 0 : type.encryptionRequired) === true);
|
|
745
|
+
if (hasEncryptedTypes) {
|
|
746
|
+
const { multiParty, singleParty } = classifyProtocolRoots(protocolDefinition);
|
|
747
|
+
if (multiParty.length > 0 && singleParty.length > 0) {
|
|
748
|
+
// Mixed protocol: some roots are multi-party, others single-party.
|
|
749
|
+
// We cannot safely model this with either key type alone.
|
|
750
|
+
throw new Error(`Encrypted delegate access for protocols with mixed single-party ` +
|
|
751
|
+
`and multi-party roots is not supported yet. ` +
|
|
752
|
+
`Protocol '${protocolDefinition.protocol}' has multi-party roots ` +
|
|
753
|
+
`[${multiParty.join(', ')}] and single-party roots ` +
|
|
754
|
+
`[${singleParty.join(', ')}].`);
|
|
755
|
+
}
|
|
756
|
+
if (multiParty.length > 0) {
|
|
757
|
+
// Pure multi-party: derive per-context keys for existing contexts.
|
|
758
|
+
// Unsupported scope shapes (protocolPath, contextId) throw.
|
|
759
|
+
const ctxKeys = yield deriveContextKeysForDelegate(agent, selectedDid, protocolDefinition, permissionScopes);
|
|
760
|
+
delegateContextKeys.push(...ctxKeys);
|
|
761
|
+
// Only register the protocol for post-connect delivery if the
|
|
762
|
+
// delegate has at least one read-like scope. Write-only delegates
|
|
763
|
+
// must NOT receive context keys — they have no decryption need.
|
|
764
|
+
const readMethods = new Set([
|
|
765
|
+
DwnMethodName.Read, DwnMethodName.Query, DwnMethodName.Subscribe,
|
|
766
|
+
]);
|
|
767
|
+
const hasReadLikeScope = permissionScopes.some((s) => isRecordPermissionScope(s) && readMethods.has(s.method));
|
|
768
|
+
if (hasReadLikeScope) {
|
|
769
|
+
delegateMultiPartyProtocols.push(protocolDefinition.protocol);
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
else {
|
|
773
|
+
// Pure single-party: derive ProtocolPath keys.
|
|
774
|
+
// Unsupported scope shapes (contextId) throw.
|
|
775
|
+
const keys = yield deriveScopedDecryptionKeys(agent, selectedDid, protocolDefinition.protocol, permissionScopes, protocolDefinition);
|
|
776
|
+
delegateDecryptionKeys.push(...keys);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
return EnboxConnectProtocol.createPermissionGrants(selectedDid, delegateBearerDid, agent, permissionScopes, delegateKeyDeliveryData);
|
|
445
780
|
}));
|
|
446
781
|
const delegateGrants = (yield Promise.all(delegateGrantPromises)).flat();
|
|
782
|
+
// Create per-grant contextId-scoped revocation grants.
|
|
783
|
+
// Each revocation grant authorizes the delegate to write a revocation
|
|
784
|
+
// ONLY for the specific session grant it corresponds to.
|
|
785
|
+
const permissionsApi = new AgentPermissionsApi({ agent });
|
|
786
|
+
const sessionRevocations = [];
|
|
787
|
+
let revGrantEndpoints = [];
|
|
788
|
+
try {
|
|
789
|
+
revGrantEndpoints = yield agent.dwn.getDwnEndpointUrlsForTarget(selectedDid);
|
|
790
|
+
}
|
|
791
|
+
catch (_a) {
|
|
792
|
+
// Endpoint resolution failure — revocation grants will be local-only until sync.
|
|
793
|
+
}
|
|
794
|
+
// Snapshot the current length — revocation grants are appended to delegateGrants
|
|
795
|
+
// below, but we must NOT iterate over them (they are meta-grants, not session grants).
|
|
796
|
+
const sessionGrantCount = delegateGrants.length;
|
|
797
|
+
for (let i = 0; i < sessionGrantCount; i++) {
|
|
798
|
+
const grantMessage = delegateGrants[i];
|
|
799
|
+
const revGrant = yield permissionsApi.createGrant({
|
|
800
|
+
delegated: true,
|
|
801
|
+
store: true,
|
|
802
|
+
grantedTo: delegateBearerDid.uri,
|
|
803
|
+
scope: {
|
|
804
|
+
interface: DwnInterfaceName.Records,
|
|
805
|
+
method: DwnMethodName.Write,
|
|
806
|
+
protocol: PermissionsProtocol.uri,
|
|
807
|
+
contextId: grantMessage.recordId,
|
|
808
|
+
},
|
|
809
|
+
dateExpires: '2040-06-25T16:09:16.693356Z',
|
|
810
|
+
author: selectedDid,
|
|
811
|
+
});
|
|
812
|
+
sessionRevocations.push({
|
|
813
|
+
grantId: grantMessage.recordId,
|
|
814
|
+
revocationGrantId: revGrant.message.recordId,
|
|
815
|
+
});
|
|
816
|
+
// Fan out the revocation grant to all owner DWN endpoints (same
|
|
817
|
+
// as session grants) so that immediate disconnect can send a
|
|
818
|
+
// delegated revocation to a remote DWN that recognises the grant.
|
|
819
|
+
const _b = revGrant.message, { encodedData: revEncoded } = _b, revRawMessage = __rest(_b, ["encodedData"]);
|
|
820
|
+
const revData = Convert.base64Url(revEncoded).toUint8Array();
|
|
821
|
+
for (const dwnUrl of revGrantEndpoints) {
|
|
822
|
+
try {
|
|
823
|
+
yield agent.rpc.sendDwnRequest({
|
|
824
|
+
dwnUrl,
|
|
825
|
+
targetDid: selectedDid,
|
|
826
|
+
message: revRawMessage,
|
|
827
|
+
data: new Blob([revData]),
|
|
828
|
+
});
|
|
829
|
+
}
|
|
830
|
+
catch (_c) {
|
|
831
|
+
// Best-effort — sync will deliver eventually.
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
// Include the revocation grant in the delegate grants for distribution
|
|
835
|
+
delegateGrants.push(revGrant.message);
|
|
836
|
+
}
|
|
447
837
|
logger.log('Building connect response...');
|
|
448
838
|
const responseObject = yield EnboxConnectProtocol.createConnectResponse({
|
|
449
839
|
providerDid: selectedDid,
|
|
@@ -452,6 +842,10 @@ function submitConnectResponse(selectedDid, connectRequest, pin, agent) {
|
|
|
452
842
|
nonce: connectRequest.nonce,
|
|
453
843
|
delegateGrants,
|
|
454
844
|
delegatePortableDid,
|
|
845
|
+
delegateDecryptionKeys: delegateDecryptionKeys.length > 0 ? delegateDecryptionKeys : undefined,
|
|
846
|
+
delegateContextKeys: delegateContextKeys.length > 0 ? delegateContextKeys : undefined,
|
|
847
|
+
delegateMultiPartyProtocols: delegateMultiPartyProtocols.length > 0 ? delegateMultiPartyProtocols : undefined,
|
|
848
|
+
sessionRevocations: sessionRevocations.length > 0 ? sessionRevocations : undefined,
|
|
455
849
|
});
|
|
456
850
|
logger.log('Signing connect response...');
|
|
457
851
|
const responseObjectJwt = yield EnboxConnectProtocol.signJwt({
|
|
@@ -499,5 +893,8 @@ export const EnboxConnectProtocol = {
|
|
|
499
893
|
createConnectResponse,
|
|
500
894
|
createPermissionGrants,
|
|
501
895
|
submitConnectResponse,
|
|
896
|
+
deriveScopedDecryptionKeys,
|
|
897
|
+
deriveContextKeysForDelegate,
|
|
898
|
+
classifyProtocolRoots,
|
|
502
899
|
};
|
|
503
900
|
//# sourceMappingURL=enbox-connect-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enbox-connect-protocol.js","sourceRoot":"","sources":["../../src/enbox-connect-protocol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enbox-connect-protocol.js","sourceRoot":"","sources":["../../src/enbox-connect-protocol.ts"],"names":[],"mappings":"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"}
|