@interop/wallet-core 0.8.0 → 0.10.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/README.md +8 -3
- package/dist/keyring/index.d.ts +1 -1
- package/dist/keyring/index.d.ts.map +1 -1
- package/dist/keyring/index.js +1 -1
- package/dist/keyring/index.js.map +1 -1
- package/dist/keyring/unlockSpace.d.ts +27 -0
- package/dist/keyring/unlockSpace.d.ts.map +1 -1
- package/dist/keyring/unlockSpace.js +31 -0
- package/dist/keyring/unlockSpace.js.map +1 -1
- package/dist/keys/index.d.ts +8 -1
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +7 -1
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/pukCascade.d.ts +108 -0
- package/dist/keys/pukCascade.d.ts.map +1 -0
- package/dist/keys/pukCascade.js +182 -0
- package/dist/keys/pukCascade.js.map +1 -0
- package/dist/keys/pukRoster.d.ts +26 -0
- package/dist/keys/pukRoster.d.ts.map +1 -1
- package/dist/keys/pukRoster.js +30 -1
- package/dist/keys/pukRoster.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +1 -20
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/request/composeVp.d.ts.map +1 -1
- package/dist/request/composeVp.js +4 -5
- package/dist/request/composeVp.js.map +1 -1
- package/dist/space/activity.d.ts +30 -0
- package/dist/space/activity.d.ts.map +1 -1
- package/dist/space/activity.js +33 -0
- package/dist/space/activity.js.map +1 -1
- package/dist/space/index.d.ts +1 -1
- package/dist/space/index.d.ts.map +1 -1
- package/dist/space/index.js +1 -1
- package/dist/space/index.js.map +1 -1
- package/dist/webvh/didWebvh.d.ts +14 -0
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +20 -0
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/index.d.ts +7 -4
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +6 -4
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/revokeClient.d.ts +64 -0
- package/dist/webvh/revokeClient.d.ts.map +1 -0
- package/dist/webvh/revokeClient.js +241 -0
- package/dist/webvh/revokeClient.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Client revocation, the did:webvh half: removing an enrolled wallet client
|
|
6
|
+
* from the document roster. Per the identity model this is a pure roster edit
|
|
7
|
+
* -- nothing shared rotates, because nothing was shared -- and, because a
|
|
8
|
+
* removal reveals no new key, it is a SINGLE log entry (unlike enrollment's
|
|
9
|
+
* two): the client's Ed25519 verification method leaves all four signing
|
|
10
|
+
* relationships, its X25519 twin leaves `keyAgreement`, its update key leaves
|
|
11
|
+
* `updateKeys`, and both of its standing commitments leave `nextKeyHashes` --
|
|
12
|
+
* the carry-over hash of its active update key, and the hash of its staged
|
|
13
|
+
* key.
|
|
14
|
+
*
|
|
15
|
+
* The staged-key hash is the subtle half, and removing it is load-bearing: a
|
|
16
|
+
* hash left committed in `nextKeyHashes` is a standing credential -- an entry
|
|
17
|
+
* verifies against its own re-stated `updateKeys`, each hashing into the
|
|
18
|
+
* previous entry's commitments, so a revoked client whose staged hash
|
|
19
|
+
* survived could author an entry revealing that key and re-seize update
|
|
20
|
+
* authority (the same reveal mechanism recovery uses legitimately). The hash
|
|
21
|
+
* itself is opaque (only the revoked client ever held the staged key), so it
|
|
22
|
+
* is recovered by **log attribution**: every staged commitment was added in
|
|
23
|
+
* the entry that revealed or committed its client's active key -- genesis,
|
|
24
|
+
* an enrollment commit, a rotation, a recovery reveal-and-commit -- and
|
|
25
|
+
* diffing that entry's `nextKeyHashes` against its predecessor isolates it.
|
|
26
|
+
* The one ambiguous shape is a recovery continuation, whose commit entry also
|
|
27
|
+
* carries the replacement code's latent hash; the caller disambiguates by
|
|
28
|
+
* supplying the standing recovery-code hashes it knows
|
|
29
|
+
* (`knownLatentHashes`, from its recovery registry), and a residue of more
|
|
30
|
+
* than one candidate refuses loudly rather than guessing
|
|
31
|
+
* ({@link StagedCommitmentAmbiguousError}) -- removing a wrong hash would
|
|
32
|
+
* either leave the revoked client re-enrollable or brick another party's
|
|
33
|
+
* standing commitment.
|
|
34
|
+
*/
|
|
35
|
+
import { deriveNextKeyHash, updateDID } from '@interop/did-method-webvh';
|
|
36
|
+
import { assertCarryOverCommitments, publishWebvhLog, readPublishedLog, relationIds, updateKeyMultibase, updateKeySigner } from './didWebvh.js';
|
|
37
|
+
/**
|
|
38
|
+
* Thrown when the log attribution cannot isolate the revoked client's staged
|
|
39
|
+
* commitment to a single hash -- more than one candidate survives after the
|
|
40
|
+
* known latent (recovery-code) hashes are excluded. Refusing beats guessing:
|
|
41
|
+
* see the module doc. The fix is to pass the standing recovery codes' update-
|
|
42
|
+
* key hashes as `knownLatentHashes`.
|
|
43
|
+
*/
|
|
44
|
+
export class StagedCommitmentAmbiguousError extends Error {
|
|
45
|
+
candidates;
|
|
46
|
+
constructor({ candidates }) {
|
|
47
|
+
super("did:webvh: the revoked client's staged-key commitment cannot be " +
|
|
48
|
+
'isolated in nextKeyHashes (more than one candidate hash); pass the ' +
|
|
49
|
+
"standing recovery codes' update-key hashes as knownLatentHashes.");
|
|
50
|
+
this.name = 'StagedCommitmentAmbiguousError';
|
|
51
|
+
this.candidates = candidates;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The per-entry EFFECTIVE `updateKeys` / `nextKeyHashes` of a log, with
|
|
56
|
+
* did:webvh's carry-forward semantics applied (an entry that omits a
|
|
57
|
+
* parameter inherits the previous entry's value).
|
|
58
|
+
*
|
|
59
|
+
* @param log {DIDLog}
|
|
60
|
+
* @returns {Array<{ updateKeys: string[]; nextKeyHashes: string[] }>}
|
|
61
|
+
*/
|
|
62
|
+
function effectiveParameters(log) {
|
|
63
|
+
const out = [];
|
|
64
|
+
let updateKeys = [];
|
|
65
|
+
let nextKeyHashes = [];
|
|
66
|
+
for (const entry of log) {
|
|
67
|
+
if (entry.parameters?.updateKeys) {
|
|
68
|
+
updateKeys = entry.parameters.updateKeys;
|
|
69
|
+
}
|
|
70
|
+
if (entry.parameters?.nextKeyHashes) {
|
|
71
|
+
nextKeyHashes = entry.parameters.nextKeyHashes;
|
|
72
|
+
}
|
|
73
|
+
out.push({ updateKeys, nextKeyHashes });
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Recovers the revoked client's staged-key hash from the log (see the module
|
|
79
|
+
* doc for why attribution works and where it can be ambiguous). Resolves
|
|
80
|
+
* `undefined` when there is nothing to attribute -- the client's key never
|
|
81
|
+
* entered `updateKeys`, or its commitment event added no other hash (already
|
|
82
|
+
* cleaned up).
|
|
83
|
+
*
|
|
84
|
+
* @param options {object}
|
|
85
|
+
* @param options.log {DIDLog}
|
|
86
|
+
* @param options.revokedUpdateKey {string} the revoked client's active
|
|
87
|
+
* update-key multibase
|
|
88
|
+
* @param options.knownLatentHashes {string[]} standing latent commitments
|
|
89
|
+
* the caller can vouch for (recovery-code update-key hashes)
|
|
90
|
+
* @returns {Promise<string | undefined>}
|
|
91
|
+
*/
|
|
92
|
+
async function attributeStagedHash({ log, revokedUpdateKey, knownLatentHashes }) {
|
|
93
|
+
const revokedHash = await deriveNextKeyHash(revokedUpdateKey);
|
|
94
|
+
const params = effectiveParameters(log);
|
|
95
|
+
const added = (index) => {
|
|
96
|
+
const previous = new Set(index > 0 ? params[index - 1].nextKeyHashes : []);
|
|
97
|
+
return new Set(params[index].nextKeyHashes.filter(hash => !previous.has(hash)));
|
|
98
|
+
};
|
|
99
|
+
const prune = (candidates) => {
|
|
100
|
+
candidates.delete(revokedHash);
|
|
101
|
+
for (const hash of knownLatentHashes) {
|
|
102
|
+
candidates.delete(hash);
|
|
103
|
+
}
|
|
104
|
+
return candidates;
|
|
105
|
+
};
|
|
106
|
+
// The entry where the revoked client's active key ENTERED updateKeys (the
|
|
107
|
+
// latest such, in case of anything odd).
|
|
108
|
+
let revealIndex = -1;
|
|
109
|
+
for (let index = params.length - 1; index >= 0; index--) {
|
|
110
|
+
const present = params[index].updateKeys.includes(revokedUpdateKey);
|
|
111
|
+
const before = index > 0 && params[index - 1].updateKeys.includes(revokedUpdateKey);
|
|
112
|
+
if (present && !before) {
|
|
113
|
+
revealIndex = index;
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (revealIndex === -1) {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
// A rotation entry commits the fresh staged hash in the same entry that
|
|
121
|
+
// reveals the new active key (genesis likewise commits both of its hashes
|
|
122
|
+
// in entry one), so the reveal entry's own additions are tried first. An
|
|
123
|
+
// enrollment add or a recovery add-and-retire adds no hash at the reveal.
|
|
124
|
+
const atReveal = prune(added(revealIndex));
|
|
125
|
+
if (atReveal.size === 1) {
|
|
126
|
+
return [...atReveal][0];
|
|
127
|
+
}
|
|
128
|
+
if (atReveal.size > 1) {
|
|
129
|
+
throw new StagedCommitmentAmbiguousError({ candidates: [...atReveal] });
|
|
130
|
+
}
|
|
131
|
+
// Fall back to the entry that COMMITTED the revoked key's own hash (an
|
|
132
|
+
// enrollment commit entry, or a recovery reveal-and-commit): the staged
|
|
133
|
+
// hash was added beside it.
|
|
134
|
+
let commitIndex = -1;
|
|
135
|
+
for (let index = revealIndex; index >= 0; index--) {
|
|
136
|
+
const present = params[index].nextKeyHashes.includes(revokedHash);
|
|
137
|
+
const before = index > 0 && params[index - 1].nextKeyHashes.includes(revokedHash);
|
|
138
|
+
if (present && !before) {
|
|
139
|
+
commitIndex = index;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (commitIndex === -1) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
const atCommit = prune(added(commitIndex));
|
|
147
|
+
if (atCommit.size > 1) {
|
|
148
|
+
throw new StagedCommitmentAmbiguousError({ candidates: [...atCommit] });
|
|
149
|
+
}
|
|
150
|
+
return atCommit.size === 1 ? [...atCommit][0] : undefined;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* REVOCATION (run by another enrolled client, root authority): removes an
|
|
154
|
+
* enrolled wallet client from the published document -- its two verification
|
|
155
|
+
* methods out of the document and all five relationship arrays, its update
|
|
156
|
+
* key out of `updateKeys`, and its carry-over and staged hashes out of
|
|
157
|
+
* `nextKeyHashes` -- in one log entry (a removal reveals no key, so
|
|
158
|
+
* prerotation forces no commit entry). Under the current-key-set rule this
|
|
159
|
+
* single edit is also the revoked client's pull axis everywhere: its
|
|
160
|
+
* invocations and every delegation it signed stop verifying the moment its
|
|
161
|
+
* verification method leaves the document.
|
|
162
|
+
*
|
|
163
|
+
* Idempotent: a client with no remaining presence (verification methods,
|
|
164
|
+
* update key, commitments all gone) is a no-op, so a naive re-run after a
|
|
165
|
+
* mid-cascade crash converges without forking the log.
|
|
166
|
+
*
|
|
167
|
+
* Self-revocation is refused: the entry is signed by THIS client's active
|
|
168
|
+
* update key, and a client that removed its own key could not have signed
|
|
169
|
+
* the removal the resolver will verify (and would strand the cascade that
|
|
170
|
+
* follows the document edit). Revoking the last remaining client is refused
|
|
171
|
+
* by the same guard.
|
|
172
|
+
*
|
|
173
|
+
* @param options {object}
|
|
174
|
+
* @param options.idStore {WebvhIdStore}
|
|
175
|
+
* @param options.updateKeys {ClientWebvhUpdateKeys} the REVOKING client's
|
|
176
|
+
* own did:webvh update-key seeds
|
|
177
|
+
* @param options.revokedClient {RevokedClientKeys} the revoked client's
|
|
178
|
+
* public halves
|
|
179
|
+
* @param [options.knownLatentHashes] {string[]} standing latent commitments
|
|
180
|
+
* the caller vouches for (the recovery registry's update-key hashes),
|
|
181
|
+
* excluded from the staged-hash attribution
|
|
182
|
+
* @returns {Promise<{ did: string }>}
|
|
183
|
+
*/
|
|
184
|
+
export async function revokeWebvhClient({ idStore, updateKeys, revokedClient, knownLatentHashes = [] }) {
|
|
185
|
+
const published = await readPublishedLog({ idStore });
|
|
186
|
+
if (!published) {
|
|
187
|
+
throw new Error('did:webvh: did.jsonl is missing; nothing to revoke from.');
|
|
188
|
+
}
|
|
189
|
+
const { did, doc } = published;
|
|
190
|
+
const activeKey = await updateKeyMultibase({ seed: updateKeys.updateSeed });
|
|
191
|
+
if (revokedClient.updateKeyMultibase === activeKey) {
|
|
192
|
+
throw new Error('did:webvh: a client cannot revoke itself; disconnect this client ' +
|
|
193
|
+
'from another enrolled client instead.');
|
|
194
|
+
}
|
|
195
|
+
const signingVmId = `${did}#${revokedClient.signingKeyMultibase}`;
|
|
196
|
+
const keyAgreementVmId = `${did}#${revokedClient.keyAgreementKeyMultibase}`;
|
|
197
|
+
const revokedHash = await deriveNextKeyHash(revokedClient.updateKeyMultibase);
|
|
198
|
+
const existingMethods = (doc.verificationMethod ?? []);
|
|
199
|
+
const vmPresent = existingMethods.some(method => method.id === signingVmId || method.id === keyAgreementVmId);
|
|
200
|
+
const keyPresent = published.updateKeys.includes(revokedClient.updateKeyMultibase);
|
|
201
|
+
const hashPresent = published.nextKeyHashes.includes(revokedHash);
|
|
202
|
+
if (!vmPresent && !keyPresent && !hashPresent) {
|
|
203
|
+
return { did };
|
|
204
|
+
}
|
|
205
|
+
if (!published.updateKeys.includes(activeKey)) {
|
|
206
|
+
throw new Error("did:webvh: the published log does not authorize this client's active " +
|
|
207
|
+
'update key; finalize the pending rotation before revoking a client.');
|
|
208
|
+
}
|
|
209
|
+
await assertCarryOverCommitments({ published });
|
|
210
|
+
// The revoked client's staged commitment, recovered from the log while the
|
|
211
|
+
// log still shows the enrollment (attribution needs the standing entries,
|
|
212
|
+
// so this runs before the removal entry is built).
|
|
213
|
+
const stagedHash = keyPresent
|
|
214
|
+
? await attributeStagedHash({
|
|
215
|
+
log: published.log,
|
|
216
|
+
revokedUpdateKey: revokedClient.updateKeyMultibase,
|
|
217
|
+
knownLatentHashes
|
|
218
|
+
})
|
|
219
|
+
: undefined;
|
|
220
|
+
const removedHashes = new Set([revokedHash, stagedHash].filter((hash) => hash !== undefined));
|
|
221
|
+
const removedVmIds = new Set([signingVmId, keyAgreementVmId]);
|
|
222
|
+
const signer = await updateKeySigner({ seed: updateKeys.updateSeed });
|
|
223
|
+
const updated = await updateDID({
|
|
224
|
+
log: published.log,
|
|
225
|
+
signer,
|
|
226
|
+
updateKeys: published.updateKeys.filter(key => key !== revokedClient.updateKeyMultibase),
|
|
227
|
+
nextKeyHashes: published.nextKeyHashes.filter(hash => !removedHashes.has(hash)),
|
|
228
|
+
verificationMethods: existingMethods.filter(method => !method.id || !removedVmIds.has(method.id)),
|
|
229
|
+
authentication: relationIds(doc.authentication).filter(id => id !== signingVmId),
|
|
230
|
+
assertionMethod: relationIds(doc.assertionMethod).filter(id => id !== signingVmId),
|
|
231
|
+
keyAgreement: relationIds(doc.keyAgreement).filter(id => id !== keyAgreementVmId),
|
|
232
|
+
capabilityInvocation: relationIds(doc.capabilityInvocation).filter(id => id !== signingVmId),
|
|
233
|
+
capabilityDelegation: relationIds(doc.capabilityDelegation).filter(id => id !== signingVmId)
|
|
234
|
+
});
|
|
235
|
+
if (!updated.webDoc) {
|
|
236
|
+
throw new Error('did:webvh: updateDID returned no webDoc despite the did:web alsoKnownAs.');
|
|
237
|
+
}
|
|
238
|
+
await publishWebvhLog({ idStore, log: updated.log, webDoc: updated.webDoc });
|
|
239
|
+
return { did: updated.did };
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=revokeClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revokeClient.js","sourceRoot":"","sources":["../../src/webvh/revokeClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/wallet-core",
|
|
3
3
|
"description": "Shared wallet-domain logic (WAS sync engine core and wallet Space layout contracts) for Interop wallet apps.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "pnpm run clear && tsc",
|
|
@@ -114,9 +114,9 @@
|
|
|
114
114
|
"@interop/ed25519-signature": "^7.1.4",
|
|
115
115
|
"@interop/ed25519-verification-key": "^8.0.3",
|
|
116
116
|
"@interop/ezcap": "^7.4.1",
|
|
117
|
-
"@interop/security-document-loader": "^9.5.
|
|
117
|
+
"@interop/security-document-loader": "^9.5.1",
|
|
118
118
|
"@interop/vc": "^11.0.6",
|
|
119
|
-
"@interop/was-client": "^0.
|
|
119
|
+
"@interop/was-client": "^0.24.0",
|
|
120
120
|
"@interop/webkms-client": "^14.7.1",
|
|
121
121
|
"@interop/x25519-key-agreement-key": "^5.2.1",
|
|
122
122
|
"@noble/hashes": "^2.2.0",
|