@interop/wallet-core 0.60.0 → 0.62.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/clientAnnex/forgetLast.d.ts +66 -19
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +120 -38
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/heal.d.ts +64 -29
- package/dist/clientAnnex/heal.d.ts.map +1 -1
- package/dist/clientAnnex/heal.js +292 -54
- package/dist/clientAnnex/heal.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +2 -2
- package/dist/clientAnnex/index.d.ts.map +1 -1
- package/dist/clientAnnex/index.js +2 -2
- package/dist/clientAnnex/index.js.map +1 -1
- package/dist/clientAnnex/ladder.d.ts +246 -18
- package/dist/clientAnnex/ladder.d.ts.map +1 -1
- package/dist/clientAnnex/ladder.js +742 -53
- package/dist/clientAnnex/ladder.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +113 -6
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +208 -27
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +37 -1
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +34 -10
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +32 -7
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.js +124 -23
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
- package/dist/clientAnnex/zcap.js +2 -2
- package/dist/clientAnnex/zcap.js.map +1 -1
- package/dist/identity/agents.js +2 -2
- package/dist/identity/agents.js.map +1 -1
- package/dist/keys/index.d.ts +1 -1
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +1 -1
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/userKeyRoster.d.ts +32 -2
- package/dist/keys/userKeyRoster.d.ts.map +1 -1
- package/dist/keys/userKeyRoster.js +40 -2
- package/dist/keys/userKeyRoster.js.map +1 -1
- package/dist/recovery/recoveryDelegation.d.ts +4 -1
- package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
- package/dist/recovery/recoveryDelegation.js +9 -7
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +42 -2
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +160 -18
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/unlock/index.d.ts +2 -2
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +1 -1
- package/dist/unlock/index.js.map +1 -1
- package/dist/unlock/retire.d.ts +62 -9
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +59 -5
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingWebvh.d.ts +131 -21
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +239 -54
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/webvh/didWebvh.d.ts +3 -2
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +7 -5
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/index.d.ts +5 -4
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +4 -3
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/keyAgreement.d.ts +25 -0
- package/dist/webvh/keyAgreement.d.ts.map +1 -1
- package/dist/webvh/keyAgreement.js +24 -0
- package/dist/webvh/keyAgreement.js.map +1 -1
- package/dist/webvh/listClients.d.ts +31 -18
- package/dist/webvh/listClients.d.ts.map +1 -1
- package/dist/webvh/listClients.js +60 -16
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/revokeClient.d.ts +48 -0
- package/dist/webvh/revokeClient.d.ts.map +1 -1
- package/dist/webvh/revokeClient.js +85 -1
- package/dist/webvh/revokeClient.js.map +1 -1
- package/dist/webvh/zcap.js +3 -3
- package/dist/webvh/zcap.js.map +1 -1
- package/package.json +5 -5
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* The LAST enrolled client's forget: the
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* The LAST enrolled client's forget: the transition ceremony that takes an
|
|
6
|
+
* account from one enrolled client to the client-less, ladder-anchored
|
|
7
|
+
* state -- the same state a credential-anchored signup and a
|
|
8
8
|
* transient recovery produce. Decision 0004's 2026-08-19 amendment fixes the
|
|
9
9
|
* entry order, and it is forced twice over: the server's revocation endpoint
|
|
10
10
|
* verifies a to-be-revoked capability's chain against the CURRENTLY resolved
|
|
@@ -13,11 +13,39 @@
|
|
|
13
13
|
* the client's verification method is gone, nothing can sign the revocation
|
|
14
14
|
* POST at all). So:
|
|
15
15
|
*
|
|
16
|
-
* 1. **The
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
* 1. **The strike-and-reinstall pair**
|
|
17
|
+
* ({@link strikeLadderVmWebvh}, then {@link installLadderVmWebvh}): this
|
|
18
|
+
* credential's own ladder VM leaves the document and returns in the next
|
|
19
|
+
* entry, the client's whole inventory standing throughout. A ladder VM's
|
|
20
|
+
* life is keyed to its credential rather than to the account's client
|
|
21
|
+
* census, so the VM already stands when the transition starts and a bare
|
|
22
|
+
* install would publish nothing; the reinstall is what carries the
|
|
23
|
+
* ceremony's inventory-changing document version under the ceremony-tail
|
|
24
|
+
* license. The strike reaches one credential's VM -- the id derives from
|
|
25
|
+
* the ladder seed -- so another standing credential's VM is untouched.
|
|
26
|
+
* The pair republishes the identical key under the identical id and
|
|
27
|
+
* revokes nothing, so the revocation stage below is undisturbed by it and
|
|
28
|
+
* every unexpired ladder-signed delegation keeps verifying. Its costs are
|
|
29
|
+
* stated rather than hidden: the reinstall reveals a rung that stands in
|
|
30
|
+
* `updateKeys`, as the single install already did, now over two entries;
|
|
31
|
+
* and a run torn between the two leaves the account with no ladder VM
|
|
32
|
+
* while the client still stands, which a re-run mends (the strike no-ops,
|
|
33
|
+
* the install reinstalls). The pair runs only when the rotation is still
|
|
34
|
+
* owed or the VM is missing, so a resumed run past the rotation publishes
|
|
35
|
+
* neither entry.
|
|
36
|
+
*
|
|
37
|
+
* Both entries publish through `clientLogStore`, the store invoked under
|
|
38
|
+
* the ENROLLED client's root authority, and not through the credential's
|
|
39
|
+
* bridge delegation. The bridge is often signed by the very VM the strike
|
|
40
|
+
* removes -- the readiness stage's renewal mints it as the ladder, and
|
|
41
|
+
* stage 6 re-signs it as the ladder again -- so a bridge-invoked reinstall
|
|
42
|
+
* would be authorized against the post-strike document under the
|
|
43
|
+
* current-key-set rule and refused, leaving the account VM-less with every
|
|
44
|
+
* ladder-signed delegation rotted and a re-run failing identically. The
|
|
45
|
+
* client stands until stage 7 and holds root authority on the Space, so
|
|
46
|
+
* its store is the one that carries the pair. Only the HTTP invocation
|
|
47
|
+
* changes: both entries stay ladder-SIGNED.
|
|
48
|
+
* 2. **The roster rotation**, ladder-signed, anchored at the reinstall entry,
|
|
21
49
|
* HTTP-invoked under the still-standing client: the user key rotates off
|
|
22
50
|
* this client's wrap in ONE append (the license's one-shot shape), read
|
|
23
51
|
* back through the credential's standing wrap. Because the append's
|
|
@@ -69,13 +97,20 @@
|
|
|
69
97
|
* client -- an account nothing can write to -- which is why a call that
|
|
70
98
|
* omits the seam is refused before any read.
|
|
71
99
|
* 7. **The removal entry** ({@link forgetLastWebvhClient}): the client's
|
|
72
|
-
* whole document inventory out while the
|
|
100
|
+
* whole document inventory out while the reinstalled ladder VM keeps the
|
|
73
101
|
* account anchored. The app's local wipe runs after this ceremony
|
|
74
102
|
* returns.
|
|
75
103
|
*
|
|
76
104
|
* Torn-state map: every stage detects completion from durable state, so a
|
|
77
105
|
* run torn anywhere before the removal entry reads as "not forgotten" and a
|
|
78
|
-
* re-run converges
|
|
106
|
+
* re-run converges. A tear BETWEEN the pair's two entries is the one worth
|
|
107
|
+
* stating in full: it leaves the account with no ladder VM while the client
|
|
108
|
+
* still stands, and the re-run's reinstall converges because it rides the
|
|
109
|
+
* client's root authority rather than the credential's bridge -- the bridge
|
|
110
|
+
* the strike may itself have rotted cannot authorize that write, and nothing
|
|
111
|
+
* else on a one-client account could. Both entries of the pair are
|
|
112
|
+
* idempotent and the pair is
|
|
113
|
+
* skipped once the rotation has landed, an already-rotated
|
|
79
114
|
* roster skips the append (no second ladder-signed append is ever
|
|
80
115
|
* attempted), the fan-out is staleness-driven, a re-POSTed revocation's 400
|
|
81
116
|
* already-revoked answer reads as success (decision 0006's resume contract),
|
|
@@ -140,8 +175,10 @@ export interface UnlockMethodsRemintReach<Entry extends RecoveryDelegationEntry
|
|
|
140
175
|
}) => Promise<void>;
|
|
141
176
|
}
|
|
142
177
|
/**
|
|
143
|
-
* What a completed last-client forget reports: whether the
|
|
144
|
-
* on this call (`false` on a resumed run
|
|
178
|
+
* What a completed last-client forget reports: whether the reinstall half of
|
|
179
|
+
* the strike-and-reinstall pair ran on this call (`false` on a resumed run
|
|
180
|
+
* that owed no rotation, so neither entry was published), whether the
|
|
181
|
+
* roster's wrap for the
|
|
145
182
|
* forgotten client was retired on this run, the per-collection fan-out
|
|
146
183
|
* result, the generation stage's report, the other unlock methods' record
|
|
147
184
|
* re-mint report (present when the caller supplied the reach: the counts and
|
|
@@ -151,7 +188,7 @@ export interface UnlockMethodsRemintReach<Entry extends RecoveryDelegationEntry
|
|
|
151
188
|
* the roster descriptor it was read from.
|
|
152
189
|
*/
|
|
153
190
|
export interface LastEnrolledClientForgetResult {
|
|
154
|
-
|
|
191
|
+
reinstalled: boolean;
|
|
155
192
|
rotated: boolean;
|
|
156
193
|
collections: UserKeyCascadeResult;
|
|
157
194
|
generation: GenerationDelegationRetirement;
|
|
@@ -199,10 +236,18 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
199
236
|
* @param options {object}
|
|
200
237
|
* @param options.logStore {UnlockLogStore} the credential's delegated
|
|
201
238
|
* `did.jsonl` bridge store; also serves the ceremony's public reads
|
|
239
|
+
* @param options.clientLogStore {UnlockLogStore} the account-log store
|
|
240
|
+
* invoked under the STILL-STANDING enrolled client's root authority (an
|
|
241
|
+
* app's `wasWebvhIdStore` satisfies the narrower shape). The
|
|
242
|
+
* strike-and-reinstall pair publishes through it, because the bridge
|
|
243
|
+
* `logStore` is often signed by the ladder VM the strike removes and the
|
|
244
|
+
* reinstall would then be refused under the current-key-set rule. Both
|
|
245
|
+
* entries stay ladder-signed; only the HTTP invocation differs. Required:
|
|
246
|
+
* a call without it throws a `TypeError` before any read
|
|
202
247
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
203
248
|
* pins, the account log's slot derived from `annex.accountSpaceId`. Every
|
|
204
|
-
* account-log read the ceremony makes -- the
|
|
205
|
-
*
|
|
249
|
+
* account-log read the ceremony makes -- the opening read, and the strike,
|
|
250
|
+
* reinstall, and removal entries' own reads inside their conflict-retry
|
|
206
251
|
* loops -- is checked against the pinned head, so a served truncated
|
|
207
252
|
* prefix is refused (`ResourceLogContinuityError`, `rollback`) before any
|
|
208
253
|
* roster append or log publish, and each entry advances the pin to the
|
|
@@ -221,8 +266,9 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
221
266
|
* @param options.rosterStoreFor {Function} `({ did, log }) => store` --
|
|
222
267
|
* builds the `key-map/user-key.jsonl` roster store whose appends are
|
|
223
268
|
* SIGNED BY THE LADDER VM and whose controller view resolves from the
|
|
224
|
-
* supplied
|
|
225
|
-
*
|
|
269
|
+
* supplied log -- the pre-transition head for the opening read, the
|
|
270
|
+
* post-reinstall head for the rotation (the inventory-changing anchor the
|
|
271
|
+
* ceremony-tail license admits), while its HTTP requests invoke under the still-standing
|
|
226
272
|
* client
|
|
227
273
|
* @param options.credentialKeyAgreementKey {IKeyAgreementKey} the standing
|
|
228
274
|
* credential's key-agreement key -- the recipient whose wrap survives the
|
|
@@ -261,7 +307,7 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
261
307
|
* @param options.onBeforeRemoval {Function}
|
|
262
308
|
* `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
|
|
263
309
|
* after the record re-mint stage, immediately before the removal entry,
|
|
264
|
-
* with the post-
|
|
310
|
+
* with the post-reinstall published state. The caller re-signs the login
|
|
265
311
|
* credential's bridge and `delegatedClients` sibling with the ladder VM
|
|
266
312
|
* and re-seals its unlock record here -- the only stage that reaches the
|
|
267
313
|
* login credential's record, which the `unlockMethods` pass skips. Must
|
|
@@ -270,8 +316,9 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
270
316
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
271
317
|
* @returns {Promise<LastEnrolledClientForgetResult>}
|
|
272
318
|
*/
|
|
273
|
-
export declare function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now }: {
|
|
319
|
+
export declare function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now }: {
|
|
274
320
|
logStore: UnlockLogStore;
|
|
321
|
+
clientLogStore: UnlockLogStore;
|
|
275
322
|
pinStore?: ResourceLogPinStore;
|
|
276
323
|
ladderSeed: Uint8Array;
|
|
277
324
|
forgottenClient: RevokedClientKeys;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgetLast.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"forgetLast.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2HG;AACH,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC7B,MAAM,mCAAmC,CAAA;AAS1C,OAAO,EASL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EACN,YAAY,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;CAC3E;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB,CACvC,KAAK,SAAS,uBAAuB,GAAG,uBAAuB;IAE/D,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,oBAAoB,EAAE,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,KAAK,CAAA;KAAE,KAAK,UAAU,CAAA;IACpE,WAAW,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,oBAAoB,CAAA;IACjC,UAAU,EAAE,8BAA8B,CAAA;IAC1C,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,mBAAmB,EAAE,CAAA;KAChC,CAAA;IACD,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC;AAeD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,WAAW,CACjC,8BAA8B,CAAC,eAAe,CAAC,CAChD,CAAA;gBAEW,EACV,aAAa,EACd,EAAE;QACD,aAAa,EAAE,WAAW,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC,CAAA;KAC5E;CAeF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iCAAiC,EACjC,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,yBAAyB,EACzB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,KAAK,EACL,aAAa,EACb,eAAe,EACf,GAAgB,EACjB,EAAE;IACD,QAAQ,EAAE,cAAc,CAAA;IACxB,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,iBAAiB,CAAA;IAClC,iCAAiC,EAAE,MAAM,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,OAAO,EAAE;QACxB,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,KAAK,yBAAyB,CAAA;IAC/B,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC3B,OAAO,EAAE,OAAO,CAAA;QAChB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,oBAAoB,CAAA;KACjC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnB,WAAW,EAAE,kBAAkB,CAAA;IAC/B,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,OAAO,EAAE;YAClB,OAAO,EAAE,MAAM,CAAA;YACf,YAAY,EAAE,MAAM,CAAA;SACrB,KAAK,qBAAqB,CAAA;QAC3B,MAAM,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QACrD,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;KAC/B,CAAA;IACD,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACxC,eAAe,EAAE,CAAC,SAAS,EAAE;QAC3B,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAAC,8BAA8B,CAAC,CA+Q1C"}
|
|
@@ -8,8 +8,9 @@ import { readLogOrThrow } from '../unlock/standingWebvh.js';
|
|
|
8
8
|
import { recordSignerFromAgent } from '../keyring/record.js';
|
|
9
9
|
import { remintRecoveryDelegations } from '../recovery/recoveryDelegation.js';
|
|
10
10
|
import { ladderVmKeyMultibase } from './ladder.js';
|
|
11
|
+
import { ladderVmIds } from '../webvh/listClients.js';
|
|
11
12
|
import { ladderVmAgent, ladderVmZcapClient } from './zcap.js';
|
|
12
|
-
import { forgetLastWebvhClient, installLadderVmWebvh } from './ladderAnchored.js';
|
|
13
|
+
import { forgetLastWebvhClient, installLadderVmWebvh, strikeLadderVmWebvh } from './ladderAnchored.js';
|
|
13
14
|
import { clientAnnexDidParts, clientAnnexLogPinId, delegatedClientsDelegationMinter, delegatedClientsPointer, ensureGenerationDelegationCurrent, generationDelegationHistory, mintGenerationDelegation, revokeTreatingAlreadyRevokedAsSuccess } from './log.js';
|
|
14
15
|
/**
|
|
15
16
|
* The re-mint outcomes that withhold the removal entry: a record the pass
|
|
@@ -65,10 +66,18 @@ export class RecordRemintFailedError extends Error {
|
|
|
65
66
|
* @param options {object}
|
|
66
67
|
* @param options.logStore {UnlockLogStore} the credential's delegated
|
|
67
68
|
* `did.jsonl` bridge store; also serves the ceremony's public reads
|
|
69
|
+
* @param options.clientLogStore {UnlockLogStore} the account-log store
|
|
70
|
+
* invoked under the STILL-STANDING enrolled client's root authority (an
|
|
71
|
+
* app's `wasWebvhIdStore` satisfies the narrower shape). The
|
|
72
|
+
* strike-and-reinstall pair publishes through it, because the bridge
|
|
73
|
+
* `logStore` is often signed by the ladder VM the strike removes and the
|
|
74
|
+
* reinstall would then be refused under the current-key-set rule. Both
|
|
75
|
+
* entries stay ladder-signed; only the HTTP invocation differs. Required:
|
|
76
|
+
* a call without it throws a `TypeError` before any read
|
|
68
77
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
69
78
|
* pins, the account log's slot derived from `annex.accountSpaceId`. Every
|
|
70
|
-
* account-log read the ceremony makes -- the
|
|
71
|
-
*
|
|
79
|
+
* account-log read the ceremony makes -- the opening read, and the strike,
|
|
80
|
+
* reinstall, and removal entries' own reads inside their conflict-retry
|
|
72
81
|
* loops -- is checked against the pinned head, so a served truncated
|
|
73
82
|
* prefix is refused (`ResourceLogContinuityError`, `rollback`) before any
|
|
74
83
|
* roster append or log publish, and each entry advances the pin to the
|
|
@@ -87,8 +96,9 @@ export class RecordRemintFailedError extends Error {
|
|
|
87
96
|
* @param options.rosterStoreFor {Function} `({ did, log }) => store` --
|
|
88
97
|
* builds the `key-map/user-key.jsonl` roster store whose appends are
|
|
89
98
|
* SIGNED BY THE LADDER VM and whose controller view resolves from the
|
|
90
|
-
* supplied
|
|
91
|
-
*
|
|
99
|
+
* supplied log -- the pre-transition head for the opening read, the
|
|
100
|
+
* post-reinstall head for the rotation (the inventory-changing anchor the
|
|
101
|
+
* ceremony-tail license admits), while its HTTP requests invoke under the still-standing
|
|
92
102
|
* client
|
|
93
103
|
* @param options.credentialKeyAgreementKey {IKeyAgreementKey} the standing
|
|
94
104
|
* credential's key-agreement key -- the recipient whose wrap survives the
|
|
@@ -127,7 +137,7 @@ export class RecordRemintFailedError extends Error {
|
|
|
127
137
|
* @param options.onBeforeRemoval {Function}
|
|
128
138
|
* `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
|
|
129
139
|
* after the record re-mint stage, immediately before the removal entry,
|
|
130
|
-
* with the post-
|
|
140
|
+
* with the post-reinstall published state. The caller re-signs the login
|
|
131
141
|
* credential's bridge and `delegatedClients` sibling with the ladder VM
|
|
132
142
|
* and re-seals its unlock record here -- the only stage that reaches the
|
|
133
143
|
* login credential's record, which the `unlockMethods` pass skips. Must
|
|
@@ -136,7 +146,7 @@ export class RecordRemintFailedError extends Error {
|
|
|
136
146
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
137
147
|
* @returns {Promise<LastEnrolledClientForgetResult>}
|
|
138
148
|
*/
|
|
139
|
-
export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
|
|
149
|
+
export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
|
|
140
150
|
// The seam is the only stage that re-signs the login credential's bridge
|
|
141
151
|
// with the ladder VM; a run without it would land the removal entry over
|
|
142
152
|
// a record the struck key signed, on an account nothing could then write
|
|
@@ -145,6 +155,15 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
145
155
|
throw new TypeError('forgetLastEnrolledClient requires onBeforeRemoval: the login ' +
|
|
146
156
|
"credential's record is re-bound only through that seam");
|
|
147
157
|
}
|
|
158
|
+
// The pair's store is the enrolled client's, not the credential's bridge:
|
|
159
|
+
// a bridge the strike rots cannot authorize the reinstall that follows it.
|
|
160
|
+
// Refused before any read, so nothing is published.
|
|
161
|
+
if (clientLogStore === undefined ||
|
|
162
|
+
typeof clientLogStore.putIdResource !== 'function') {
|
|
163
|
+
throw new TypeError('forgetLastEnrolledClient requires clientLogStore: the ladder VM ' +
|
|
164
|
+
"strike and reinstall publish under the enrolled client's root " +
|
|
165
|
+
'authority');
|
|
166
|
+
}
|
|
148
167
|
// The pre-install read and the two guards: a client with no remaining
|
|
149
168
|
// presence means the removal entry already landed (the finish-the-wipe
|
|
150
169
|
// state the app's next login maps -- nothing here can still invoke), and
|
|
@@ -165,7 +184,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
165
184
|
});
|
|
166
185
|
if (!preTarget.present) {
|
|
167
186
|
return {
|
|
168
|
-
|
|
187
|
+
reinstalled: false,
|
|
169
188
|
rotated: false,
|
|
170
189
|
collections: { outcomes: {}, failed: [] },
|
|
171
190
|
generation: { revoked: [], replaced: false, skipped: 'already-removed' },
|
|
@@ -179,35 +198,98 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
179
198
|
throw new Error('did:webvh: another enrolled client remains; the last-client ' +
|
|
180
199
|
'transition ceremony does not apply -- run the ordinary forget.');
|
|
181
200
|
}
|
|
182
|
-
//
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
201
|
+
// What the rotation is decided on, read BEFORE any entry: the roster as it
|
|
202
|
+
// stands on the pre-transition document. The pair below runs only when the
|
|
203
|
+
// rotation is still owed, so a re-run past it publishes no entry for
|
|
204
|
+
// nothing.
|
|
205
|
+
const forgottenKid = rosterRecipientKid({
|
|
206
|
+
signingKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
207
|
+
keyAgreementKeyMultibase: forgottenKeyAgreementKeyMultibase
|
|
188
208
|
});
|
|
209
|
+
const preRosterStore = rosterStoreFor({ did: before.did, log: before.log });
|
|
210
|
+
const current = await preRosterStore.read();
|
|
211
|
+
const currentEpoch = current
|
|
212
|
+
? (current.descriptor.epochs ?? []).find(epoch => epoch.id === current.descriptor.currentEpoch)
|
|
213
|
+
: undefined;
|
|
214
|
+
const wrapped = currentEpoch?.recipients.some(entry => entry.header.kid === forgottenKid) === true;
|
|
215
|
+
const ladderVmId = `${before.did}#${await ladderVmKeyMultibase({
|
|
216
|
+
ladderSeed
|
|
217
|
+
})}`;
|
|
218
|
+
const vmStands = ladderVmIds({ doc: before.doc }).includes(ladderVmId);
|
|
219
|
+
// Stage 1: the strike-and-reinstall pair -- this credential's ladder VM
|
|
220
|
+
// out of the document and straight back in, the client's inventory
|
|
221
|
+
// untouched throughout. The credential-keyed lifecycle installs the VM at
|
|
222
|
+
// bind time, so it already stands here and a bare install would publish
|
|
223
|
+
// nothing; the pair is what gives the rotation below an inventory-changing
|
|
224
|
+
// document version to anchor at, which is what the ceremony-tail license
|
|
225
|
+
// admits. Both entries are ladder-signed by the attributed rung, so the
|
|
226
|
+
// reinstall reveals a rung that stands in `updateKeys` -- the cost the
|
|
227
|
+
// single install already carried, now over two entries.
|
|
228
|
+
//
|
|
229
|
+
// The revocation stage's ordering is undisturbed by the pair: the
|
|
230
|
+
// reinstall republishes the IDENTICAL key under the identical id and
|
|
231
|
+
// revokes nothing, and a zcap delegation proof carries no version anchor,
|
|
232
|
+
// so every unexpired ladder-signed delegation keeps verifying across it.
|
|
233
|
+
//
|
|
234
|
+
// Run only when there is something for it to license (the rotation is
|
|
235
|
+
// owed) or when the VM is missing -- the state a run torn between the two
|
|
236
|
+
// entries leaves, where the strike no-ops and the reinstall converges.
|
|
237
|
+
//
|
|
238
|
+
// Both entries are inventory-changing, so the pair mints TWO license
|
|
239
|
+
// shots rather than the one the rotation spends. That is accepted:
|
|
240
|
+
// clause B already licenses every standing ladder against any
|
|
241
|
+
// inventory-changing version, so the reinstall's own shot is spendable by
|
|
242
|
+
// a sibling ladder in the same window whatever the strike's shot does.
|
|
243
|
+
// What a sibling's spend costs is bounded either way. Spent at the strike
|
|
244
|
+
// version, the rotation below stays licensed at the reinstall version
|
|
245
|
+
// (`headControllerVersionIndex >= controllerVersionIndex` compares
|
|
246
|
+
// positions, and the reinstall's is higher). Spent at the reinstall
|
|
247
|
+
// version, the rotation refuses with `ResourceLogLicenseError` and the
|
|
248
|
+
// run is foreclosed rather than wedged: `wrapped` stays true, since the
|
|
249
|
+
// client still stands in the document and is therefore a recipient of the
|
|
250
|
+
// sibling's fresh epoch too, so a re-run republishes the pair and mints a
|
|
251
|
+
// fresh anchor. The install signs with the currently attributed rung and
|
|
252
|
+
// keeps its own hash committed under the carry-over convention, so no
|
|
253
|
+
// rung is burned; the cost is two account-log entries per attempt.
|
|
254
|
+
let reinstalled = false;
|
|
255
|
+
let anchor = {
|
|
256
|
+
did: before.did,
|
|
257
|
+
doc: before.doc,
|
|
258
|
+
log: before.log
|
|
259
|
+
};
|
|
260
|
+
if (wrapped || !vmStands) {
|
|
261
|
+
await strikeLadderVmWebvh({
|
|
262
|
+
store: clientLogStore,
|
|
263
|
+
ladderSeed,
|
|
264
|
+
expectedDid,
|
|
265
|
+
...pinned
|
|
266
|
+
});
|
|
267
|
+
const install = await installLadderVmWebvh({
|
|
268
|
+
store: clientLogStore,
|
|
269
|
+
ladderSeed,
|
|
270
|
+
expectedDid,
|
|
271
|
+
...pinned
|
|
272
|
+
});
|
|
273
|
+
reinstalled = install.installed;
|
|
274
|
+
anchor = { did: install.did, doc: install.doc, log: install.log };
|
|
275
|
+
}
|
|
189
276
|
// Stage 2: the roster rotation off this client's wrap, ladder-signed and
|
|
190
|
-
// anchored at the
|
|
277
|
+
// anchored at the reinstall entry, then stage 3, the collection fan-out --
|
|
191
278
|
// both HTTP-invoked under this client's still-standing authority. An
|
|
192
279
|
// already-rotated roster skips the append entirely, so the one-shot
|
|
193
280
|
// license is never asked for a second append at the same anchor.
|
|
194
281
|
let rotated = false;
|
|
195
282
|
let read;
|
|
196
283
|
let cascade = { outcomes: {}, failed: [] };
|
|
197
|
-
const rosterStore =
|
|
198
|
-
|
|
284
|
+
const rosterStore = wrapped
|
|
285
|
+
? rosterStoreFor({ did: anchor.did, log: anchor.log })
|
|
286
|
+
: preRosterStore;
|
|
199
287
|
if (current !== null) {
|
|
200
|
-
const forgottenKid = rosterRecipientKid({
|
|
201
|
-
signingKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
202
|
-
keyAgreementKeyMultibase: forgottenKeyAgreementKeyMultibase
|
|
203
|
-
});
|
|
204
288
|
let descriptor = current.descriptor;
|
|
205
|
-
const currentEpoch = (descriptor.epochs ?? []).find(epoch => epoch.id === descriptor.currentEpoch);
|
|
206
|
-
const wrapped = currentEpoch?.recipients.some(entry => entry.header.kid === forgottenKid);
|
|
207
289
|
if (wrapped) {
|
|
208
290
|
descriptor = await rotateUserKeyRoster({
|
|
209
291
|
store: rosterStore,
|
|
210
|
-
document:
|
|
292
|
+
document: anchor.doc,
|
|
211
293
|
retireRecipientId: forgottenKid
|
|
212
294
|
});
|
|
213
295
|
rotated = true;
|
|
@@ -245,21 +327,21 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
245
327
|
}
|
|
246
328
|
// Stage 4: the generation-delegation replacement and revocations.
|
|
247
329
|
const generation = await retireLadderGenerationDelegations({
|
|
248
|
-
doc:
|
|
249
|
-
accountDid:
|
|
330
|
+
doc: anchor.doc,
|
|
331
|
+
accountDid: anchor.did,
|
|
250
332
|
ladderSeed,
|
|
251
333
|
annex,
|
|
252
334
|
now
|
|
253
335
|
});
|
|
254
336
|
// Stage 5: the other unlock methods' record re-mint, ladder-signed, with
|
|
255
|
-
// the forgotten client named as retiring -- the post-
|
|
337
|
+
// the forgotten client named as retiring -- the post-reinstall document
|
|
256
338
|
// still lists it, so without that axis every bridge it signed would read
|
|
257
339
|
// as standing and be left to rot at the removal entry.
|
|
258
340
|
let remint;
|
|
259
341
|
if (unlockMethods !== undefined) {
|
|
260
342
|
remint = await remintUnlockMethodRecordsAsLadder({
|
|
261
|
-
doc:
|
|
262
|
-
accountDid:
|
|
343
|
+
doc: anchor.doc,
|
|
344
|
+
accountDid: anchor.did,
|
|
263
345
|
ladderSeed,
|
|
264
346
|
retiringSigningKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
265
347
|
reach: unlockMethods,
|
|
@@ -277,13 +359,13 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
277
359
|
}
|
|
278
360
|
// Stage 6: the record re-bind seam -- the login credential's record, the
|
|
279
361
|
// one stage 5 skipped -- while the removal has not landed (a
|
|
280
|
-
// ladder-VM-signed bridge verifies from the
|
|
362
|
+
// ladder-VM-signed bridge verifies from the reinstall entry on, and the old
|
|
281
363
|
// client-signed one keeps verifying until the removal -- so a tear on
|
|
282
364
|
// either side of this callback leaves a working login).
|
|
283
365
|
await onBeforeRemoval({
|
|
284
|
-
did:
|
|
285
|
-
doc:
|
|
286
|
-
log:
|
|
366
|
+
did: anchor.did,
|
|
367
|
+
doc: anchor.doc,
|
|
368
|
+
log: anchor.log
|
|
287
369
|
});
|
|
288
370
|
// Stage 7: the removal entry -- the client's whole inventory out, the
|
|
289
371
|
// installed ladder VM keeping the account anchored.
|
|
@@ -296,7 +378,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
296
378
|
...pinned
|
|
297
379
|
});
|
|
298
380
|
return {
|
|
299
|
-
|
|
381
|
+
reinstalled,
|
|
300
382
|
rotated,
|
|
301
383
|
collections: cascade,
|
|
302
384
|
generation,
|
|
@@ -319,7 +401,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
319
401
|
* a live delegation either way.
|
|
320
402
|
*
|
|
321
403
|
* @param options {object}
|
|
322
|
-
* @param options.doc {DIDDoc} the post-
|
|
404
|
+
* @param options.doc {DIDDoc} the post-reinstall account document
|
|
323
405
|
* @param options.accountDid {string}
|
|
324
406
|
* @param options.ladderSeed {Uint8Array}
|
|
325
407
|
* @param options.annex {object} see {@link forgetLastEnrolledClient}
|
|
@@ -411,15 +493,15 @@ async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed,
|
|
|
411
493
|
* The record re-mint stage: the revocation cascade's re-mint pass over the
|
|
412
494
|
* other unlock methods' registry entries, with the ladder VM as both the
|
|
413
495
|
* delegating key (the fresh bridge and sibling) and the record-frame signer
|
|
414
|
-
* (`ladderVmAgent`'s did:key form, whose multibase the post-
|
|
496
|
+
* (`ladderVmAgent`'s did:key form, whose multibase the post-reinstall document
|
|
415
497
|
* lists, so a reader settling the mixed-signer proof against the account
|
|
416
498
|
* document accepts it after the removal too -- `currentAccountRecordSigners`
|
|
417
499
|
* is that allowlist), and the forgotten client named as retiring. The sibling
|
|
418
|
-
* minter reads the annex pointer off the post-
|
|
500
|
+
* minter reads the annex pointer off the post-reinstall document. The HTTP
|
|
419
501
|
* side rides the caller's management-zcap clients, still invocable here.
|
|
420
502
|
*
|
|
421
503
|
* @param options {object}
|
|
422
|
-
* @param options.doc {DIDDoc} the post-
|
|
504
|
+
* @param options.doc {DIDDoc} the post-reinstall account document
|
|
423
505
|
* @param options.accountDid {string}
|
|
424
506
|
* @param options.ladderSeed {Uint8Array}
|
|
425
507
|
* @param options.retiringSigningKeyMultibase {string} the forgotten
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgetLast.js","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forgetLast.js","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
|