@interop/wallet-core 0.44.0 → 0.46.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/clients/revocation.d.ts +2 -25
- package/dist/clients/revocation.d.ts.map +1 -1
- package/dist/clients/revocation.js +25 -96
- package/dist/clients/revocation.js.map +1 -1
- package/dist/keyring/record.d.ts +4 -3
- package/dist/keyring/record.d.ts.map +1 -1
- package/dist/keyring/record.js.map +1 -1
- package/dist/keys/index.d.ts +7 -0
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +6 -0
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/rosterLogStore.d.ts.map +1 -1
- package/dist/keys/rosterLogStore.js +18 -1
- package/dist/keys/rosterLogStore.js.map +1 -1
- package/dist/keys/userKeyRosterCascade.d.ts +121 -0
- package/dist/keys/userKeyRosterCascade.d.ts.map +1 -0
- package/dist/keys/userKeyRosterCascade.js +125 -0
- package/dist/keys/userKeyRosterCascade.js.map +1 -0
- package/dist/recovery/index.d.ts +1 -1
- package/dist/recovery/index.d.ts.map +1 -1
- package/dist/recovery/index.js +1 -1
- package/dist/recovery/index.js.map +1 -1
- package/dist/recovery/recoveryDelegation.d.ts +27 -40
- package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
- package/dist/recovery/recoveryDelegation.js +119 -53
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +9 -2
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +4 -2
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/resourceLog/controller.d.ts +38 -3
- package/dist/resourceLog/controller.d.ts.map +1 -1
- package/dist/resourceLog/controller.js +106 -10
- package/dist/resourceLog/controller.js.map +1 -1
- package/dist/resourceLog/errors.d.ts +22 -1
- package/dist/resourceLog/errors.d.ts.map +1 -1
- package/dist/resourceLog/errors.js +23 -1
- package/dist/resourceLog/errors.js.map +1 -1
- package/dist/resourceLog/index.d.ts +8 -6
- package/dist/resourceLog/index.d.ts.map +1 -1
- package/dist/resourceLog/index.js +7 -5
- package/dist/resourceLog/index.js.map +1 -1
- package/dist/resourceLog/license.d.ts +44 -0
- package/dist/resourceLog/license.d.ts.map +1 -0
- package/dist/resourceLog/license.js +63 -0
- package/dist/resourceLog/license.js.map +1 -0
- package/dist/resourceLog/verify.d.ts +3 -2
- package/dist/resourceLog/verify.d.ts.map +1 -1
- package/dist/resourceLog/verify.js +30 -8
- package/dist/resourceLog/verify.js.map +1 -1
- package/dist/unlock/index.d.ts +22 -8
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +21 -8
- package/dist/unlock/index.js.map +1 -1
- package/dist/unlock/ladder.d.ts +76 -0
- package/dist/unlock/ladder.d.ts.map +1 -1
- package/dist/unlock/ladder.js +111 -1
- package/dist/unlock/ladder.js.map +1 -1
- package/dist/unlock/retire.d.ts +126 -0
- package/dist/unlock/retire.d.ts.map +1 -0
- package/dist/unlock/retire.js +83 -0
- package/dist/unlock/retire.js.map +1 -0
- package/dist/unlock/standingWebvh.d.ts +50 -3
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +78 -9
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/unlock/unlockRecord.d.ts +28 -8
- package/dist/unlock/unlockRecord.d.ts.map +1 -1
- package/dist/unlock/unlockRecord.js +93 -13
- package/dist/unlock/unlockRecord.js.map +1 -1
- package/dist/webvh/companion.d.ts +681 -0
- package/dist/webvh/companion.d.ts.map +1 -0
- package/dist/webvh/companion.js +1151 -0
- package/dist/webvh/companion.js.map +1 -0
- package/dist/webvh/delegatedLogStore.d.ts +67 -0
- package/dist/webvh/delegatedLogStore.d.ts.map +1 -0
- package/dist/webvh/delegatedLogStore.js +104 -0
- package/dist/webvh/delegatedLogStore.js.map +1 -0
- package/dist/webvh/didWebvh.d.ts +109 -5
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +186 -21
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/index.d.ts +34 -5
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +31 -5
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/listClients.d.ts +33 -0
- package/dist/webvh/listClients.d.ts.map +1 -1
- package/dist/webvh/listClients.js +27 -0
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/standingZcap.d.ts +48 -0
- package/dist/webvh/standingZcap.d.ts.map +1 -0
- package/dist/webvh/standingZcap.js +54 -0
- package/dist/webvh/standingZcap.js.map +1 -0
- package/dist/webvh/wasIdStore.d.ts +36 -6
- package/dist/webvh/wasIdStore.d.ts.map +1 -1
- package/dist/webvh/wasIdStore.js +32 -13
- package/dist/webvh/wasIdStore.js.map +1 -1
- package/dist/webvh/zcap.d.ts +24 -0
- package/dist/webvh/zcap.d.ts.map +1 -1
- package/dist/webvh/zcap.js +42 -0
- package/dist/webvh/zcap.js.map +1 -1
- package/package.json +9 -9
|
@@ -14,10 +14,23 @@
|
|
|
14
14
|
* VERBATIM through every re-mint, so the bind timestamp (which apps pin
|
|
15
15
|
* freshness on) and the email survive a re-mint that cannot decrypt them.
|
|
16
16
|
* - `bridge`: the pre-minted PUT-on-`did.jsonl` delegation, sealed in its own
|
|
17
|
-
* self-contained `{ encryption, wrapped }` member.
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* self-contained `{ encryption, wrapped }` member. Re-mintable: revoking
|
|
18
|
+
* the client that signed the delegation rots it, and the revocation
|
|
19
|
+
* cascade re-seals a fresh one to the credential's unlock KAK public half
|
|
20
|
+
* ({@link remintUnlockRecordDelegations}).
|
|
21
|
+
* - `delegatedClients` (standing credentials only): the pre-minted GET+PUT
|
|
22
|
+
* delegation over the auxiliary companion Space's items subtree, sealed as
|
|
23
|
+
* its own self-contained member -- what lets a transient login reach the
|
|
24
|
+
* companion (delegated-clients) log with nothing but the credential. It
|
|
25
|
+
* rots on exactly the bridge's axis (same signer, same current-key-set
|
|
26
|
+
* rule), so the re-mint reseals both members in one pass. Absent on a
|
|
27
|
+
* recovery code, which needs no companion authority; parsed with `ladder`'s
|
|
28
|
+
* tolerant handling, not `bridge`'s hard refusal. The `binding` MAC does
|
|
29
|
+
* not cover it (the v2 context label stays): like the bridge it mirrors,
|
|
30
|
+
* it sits under the frame proof only, and a host-swapped member is bounded
|
|
31
|
+
* by the account document's independent service entry plus the fact that a
|
|
32
|
+
* wrong Space yields nothing the transient login's self-computed ladder
|
|
33
|
+
* keys verify.
|
|
21
34
|
* - `ladder` (standing credentials only): the random 32-byte update-key
|
|
22
35
|
* ladder seed (`./ladder`), sealed in its own `{ encryption, wrapped }`
|
|
23
36
|
* member and carried VERBATIM through re-mints -- a re-mint can never read
|
|
@@ -198,6 +211,9 @@ async function openMember({ member, keyAgreementKey, keyResolver }) {
|
|
|
198
211
|
* @param options.pointer {AccountPointer} the account pointer
|
|
199
212
|
* @param options.delegation {IZcap} the PUT-on-`did.jsonl` delegation to
|
|
200
213
|
* the credential-derived signing DID
|
|
214
|
+
* @param [options.delegatedClients] {IZcap} the companion-Space delegation
|
|
215
|
+
* (GET+PUT over the auxiliary Space's items subtree), for a standing
|
|
216
|
+
* credential (a recovery code carries none)
|
|
201
217
|
* @param [options.ladderSeed] {Uint8Array} the update-key ladder seed, for
|
|
202
218
|
* a standing credential (a recovery code carries none)
|
|
203
219
|
* @param options.keyAgreementKey {IKeyAgreementKey} the credential's unlock
|
|
@@ -210,7 +226,7 @@ async function openMember({ member, keyAgreementKey, keyResolver }) {
|
|
|
210
226
|
* freshness.
|
|
211
227
|
* @returns {Promise<SignedUnlockRecord>}
|
|
212
228
|
*/
|
|
213
|
-
export async function wrapUnlockRecord({ controller, email, pointer, delegation, ladderSeed, keyAgreementKey, signer, bindingMacKey, createdAt }) {
|
|
229
|
+
export async function wrapUnlockRecord({ controller, email, pointer, delegation, delegatedClients, ladderSeed, keyAgreementKey, signer, bindingMacKey, createdAt }) {
|
|
214
230
|
if (ladderSeed && ladderSeed.length !== LADDER_SEED_BYTES) {
|
|
215
231
|
throw new Error('The ladder seed must be 32 bytes.');
|
|
216
232
|
}
|
|
@@ -234,6 +250,12 @@ export async function wrapUnlockRecord({ controller, email, pointer, delegation,
|
|
|
234
250
|
keyAgreementKey
|
|
235
251
|
});
|
|
236
252
|
const bridge = await sealMember({ data: { delegation }, keyAgreementKey });
|
|
253
|
+
const sealedDelegatedClients = delegatedClients
|
|
254
|
+
? await sealMember({
|
|
255
|
+
data: { delegation: delegatedClients },
|
|
256
|
+
keyAgreementKey
|
|
257
|
+
})
|
|
258
|
+
: undefined;
|
|
237
259
|
const ladder = ladderSeed
|
|
238
260
|
? await sealMember({
|
|
239
261
|
data: { ladderSeed: base64urlnopad.encode(ladderSeed) },
|
|
@@ -245,7 +267,14 @@ export async function wrapUnlockRecord({ controller, email, pointer, delegation,
|
|
|
245
267
|
encryption: shell.encryption,
|
|
246
268
|
wrapped: shell.wrapped,
|
|
247
269
|
signer,
|
|
248
|
-
members: {
|
|
270
|
+
members: {
|
|
271
|
+
binding,
|
|
272
|
+
bridge,
|
|
273
|
+
...(sealedDelegatedClients
|
|
274
|
+
? { delegatedClients: sealedDelegatedClients }
|
|
275
|
+
: {}),
|
|
276
|
+
...(ladder ? { ladder } : {})
|
|
277
|
+
}
|
|
249
278
|
}));
|
|
250
279
|
}
|
|
251
280
|
/**
|
|
@@ -287,12 +316,18 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
287
316
|
label: 'unlock'
|
|
288
317
|
});
|
|
289
318
|
const binding = unlockRecordBinding({ record });
|
|
290
|
-
const { bridge: rawBridge, ladder: rawLadder } = record;
|
|
319
|
+
const { bridge: rawBridge, delegatedClients: rawDelegatedClients, ladder: rawLadder } = record;
|
|
291
320
|
if (rawBridge === undefined) {
|
|
292
321
|
throw new Error('The unlock record carries no bridge member; it predates the standing ' +
|
|
293
322
|
'layout and the credential must be rebound.');
|
|
294
323
|
}
|
|
295
324
|
const bridge = parseSealedMember({ value: rawBridge, name: 'bridge' });
|
|
325
|
+
const delegatedClients = rawDelegatedClients === undefined
|
|
326
|
+
? undefined
|
|
327
|
+
: parseSealedMember({
|
|
328
|
+
value: rawDelegatedClients,
|
|
329
|
+
name: 'delegatedClients'
|
|
330
|
+
});
|
|
296
331
|
const ladder = rawLadder === undefined
|
|
297
332
|
? undefined
|
|
298
333
|
: parseSealedMember({ value: rawLadder, name: 'ladder' });
|
|
@@ -339,6 +374,19 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
339
374
|
typeof bridgePlaintext.delegation !== 'object') {
|
|
340
375
|
throw new Error('Unlock record is missing its did.jsonl delegation.');
|
|
341
376
|
}
|
|
377
|
+
let delegatedClientsDelegation;
|
|
378
|
+
if (delegatedClients) {
|
|
379
|
+
const plaintext = (await openMember({
|
|
380
|
+
member: delegatedClients,
|
|
381
|
+
keyAgreementKey,
|
|
382
|
+
keyResolver
|
|
383
|
+
}));
|
|
384
|
+
if (plaintext.delegation === null ||
|
|
385
|
+
typeof plaintext.delegation !== 'object') {
|
|
386
|
+
throw new Error('Unlock record has a malformed delegatedClients member.');
|
|
387
|
+
}
|
|
388
|
+
delegatedClientsDelegation = plaintext.delegation;
|
|
389
|
+
}
|
|
342
390
|
let ladderSeed;
|
|
343
391
|
if (ladder) {
|
|
344
392
|
const ladderPlaintext = (await openMember({
|
|
@@ -385,6 +433,9 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
385
433
|
: {}),
|
|
386
434
|
pointer,
|
|
387
435
|
delegation: bridgePlaintext.delegation,
|
|
436
|
+
...(delegatedClientsDelegation
|
|
437
|
+
? { delegatedClients: delegatedClientsDelegation }
|
|
438
|
+
: {}),
|
|
388
439
|
...(ladderSeed ? { ladderSeed } : {}),
|
|
389
440
|
createdAt
|
|
390
441
|
},
|
|
@@ -392,15 +443,23 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
392
443
|
};
|
|
393
444
|
}
|
|
394
445
|
/**
|
|
395
|
-
* Re-mints an unlock record's
|
|
396
|
-
* replaces a rotted or expiring
|
|
446
|
+
* Re-mints an unlock record's pre-minted delegations: the revocation-cascade
|
|
447
|
+
* path that replaces a rotted or expiring bridge (and, where the record
|
|
448
|
+
* carries one, its companion-Space sibling) while touching nothing else. The
|
|
397
449
|
* shell, the ladder member, and the binding are carried VERBATIM (the re-mint
|
|
398
450
|
* cannot decrypt any of them and does not need to -- each is self-contained
|
|
399
|
-
* and the binding covers the core),
|
|
451
|
+
* and the binding covers the core), the fresh delegations are sealed to the
|
|
400
452
|
* credential's unlock KAK public half, and the frame is re-signed by the
|
|
401
453
|
* acting client's account key -- the mixed-signer case the reader settles
|
|
402
454
|
* against the verified document.
|
|
403
455
|
*
|
|
456
|
+
* The two members rot on one axis (same signer, same current-key-set rule,
|
|
457
|
+
* same renewal window), so a re-mint pass reseals both atomically; a
|
|
458
|
+
* `delegatedClients` member the caller supplies no fresh delegation for is
|
|
459
|
+
* carried verbatim, sealed as it stands (self-contained, like the ladder) --
|
|
460
|
+
* the fallback for a pass that cannot rebuild the companion target, never
|
|
461
|
+
* the intended steady state.
|
|
462
|
+
*
|
|
404
463
|
* A record with no binding cannot be re-minted ({@link UnlockBindingError});
|
|
405
464
|
* its credential must be rebound.
|
|
406
465
|
*
|
|
@@ -408,28 +467,49 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
408
467
|
* @param options.record {unknown} the standing stored record
|
|
409
468
|
* @param options.delegation {IZcap} the freshly minted `did.jsonl`
|
|
410
469
|
* delegation
|
|
470
|
+
* @param [options.delegatedClients] {IZcap} the freshly minted
|
|
471
|
+
* companion-Space delegation; when absent, an existing `delegatedClients`
|
|
472
|
+
* member travels verbatim
|
|
411
473
|
* @param options.keyAgreementKey {IKeyAgreementKey} the credential's unlock
|
|
412
474
|
* KAK, public half only
|
|
413
475
|
* @param options.signer {RecordSigner} the acting client's account key
|
|
414
476
|
* @returns {Promise<SignedUnlockRecord>}
|
|
415
477
|
*/
|
|
416
|
-
export async function
|
|
478
|
+
export async function remintUnlockRecordDelegations({ record, delegation, delegatedClients, keyAgreementKey, signer }) {
|
|
417
479
|
const { encryption, wrapped } = parseRecordFrame({
|
|
418
480
|
record,
|
|
419
481
|
label: 'unlock'
|
|
420
482
|
});
|
|
421
483
|
const binding = unlockRecordBinding({ record });
|
|
422
|
-
const { ladder: rawLadder } = record;
|
|
484
|
+
const { delegatedClients: rawDelegatedClients, ladder: rawLadder } = record;
|
|
423
485
|
const ladder = rawLadder === undefined
|
|
424
486
|
? undefined
|
|
425
487
|
: parseSealedMember({ value: rawLadder, name: 'ladder' });
|
|
426
488
|
const bridge = await sealMember({ data: { delegation }, keyAgreementKey });
|
|
489
|
+
const sealedDelegatedClients = delegatedClients
|
|
490
|
+
? await sealMember({
|
|
491
|
+
data: { delegation: delegatedClients },
|
|
492
|
+
keyAgreementKey
|
|
493
|
+
})
|
|
494
|
+
: rawDelegatedClients === undefined
|
|
495
|
+
? undefined
|
|
496
|
+
: parseSealedMember({
|
|
497
|
+
value: rawDelegatedClients,
|
|
498
|
+
name: 'delegatedClients'
|
|
499
|
+
});
|
|
427
500
|
return (await signRecordFrame({
|
|
428
501
|
version: KEYRING_RECORD_VERSION,
|
|
429
502
|
encryption,
|
|
430
503
|
wrapped,
|
|
431
504
|
signer,
|
|
432
|
-
members: {
|
|
505
|
+
members: {
|
|
506
|
+
binding,
|
|
507
|
+
bridge,
|
|
508
|
+
...(sealedDelegatedClients
|
|
509
|
+
? { delegatedClients: sealedDelegatedClients }
|
|
510
|
+
: {}),
|
|
511
|
+
...(ladder ? { ladder } : {})
|
|
512
|
+
}
|
|
433
513
|
}));
|
|
434
514
|
}
|
|
435
515
|
//# sourceMappingURL=unlockRecord.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlockRecord.js","sourceRoot":"","sources":["../../src/unlock/unlockRecord.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"unlockRecord.js","sourceRoot":"","sources":["../../src/unlock/unlockRecord.ts"],"names":[],"mappings":"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"}
|