agent-comms 9.0.11 → 9.0.12
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +10 -6
- package/dist/account-cli.d.ts.map +1 -1
- package/dist/account-cli.js +4 -1
- package/dist/account-cli.js.map +1 -1
- package/dist/bridges/user/web/dist/mesh-worker.js +4 -4
- package/dist/bridges/user/web/dist/sw.js +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli-main.js +9 -12
- package/dist/cli-main.js.map +1 -1
- package/dist/core/account-bundle.d.ts +1 -1
- package/dist/core/account-bundle.d.ts.map +1 -1
- package/dist/core/account-bundle.js +26 -19
- package/dist/core/account-bundle.js.map +1 -1
- package/dist/core/account-join.d.ts.map +1 -1
- package/dist/core/account-join.js +5 -2
- package/dist/core/account-join.js.map +1 -1
- package/dist/core/account-ledger-crypto.d.ts.map +1 -1
- package/dist/core/account-ledger-crypto.js +4 -1
- package/dist/core/account-ledger-crypto.js.map +1 -1
- package/dist/core/account-ledger-store.d.ts +3 -1
- package/dist/core/account-ledger-store.d.ts.map +1 -1
- package/dist/core/account-ledger-store.js +6 -3
- package/dist/core/account-ledger-store.js.map +1 -1
- package/dist/core/account-ledger.d.ts +51 -4
- package/dist/core/account-ledger.d.ts.map +1 -1
- package/dist/core/account-ledger.js +102 -15
- package/dist/core/account-ledger.js.map +1 -1
- package/dist/core/bridge-mesh.d.ts.map +1 -1
- package/dist/core/bridge-mesh.js +3 -0
- package/dist/core/bridge-mesh.js.map +1 -1
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +16 -4
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/capability-ask.d.ts.map +1 -1
- package/dist/core/capability-ask.js +10 -2
- package/dist/core/capability-ask.js.map +1 -1
- package/dist/core/connection-code-tool.d.ts +1 -1
- package/dist/core/connection-code-tool.js +2 -2
- package/dist/core/connection-code-tool.js.map +1 -1
- package/dist/core/connection-code.d.ts +5 -5
- package/dist/core/connection-code.d.ts.map +1 -1
- package/dist/core/connection-code.js +22 -6
- package/dist/core/connection-code.js.map +1 -1
- package/dist/core/device-membership.d.ts +8 -3
- package/dist/core/device-membership.d.ts.map +1 -1
- package/dist/core/device-membership.js +4 -4
- package/dist/core/device-membership.js.map +1 -1
- package/dist/core/dm-grant-actions.d.ts.map +1 -1
- package/dist/core/dm-grant-actions.js +7 -1
- package/dist/core/dm-grant-actions.js.map +1 -1
- package/dist/core/error-reporting.d.ts.map +1 -1
- package/dist/core/error-reporting.js +5 -0
- package/dist/core/error-reporting.js.map +1 -1
- package/dist/core/gateway-trust.d.ts +1 -1
- package/dist/core/gateway-trust.d.ts.map +1 -1
- package/dist/core/gateway-trust.js +4 -4
- package/dist/core/gateway-trust.js.map +1 -1
- package/dist/core/group-proofs.d.ts.map +1 -1
- package/dist/core/group-proofs.js +2 -2
- package/dist/core/group-proofs.js.map +1 -1
- package/dist/core/identity-store.d.ts +13 -9
- package/dist/core/identity-store.d.ts.map +1 -1
- package/dist/core/identity-store.js +122 -147
- package/dist/core/identity-store.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/iso-timestamp.d.ts +10 -0
- package/dist/core/iso-timestamp.d.ts.map +1 -0
- package/dist/core/iso-timestamp.js +19 -0
- package/dist/core/iso-timestamp.js.map +1 -0
- package/dist/core/issuer-identity-file.d.ts +15 -0
- package/dist/core/issuer-identity-file.d.ts.map +1 -1
- package/dist/core/issuer-identity-file.js +69 -20
- package/dist/core/issuer-identity-file.js.map +1 -1
- package/dist/core/machine-identity.d.ts +1 -1
- package/dist/core/machine-identity.d.ts.map +1 -1
- package/dist/core/machine-identity.js +14 -11
- package/dist/core/machine-identity.js.map +1 -1
- package/dist/core/mesh-store.d.ts +2 -2
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/peer-lifecycle.d.ts.map +1 -1
- package/dist/core/peer-lifecycle.js +8 -2
- package/dist/core/peer-lifecycle.js.map +1 -1
- package/dist/core/pid-lock-file.d.ts +27 -4
- package/dist/core/pid-lock-file.d.ts.map +1 -1
- package/dist/core/pid-lock-file.js +120 -11
- package/dist/core/pid-lock-file.js.map +1 -1
- package/dist/core/process-start.d.ts +10 -0
- package/dist/core/process-start.d.ts.map +1 -0
- package/dist/core/process-start.js +43 -0
- package/dist/core/process-start.js.map +1 -0
- package/dist/core/room-lifecycle.d.ts +3 -2
- package/dist/core/room-lifecycle.d.ts.map +1 -1
- package/dist/core/room-lifecycle.js +9 -8
- package/dist/core/room-lifecycle.js.map +1 -1
- package/dist/core/room-protocol.d.ts.map +1 -1
- package/dist/core/room-protocol.js +25 -3
- package/dist/core/room-protocol.js.map +1 -1
- package/dist/core/stale-agent-checker.d.ts.map +1 -1
- package/dist/core/stale-agent-checker.js +3 -1
- package/dist/core/stale-agent-checker.js.map +1 -1
- package/dist/core/store.d.ts +3 -0
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/store.js +42 -20
- package/dist/core/store.js.map +1 -1
- package/dist/core/tool.d.ts +5 -1
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +7 -1
- package/dist/core/tool.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +8 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-identity.d.ts +5 -5
- package/dist/core/user-identity.d.ts.map +1 -1
- package/dist/core/user-identity.js +59 -45
- package/dist/core/user-identity.js.map +1 -1
- package/package.json +1 -1
- package/src/account-cli.ts +4 -1
- package/src/bridges/user/web/dist/mesh-worker.js +4 -4
- package/src/bridges/user/web/dist/sw.js +1 -1
- package/src/cli-main.ts +10 -12
- package/src/core/account-bundle.ts +36 -25
- package/src/core/account-join.ts +5 -2
- package/src/core/account-ledger-crypto.ts +4 -1
- package/src/core/account-ledger-store.ts +11 -3
- package/src/core/account-ledger.ts +142 -20
- package/src/core/bridge-mesh.ts +4 -0
- package/src/core/bridge.ts +24 -4
- package/src/core/capability-ask.ts +16 -1
- package/src/core/connection-code-tool.ts +2 -2
- package/src/core/connection-code.ts +34 -8
- package/src/core/device-membership.ts +12 -8
- package/src/core/dm-grant-actions.ts +7 -1
- package/src/core/error-reporting.ts +5 -0
- package/src/core/gateway-trust.ts +4 -4
- package/src/core/group-proofs.ts +5 -2
- package/src/core/identity-store.ts +182 -191
- package/src/core/index.ts +1 -0
- package/src/core/iso-timestamp.ts +21 -0
- package/src/core/issuer-identity-file.ts +87 -23
- package/src/core/machine-identity.ts +15 -12
- package/src/core/mesh-store.ts +2 -1
- package/src/core/peer-lifecycle.ts +9 -4
- package/src/core/pid-lock-file.ts +139 -11
- package/src/core/process-start.ts +45 -0
- package/src/core/room-lifecycle.ts +12 -9
- package/src/core/room-protocol.ts +23 -3
- package/src/core/stale-agent-checker.ts +3 -1
- package/src/core/store.ts +48 -23
- package/src/core/tool.ts +14 -1
- package/src/core/types.ts +9 -3
- package/src/core/user-identity.ts +65 -51
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){var e=`agent-comms-v1`,t=[{"revision":"
|
|
1
|
+
(function(){var e=`agent-comms-v1`,t=[{"revision":"fa356ca4b2a4b6ec4a929516b593a3e4","url":"mesh-worker.js"},{"revision":"f1ee3afb8c9e8f0d7315fd93d6457316","url":"index.html"},{"revision":"aef2de9b9f0ed47024e02762fc047436","url":"bundle.js"}].map(e=>e.url);self.addEventListener(`install`,n=>{n.waitUntil(self.caches.open(e).then(async e=>e.addAll(t)).then(async()=>self.skipWaiting()))}),self.addEventListener(`activate`,t=>{t.waitUntil(self.caches.keys().then(async t=>Promise.all(t.filter(t=>t!==e).map(async e=>self.caches.delete(e)))))});var n=200,r=300;function i(e,t){return e.method===`GET`&&t.status>=n&&t.status<r}self.addEventListener(`fetch`,t=>{if(new URL(t.request.url).pathname.startsWith(`/api/`)){t.respondWith(fetch(t.request).then(n=>{if(i(t.request,n)){let r=n.clone();self.caches.open(e).then(async e=>e.put(t.request,r))}return n}).catch(async()=>self.caches.open(e).then(async e=>e.match(t.request)).then(e=>e??new Response(`Offline`,{status:503}))));return}t.respondWith(self.caches.open(e).then(async e=>e.match(t.request)).then(async n=>n||fetch(t.request).then(n=>{if(i(t.request,n)){let r=n.clone();self.caches.open(e).then(async e=>e.put(t.request,r))}return n})))})})();
|
package/dist/cli-main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-main.d.ts","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-main.d.ts","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAmKxD,2IAA2I;AAC3I,MAAM,WAAW,UAAU;IACzB,yFAAyF;IACzF,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,sMAAsM;IACtM,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,wFAAwF;IACxF,MAAM,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CACjD;AAED,iHAAiH;AACjH,wBAAgB,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAqExD"}
|
package/dist/cli-main.js
CHANGED
|
@@ -33,6 +33,7 @@ import { runTui } from "./bridges/user/tui.js";
|
|
|
33
33
|
import { runCli } from "./bridges/user/cli.js";
|
|
34
34
|
import { readHiddenLine, runAccountCommand } from "./account-cli.js";
|
|
35
35
|
import { openMachineAccountStore } from "./account-join-cli.js";
|
|
36
|
+
import { UnusableIdentityRecordError } from "./core/issuer-identity-file.js";
|
|
36
37
|
// ---------------------------------------------------------------------------
|
|
37
38
|
// Zod schemas for config files
|
|
38
39
|
// ---------------------------------------------------------------------------
|
|
@@ -226,10 +227,12 @@ function runBridge(id, options) {
|
|
|
226
227
|
console.error(`Unknown bridge: ${id}. Available: ${Object.keys(bridges).join(", ")}`);
|
|
227
228
|
process.exit(1);
|
|
228
229
|
}
|
|
229
|
-
Promise.resolve(bridge.run(options)).catch(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
230
|
+
Promise.resolve(bridge.run(options)).catch(exitWithError);
|
|
231
|
+
}
|
|
232
|
+
/** Prints why a command could not start and exits non-zero. An unusable identity file's message already says what to do about it, so it is printed without the stack trace that would bury it. */
|
|
233
|
+
function exitWithError(err) {
|
|
234
|
+
console.error(err instanceof UnusableIdentityRecordError ? err.message : err);
|
|
235
|
+
process.exit(1);
|
|
233
236
|
}
|
|
234
237
|
function parseNameArg(args) {
|
|
235
238
|
const nameIdx = args.indexOf("--name");
|
|
@@ -246,17 +249,11 @@ function parseNameArg(args) {
|
|
|
246
249
|
}
|
|
247
250
|
function runChat(args) {
|
|
248
251
|
const { name } = parseNameArg(args);
|
|
249
|
-
runTui(name).catch(
|
|
250
|
-
console.error(err);
|
|
251
|
-
process.exit(1);
|
|
252
|
-
});
|
|
252
|
+
runTui(name).catch(exitWithError);
|
|
253
253
|
}
|
|
254
254
|
function runUserCli(cliCommand, args) {
|
|
255
255
|
const { name, rest } = parseNameArg(args);
|
|
256
|
-
runCli(cliCommand, rest, name).catch(
|
|
257
|
-
console.error(err);
|
|
258
|
-
process.exit(1);
|
|
259
|
-
});
|
|
256
|
+
runCli(cliCommand, rest, name).catch(exitWithError);
|
|
260
257
|
}
|
|
261
258
|
// ---------------------------------------------------------------------------
|
|
262
259
|
// Commands
|
package/dist/cli-main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export interface AccountContents {
|
|
|
12
12
|
}
|
|
13
13
|
/** Seals the account's contents under a passphrase, as one line of text. Throws WEAK_PASSPHRASE for a passphrase shorter than MIN_ACCOUNT_PASSPHRASE_LENGTH. */
|
|
14
14
|
export declare function sealAccountBundle(contents: Readonly<AccountContents>, passphrase: string): string;
|
|
15
|
-
/** The account contents a bundle holds. Throws INVALID_BUNDLE for text that is not a bundle this build can read, and WRONG_PASSPHRASE when the passphrase does not open it. The cost parameters
|
|
15
|
+
/** The account contents a bundle holds. Throws INVALID_BUNDLE for text that is not a bundle this build can read (including one whose cost parameters, salt, iv or authentication tag are not in the form this build writes), and WRONG_PASSPHRASE when the passphrase does not open it. The cost parameters in the bundle must be exactly the ones this build writes, so reading a bundle costs no more than writing one, no weak derivation is accepted, and nothing fails with a raw error. */
|
|
16
16
|
export declare function openAccountBundle(bundle: string, passphrase: string): AccountContents;
|
|
17
17
|
/** The fields of an account invite both ends know: the invite's own single-use nonce is the secret, and the expiry and issuing device are bound in so a sealed key cannot be replayed under a different invite. */
|
|
18
18
|
export interface AccountInviteSecret {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-bundle.d.ts","sourceRoot":"","sources":["../../src/core/account-bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,8HAA8H;AAC9H,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"account-bundle.d.ts","sourceRoot":"","sources":["../../src/core/account-bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,8HAA8H;AAC9H,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAkB/D,0NAA0N;AAC1N,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAuBhD,gIAAgI;AAChI,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAoGD,gKAAgK;AAChK,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,MAAM,CAgBR;AAED,ieAAie;AACje,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,eAAe,CAiCjB;AAED,mNAAmN;AACnN,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,2KAA2K;AAC3K,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EACnC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,MAAM,CAIR;AAED,qHAAqH;AACrH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACpC,eAAe,CAkBjB"}
|
|
@@ -20,11 +20,24 @@ const SALT_BYTES = 16;
|
|
|
20
20
|
const KEY_BYTES = 32;
|
|
21
21
|
/** GCM's specified IV length. */
|
|
22
22
|
const IV_BYTES = 12;
|
|
23
|
+
/** GCM's full-length authentication tag. A shorter tag is weaker evidence that the ciphertext is untouched, and Node accepts one unless the length is pinned, so the length is checked wherever a tag comes from outside. */
|
|
24
|
+
const TAG_BYTES = 16;
|
|
23
25
|
/** The shortest passphrase an export accepts. Twelve characters is the length NCSC and NIST guidance treat as the floor for a passphrase protecting something offline-attackable; the scrypt cost above does the rest. */
|
|
24
26
|
export const MIN_ACCOUNT_PASSPHRASE_LENGTH = 12;
|
|
25
27
|
const INVITE_KEY_INFO = "agent-comms/account-invite/v1";
|
|
26
28
|
const BUNDLE_AAD = Buffer.from(ACCOUNT_BUNDLE_PREFIX);
|
|
27
29
|
const base64url = z.string().regex(/^[A-Za-z0-9_-]*$/);
|
|
30
|
+
/** Base64url text that decodes to exactly `bytes` bytes. */
|
|
31
|
+
function base64urlBytes(bytes) {
|
|
32
|
+
return base64url.refine((text) => Buffer.from(text, "base64url").length === bytes, `must decode to ${String(bytes)} bytes`);
|
|
33
|
+
}
|
|
34
|
+
/** The parts of an envelope sealed with AES-256-GCM, each at the length `seal` writes and GCM specifies. */
|
|
35
|
+
const gcmFields = {
|
|
36
|
+
iv: base64urlBytes(IV_BYTES),
|
|
37
|
+
tag: base64urlBytes(TAG_BYTES),
|
|
38
|
+
/** The ciphertext: its length is whatever the plaintext was. */
|
|
39
|
+
ct: base64url,
|
|
40
|
+
};
|
|
28
41
|
const accountContentsSchema = z
|
|
29
42
|
.object({ privateKey: z.string(), displayName: z.string().optional() })
|
|
30
43
|
.strict();
|
|
@@ -57,18 +70,15 @@ function parseContents(plaintext, damaged) {
|
|
|
57
70
|
const passphraseEnvelopeSchema = z
|
|
58
71
|
.object({
|
|
59
72
|
kdf: z.literal("scrypt"),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
ct: base64url,
|
|
73
|
+
// Exactly what this build writes. Above it, reading a bundle would cost more time and memory than writing one. Below it, a bundle would be accepted at a cost that does not protect the passphrase: every released version has written these parameters and no others, so nothing older is refused by requiring them, and a bundle sealed at a lower cost by another tool is refused.
|
|
74
|
+
n: z.literal(SCRYPT_COST),
|
|
75
|
+
r: z.literal(SCRYPT_BLOCK_SIZE),
|
|
76
|
+
p: z.literal(SCRYPT_PARALLELISM),
|
|
77
|
+
salt: base64urlBytes(SALT_BYTES),
|
|
78
|
+
...gcmFields,
|
|
67
79
|
})
|
|
68
80
|
.strict();
|
|
69
|
-
const inviteEnvelopeSchema = z
|
|
70
|
-
.object({ iv: base64url, tag: base64url, ct: base64url })
|
|
71
|
-
.strict();
|
|
81
|
+
const inviteEnvelopeSchema = z.object(gcmFields).strict();
|
|
72
82
|
function seal(key, plaintext) {
|
|
73
83
|
const iv = randomBytes(IV_BYTES);
|
|
74
84
|
const cipher = createCipheriv("aes-256-gcm", key, iv);
|
|
@@ -80,12 +90,12 @@ function seal(key, plaintext) {
|
|
|
80
90
|
ct: ct.toString("base64url"),
|
|
81
91
|
};
|
|
82
92
|
}
|
|
83
|
-
/** The plaintext of a sealed envelope, or undefined if the key is wrong or the envelope was altered. */
|
|
93
|
+
/** The plaintext of a sealed envelope, or undefined if the key is wrong or the envelope was altered. The envelope's iv and tag have already been checked to be the lengths `seal` writes, and the cipher is set to accept only a full-length tag as well, so a shortened one cannot authenticate. */
|
|
84
94
|
function open(key, envelope) {
|
|
85
|
-
const decipher = createDecipheriv("aes-256-gcm", key, Buffer.from(envelope.iv, "base64url"));
|
|
86
|
-
decipher.setAAD(BUNDLE_AAD);
|
|
87
|
-
decipher.setAuthTag(Buffer.from(envelope.tag, "base64url"));
|
|
88
95
|
try {
|
|
96
|
+
const decipher = createDecipheriv("aes-256-gcm", key, Buffer.from(envelope.iv, "base64url"), { authTagLength: TAG_BYTES });
|
|
97
|
+
decipher.setAAD(BUNDLE_AAD);
|
|
98
|
+
decipher.setAuthTag(Buffer.from(envelope.tag, "base64url"));
|
|
89
99
|
return Buffer.concat([
|
|
90
100
|
decipher.update(Buffer.from(envelope.ct, "base64url")),
|
|
91
101
|
decipher.final(),
|
|
@@ -118,7 +128,7 @@ export function sealAccountBundle(contents, passphrase) {
|
|
|
118
128
|
};
|
|
119
129
|
return `${ACCOUNT_BUNDLE_PREFIX}${Buffer.from(JSON.stringify(envelope)).toString("base64url")}`;
|
|
120
130
|
}
|
|
121
|
-
/** The account contents a bundle holds. Throws INVALID_BUNDLE for text that is not a bundle this build can read, and WRONG_PASSPHRASE when the passphrase does not open it. The cost parameters
|
|
131
|
+
/** The account contents a bundle holds. Throws INVALID_BUNDLE for text that is not a bundle this build can read (including one whose cost parameters, salt, iv or authentication tag are not in the form this build writes), and WRONG_PASSPHRASE when the passphrase does not open it. The cost parameters in the bundle must be exactly the ones this build writes, so reading a bundle costs no more than writing one, no weak derivation is accepted, and nothing fails with a raw error. */
|
|
122
132
|
export function openAccountBundle(bundle, passphrase) {
|
|
123
133
|
const text = bundle.trim();
|
|
124
134
|
if (!text.startsWith(ACCOUNT_BUNDLE_PREFIX)) {
|
|
@@ -132,10 +142,7 @@ export function openAccountBundle(bundle, passphrase) {
|
|
|
132
142
|
throw new CommsError("The account bundle is damaged", "INVALID_BUNDLE");
|
|
133
143
|
}
|
|
134
144
|
const envelope = passphraseEnvelopeSchema.safeParse(decoded);
|
|
135
|
-
if (!envelope.success
|
|
136
|
-
envelope.data.n > SCRYPT_COST ||
|
|
137
|
-
envelope.data.r > SCRYPT_BLOCK_SIZE ||
|
|
138
|
-
envelope.data.p > SCRYPT_PARALLELISM) {
|
|
145
|
+
if (!envelope.success) {
|
|
139
146
|
throw new CommsError("The account bundle is damaged", "INVALID_BUNDLE");
|
|
140
147
|
}
|
|
141
148
|
const key = passphraseKey(passphrase, Buffer.from(envelope.data.salt, "base64url"), envelope.data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-bundle.js","sourceRoot":"","sources":["../../src/core/account-bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,8HAA8H;AAC9H,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE/D,mOAAmO;AACnO,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,WAAW,GAAG,CAAC,IAAI,gBAAgB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,0JAA0J;AAC1J,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,iBAAiB,GACrB,CAAC,GAAG,qBAAqB,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAC9D,oEAAoE;AACpE,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,iCAAiC;AACjC,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,0NAA0N;AAC1N,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,MAAM,eAAe,GAAG,+BAA+B,CAAC;AACxD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAEtD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"account-bundle.js","sourceRoot":"","sources":["../../src/core/account-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-join.d.ts","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAOxE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EACjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"account-join.d.ts","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import { openAccountKeyFromInvite, sealAccountKeyForInvite, } from "./account-bu
|
|
|
12
12
|
import { openAccountLedger } from "./account-ledger-store.js";
|
|
13
13
|
import { DEFAULT_CONNECTION_CODE_TTL_MS, } from "./connection-code.js";
|
|
14
14
|
import { parseDisplayName } from "./display-name.js";
|
|
15
|
+
import { parseIsoTimestampMs } from "./iso-timestamp.js";
|
|
15
16
|
import { isDeviceIdHex } from "./room-path.js";
|
|
16
17
|
import { CommsError, requireDisplayName } from "./store.js";
|
|
17
18
|
import { importAccountKey, readAccountContents } from "./user-identity.js";
|
|
@@ -104,7 +105,8 @@ export class AccountJoin {
|
|
|
104
105
|
pruneExpired() {
|
|
105
106
|
const now = this.deps.requireIdentity().clock.now();
|
|
106
107
|
for (const [nonce, invite] of this.invites) {
|
|
107
|
-
|
|
108
|
+
const expiresAtMs = parseIsoTimestampMs(invite.secret.expiresAt);
|
|
109
|
+
if (expiresAtMs !== undefined && expiresAtMs > now)
|
|
108
110
|
continue;
|
|
109
111
|
this.invites.delete(nonce);
|
|
110
112
|
invite.settle("expired");
|
|
@@ -138,7 +140,7 @@ export class AccountJoin {
|
|
|
138
140
|
}
|
|
139
141
|
const contents = openAccountKeyFromInvite(sealed, candidate);
|
|
140
142
|
const current = this.deps.requireIdentity();
|
|
141
|
-
const { identity, replacedFile } = importAccountKey(current.userIdentityOptions, contents);
|
|
143
|
+
const { identity, replacedFile } = await importAccountKey(current.userIdentityOptions, contents);
|
|
142
144
|
this.deps.setIdentity({
|
|
143
145
|
...current,
|
|
144
146
|
userIdentity: await toIdentityPort(identity),
|
|
@@ -146,6 +148,7 @@ export class AccountJoin {
|
|
|
146
148
|
userIdentityOptions: current.userIdentityOptions,
|
|
147
149
|
userIdentity: identity,
|
|
148
150
|
clock: current.clock,
|
|
151
|
+
onDamagedEntry: current.accountLedger.reportDamagedEntry,
|
|
149
152
|
}),
|
|
150
153
|
});
|
|
151
154
|
this.trustOwnAccount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-join.js","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,8BAA8B,GAI/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,mOAAmO;AACnO,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,MAAM,4BAA4B,GAAG,cAAc,CAAC;AAEpD,iIAAiI;AACjI,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,UAAU;IACV,eAAe;CAChB,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,4NAA4N;AAC5N,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,aAAa,CAAC;AAC1E,qGAAqG;AACrG,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AA+CvC,yOAAyO;AACzO,SAAS,aAAa,CACpB,MAAyC;IAEzC,MAAM,KAAK,GAAY,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,MAAM,OAAO,GAAY,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACrC,gBAAgB,CAAC,KAAK,CAAC,KAAK,KAAK,EACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,WAAW;IAIO;IAH7B,2GAA2G;IAC1F,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE5D,YAA6B,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;IAAG,CAAC;IAEhE,oYAAoY;IACpY,KAAK,CAAC,MAAM,CACV,UAAgE,EAAE;QAElE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,8BAA8B,CAAC;QAC9D,IAAI,KAAK,GAAG,8BAA8B,EAAE,CAAC;YAC3C,MAAM,IAAI,UAAU,CAClB,gDAAgD,MAAM,CAAC,8BAA8B,CAAC,2DAA2D,EACjJ,qBAAqB,CACtB,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CACnD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EACrB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CACxC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,EAAE;YAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC1B,MAAM,EAAE;oBACN,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;gBACD,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,2IAA2I;QAC3I,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,kQAAkQ;IACzP,iBAAiB,GAAG,KAAK,EAChC,OAAwC,EAChB,EAAE;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACnC,MAAM,IAAI,GAAY,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,MAAM,MAAM,GACV,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,4KAA4K;QAC5K,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,uBAAuB,CACpC,mBAAmB,CAAC,mBAAmB,CAAC,EACxC,MAAM,CAAC,MAAM,CACd,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,kGAAkG;IAC1F,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,
|
|
1
|
+
{"version":3,"file":"account-join.js","sourceRoot":"","sources":["../../src/core/account-join.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-ledger-crypto.d.ts","sourceRoot":"","sources":["../../src/core/account-ledger-crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAWlE,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,QAA0B,CAAC;AAQ1D,8FAA8F;AAC9F,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uMAAuM;AACvM,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,MAAM,GAC3B,iBAAiB,CAWnB;AASD,+DAA+D;AAC/D,wBAAgB,mBAAmB,IAAI,UAAU,CAAC,WAAW,CAAC,CAE7D;AAED,2KAA2K;AAC3K,wBAAgB,WAAW,CACzB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,GAChB,QAAQ,CAUV;AAED,iKAAiK;AACjK,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,GAChB,OAAO,CAOT;AAQD,+GAA+G;AAC/G,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,UAAU,GACpB,UAAU,CAAC,WAAW,CAAC,CAazB;AAED,yLAAyL;AACzL,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,GACjB,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"account-ledger-crypto.d.ts","sourceRoot":"","sources":["../../src/core/account-ledger-crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAWlE,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,QAA0B,CAAC;AAQ1D,8FAA8F;AAC9F,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uMAAuM;AACvM,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,MAAM,GAC3B,iBAAiB,CAWnB;AASD,+DAA+D;AAC/D,wBAAgB,mBAAmB,IAAI,UAAU,CAAC,WAAW,CAAC,CAE7D;AAED,2KAA2K;AAC3K,wBAAgB,WAAW,CACzB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,GAChB,QAAQ,CAUV;AAED,iKAAiK;AACjK,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,GAChB,OAAO,CAOT;AAQD,+GAA+G;AAC/G,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,UAAU,GACpB,UAAU,CAAC,WAAW,CAAC,CAazB;AAED,yLAAyL;AACzL,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACjC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,GACjB,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,CAuBrC"}
|
|
@@ -85,7 +85,10 @@ export function openLedgerEntry(keys, logId, seq, sealed) {
|
|
|
85
85
|
}
|
|
86
86
|
const iv = sealed.subarray(VERSION_BYTES, VERSION_BYTES + IV_BYTES);
|
|
87
87
|
const tag = sealed.subarray(VERSION_BYTES + IV_BYTES, headerBytes);
|
|
88
|
-
|
|
88
|
+
// The tag is the fixed TAG_BYTES slice above; pinning the length as well means Node can never accept a shortened one if the layout changes.
|
|
89
|
+
const decipher = createDecipheriv("aes-256-gcm", keys.entryKey, iv, {
|
|
90
|
+
authTagLength: TAG_BYTES,
|
|
91
|
+
});
|
|
89
92
|
decipher.setAAD(associatedData(logId, seq));
|
|
90
93
|
decipher.setAuthTag(tag);
|
|
91
94
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-ledger-crypto.js","sourceRoot":"","sources":["../../src/core/account-ledger-crypto.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"account-ledger-crypto.js","sourceRoot":"","sources":["../../src/core/account-ledger-crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Opens this machine's copy of the account's replicated grant ledger (account-ledger.ts): a filesystem store beside user-identity.json, shared by every bridge on the machine, and the one-time migration of a pre-ledger user-identity.json's own issued-grant maps into it.
|
|
3
3
|
*/
|
|
4
4
|
import type { Clock } from "wire-mesh-core/ports/clock";
|
|
5
|
-
import { AccountLedger } from "./account-ledger.js";
|
|
5
|
+
import { AccountLedger, type LedgerEntryDamagedError } from "./account-ledger.js";
|
|
6
6
|
import type { PeerIdentity } from "./identity.js";
|
|
7
7
|
import { type UserIdentityOptions } from "./user-identity.js";
|
|
8
8
|
export interface OpenAccountLedgerOptions {
|
|
@@ -11,6 +11,8 @@ export interface OpenAccountLedgerOptions {
|
|
|
11
11
|
/** The account's identity as loadOrCreateUserIdentity returned it. */
|
|
12
12
|
userIdentity: Readonly<PeerIdentity>;
|
|
13
13
|
clock: Clock;
|
|
14
|
+
/** Where an unreadable ledger entry is reported; see AccountLedgerDeps.onDamagedEntry. */
|
|
15
|
+
onDamagedEntry?: ((error: LedgerEntryDamagedError) => void) | undefined;
|
|
14
16
|
}
|
|
15
17
|
/** The directory an account's ledger is stored in on this machine. Named by the account's device-id, so a machine that imports a different account starts that account's ledger afresh instead of mixing two accounts' logs. */
|
|
16
18
|
export declare function accountLedgerDir(userIdentityOptions: Readonly<UserIdentityOptions>, userIdentity: Readonly<PeerIdentity>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-ledger-store.d.ts","sourceRoot":"","sources":["../../src/core/account-ledger-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,
|
|
1
|
+
{"version":3,"file":"account-ledger-store.d.ts","sourceRoot":"","sources":["../../src/core/account-ledger-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EACL,aAAa,EACb,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACnD,sEAAsE;IACtE,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,0FAA0F;IAC1F,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACzE;AAED,gOAAgO;AAChO,wBAAgB,gBAAgB,CAC9B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAClD,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GACnC,MAAM,CAKR;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAC1C,OAAO,CAAC,aAAa,CAAC,CAwBxB"}
|
|
@@ -5,7 +5,7 @@ import * as path from "node:path";
|
|
|
5
5
|
import { createNodeFsStorage } from "wire-mesh-core/adapters/node-fs-storage";
|
|
6
6
|
import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
|
|
7
7
|
import { generateWriterNonce } from "./account-ledger-crypto.js";
|
|
8
|
-
import { AccountLedger } from "./account-ledger.js";
|
|
8
|
+
import { AccountLedger, } from "./account-ledger.js";
|
|
9
9
|
import { createFileLedgerLock } from "./ledger-lock.js";
|
|
10
10
|
import { clearLegacyIssuedGrants, loadOrCreateLedgerWriterNonce, readLegacyIssuedGrants, userIdentityDir, } from "./user-identity.js";
|
|
11
11
|
/** The directory an account's ledger is stored in on this machine. Named by the account's device-id, so a machine that imports a different account starts that account's ledger afresh instead of mixing two accounts' logs. */
|
|
@@ -19,15 +19,18 @@ export async function openAccountLedger(options) {
|
|
|
19
19
|
const dir = accountLedgerDir(options.userIdentityOptions, options.userIdentity);
|
|
20
20
|
const ledger = new AccountLedger({
|
|
21
21
|
accountPrivateKey: options.userIdentity.privateKey,
|
|
22
|
-
writerNonce: loadOrCreateLedgerWriterNonce(options.userIdentityOptions, generateWriterNonce),
|
|
22
|
+
writerNonce: await loadOrCreateLedgerWriterNonce(options.userIdentityOptions, generateWriterNonce),
|
|
23
23
|
storage: createNodeFsStorage({ dir }),
|
|
24
24
|
lock: createFileLedgerLock(`${dir}.lock`),
|
|
25
25
|
clock: options.clock,
|
|
26
|
+
...(options.onDamagedEntry !== undefined && {
|
|
27
|
+
onDamagedEntry: options.onDamagedEntry,
|
|
28
|
+
}),
|
|
26
29
|
});
|
|
27
30
|
const legacy = readLegacyIssuedGrants(options.userIdentityOptions);
|
|
28
31
|
if (legacy.length > 0) {
|
|
29
32
|
await ledger.recordGrants(legacy);
|
|
30
|
-
clearLegacyIssuedGrants(options.userIdentityOptions, legacy);
|
|
33
|
+
await clearLegacyIssuedGrants(options.userIdentityOptions, legacy);
|
|
31
34
|
}
|
|
32
35
|
return ledger;
|
|
33
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-ledger-store.js","sourceRoot":"","sources":["../../src/core/account-ledger-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"account-ledger-store.js","sourceRoot":"","sources":["../../src/core/account-ledger-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,aAAa,GAEd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EACtB,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAY5B,gOAAgO;AAChO,MAAM,UAAU,gBAAgB,CAC9B,mBAAkD,EAClD,YAAoC;IAEpC,OAAO,IAAI,CAAC,IAAI,CACd,eAAe,CAAC,mBAAmB,CAAC,EACpC,kBAAkB,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAC1E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA2C;IAE3C,MAAM,GAAG,GAAG,gBAAgB,CAC1B,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,YAAY,CACrB,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;QAC/B,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU;QAClD,WAAW,EAAE,MAAM,6BAA6B,CAC9C,OAAO,CAAC,mBAAmB,EAC3B,mBAAmB,CACpB;QACD,OAAO,EAAE,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,IAAI,EAAE,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC;QACzC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI;YAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;KACH,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* Each machine appends to a writer log of its own rather than all of them sharing one: a data-domain log is single-writer, and two machines appending to one log while apart would both write the same sequence number and fork it, silently losing one side's grants. A writer log's id is self-authenticating (account-ledger-crypto.ts), so any account holder recognises every writer log it is offered without a roster, and the ledger is the union of all of them.
|
|
5
5
|
*
|
|
6
6
|
* Holding a replica grants no authority: an entry is sealed under a key derived from the account key, so a replica held by anyone else is ciphertext they can neither read nor forge, and minting or revoking still needs the account's private key.
|
|
7
|
+
*
|
|
8
|
+
* A single entry that cannot be read never blocks the rest of the ledger. Revoking is the operation the ledger exists for, and storage can lose or damage an entry, so an unreadable entry that stopped listing and revoking would turn one damaged file into a permanent inability to revoke anything for that account. Each unreadable entry is instead skipped, and a skipped entry is never silent: it is reported once per ledger as a LedgerEntryDamagedError (to `onDamagedEntry`, stderr by default), naming its log and position, listed by `unreadableEntries()` for `whoami`, and counted in the result of every read that met it (`outstandingGrantsChecked` and `revocations`), so a caller that revokes can tell its outcome is incomplete. An unreadable entry may hold a grant or a revocation: a grant recorded only in it is not listed, so it is not revoked, and a revocation recorded only in it is not applied by this machine, until the entry is repaired or replaced from another machine's replica. Revocations in the readable entries are still applied, and a revocation announced over the mesh still reaches the store.
|
|
7
9
|
*/
|
|
8
10
|
import { type DataEntriesFrame, type DataHaveFrame, type DataRequestFrame, type DeviceId, type RevocationEntry } from "wire-mesh-core/generated/protocol";
|
|
9
11
|
import type { RevocationView } from "wire-mesh-core/domain/revocation-view";
|
|
@@ -29,7 +31,29 @@ export interface AccountLedgerDeps {
|
|
|
29
31
|
/** Serialises every read and write of `storage` across every bridge sharing it: appends to this machine's writer log, replicated entries stored for another machine's, and every read of either. The store's writes are not atomic (a file is truncated, then written), so a read racing another bridge's write could see an empty head and treat a log as empty. */
|
|
30
32
|
lock: LedgerLock;
|
|
31
33
|
clock: Clock;
|
|
34
|
+
/** Called once for each ledger entry that could not be read. Defaults to a line on stderr. */
|
|
35
|
+
onDamagedEntry?: (error: LedgerEntryDamagedError) => void;
|
|
36
|
+
}
|
|
37
|
+
/** Why an entry that opened under the account key is unreadable. Fixed text: the decoder's own message can quote the entry's content, and the report is printed whole. */
|
|
38
|
+
export declare const UNDECODABLE_REASON = "its content is not a record this build can decode";
|
|
39
|
+
/** A ledger entry that is stored but cannot be read: it does not open under the account's key for its log and position, or what it holds is not a record this build can decode. */
|
|
40
|
+
export declare class LedgerEntryDamagedError extends Error {
|
|
41
|
+
/** The writer log the entry belongs to, as hex. */
|
|
42
|
+
readonly log: string;
|
|
43
|
+
/** The entry's position in that log, counting from one. */
|
|
44
|
+
readonly seq: number;
|
|
45
|
+
/** Why it could not be read. */
|
|
46
|
+
readonly reason: string;
|
|
47
|
+
constructor(
|
|
48
|
+
/** The writer log the entry belongs to, as hex. */
|
|
49
|
+
log: string,
|
|
50
|
+
/** The entry's position in that log, counting from one. */
|
|
51
|
+
seq: number,
|
|
52
|
+
/** Why it could not be read. */
|
|
53
|
+
reason: string);
|
|
32
54
|
}
|
|
55
|
+
/** The default place an unreadable ledger entry is reported: one line on stderr. */
|
|
56
|
+
export declare function reportDamagedEntryToStderr(error: Readonly<LedgerEntryDamagedError>): void;
|
|
33
57
|
/** Answers and stores the data-domain frames for the account's writer logs; what a transport needs of the ledger to replicate it. */
|
|
34
58
|
export interface AccountLedgerReplica {
|
|
35
59
|
/** Whether `peer` names one of this account's writer logs. */
|
|
@@ -38,12 +62,24 @@ export interface AccountLedgerReplica {
|
|
|
38
62
|
handleDataFrame: (frame: Readonly<DataHaveFrame | DataRequestFrame | DataEntriesFrame>) => Promise<DataHaveFrame | DataRequestFrame | DataEntriesFrame | null>;
|
|
39
63
|
/** A data-have for every account log this machine holds, to offer peers. */
|
|
40
64
|
announcements: () => Promise<DataHaveFrame[]>;
|
|
65
|
+
/** The stored entries that could not be read, as far as reads so far have found. */
|
|
66
|
+
unreadableEntries: () => readonly LedgerEntryDamagedError[];
|
|
67
|
+
}
|
|
68
|
+
/** What a read of the ledger could not read: the number of stored entries that were skipped because they cannot be opened or decoded. Zero means the read was complete. */
|
|
69
|
+
export interface LedgerGaps {
|
|
70
|
+
unreadable: number;
|
|
41
71
|
}
|
|
72
|
+
/** Where a store's unreadable ledger entries are reported: its own error handler once it has one, otherwise stderr, since a handler that is not assigned yet or not at all must not make an entry that can hide a grant go unreported. `getOnError` is read on every report. */
|
|
73
|
+
export declare function damagedEntryReporter(getOnError: () => ((error: Error) => void) | undefined): (error: LedgerEntryDamagedError) => void;
|
|
42
74
|
export declare class AccountLedger implements AccountLedgerReplica {
|
|
43
75
|
private readonly deps;
|
|
44
76
|
/** This machine's own writer log. */
|
|
45
77
|
readonly writerLog: DeviceId;
|
|
78
|
+
/** Where this ledger reports an entry it cannot read; also what a ledger opened for another account on the same machine is given, so the destination follows the store and not the account. */
|
|
79
|
+
readonly reportDamagedEntry: (error: LedgerEntryDamagedError) => void;
|
|
46
80
|
private readonly keys;
|
|
81
|
+
/** Every entry a read has found unreadable, keyed by log and position, each reported once. */
|
|
82
|
+
private readonly damaged;
|
|
47
83
|
private readonly revocationListeners;
|
|
48
84
|
constructor(deps: Readonly<AccountLedgerDeps>);
|
|
49
85
|
/** Records that the principal minted `tokenId` for `subjectHex`. */
|
|
@@ -56,10 +92,17 @@ export declare class AccountLedger implements AccountLedgerReplica {
|
|
|
56
92
|
}>[]): Promise<void>;
|
|
57
93
|
/** Records the revocation of `tokenId`, carrying the signed revocation entry itself so every replica can feed it into its own RevocationView. */
|
|
58
94
|
recordRevocation(kind: IssuedGrantKind, subjectHex: string, tokenId: Uint8Array<ArrayBuffer>, revocation: RevocationEntry): Promise<void>;
|
|
59
|
-
/** Every grant of `kind` for `subjectHex` that some machine of the account recorded and none has revoked, oldest first. */
|
|
95
|
+
/** Every grant of `kind` for `subjectHex` that some machine of the account recorded and none has revoked, oldest first, among the entries that can be read. A caller that goes on to revoke uses outstandingGrantsChecked, which also says whether entries were skipped. */
|
|
60
96
|
outstandingGrants(kind: IssuedGrantKind, subjectHex: string): Promise<OutstandingGrant[]>;
|
|
61
|
-
/**
|
|
62
|
-
|
|
97
|
+
/** outstandingGrants with the number of entries the read had to skip: when it is above zero, a grant recorded only in a skipped entry is not in `grants`, and revoking `grants` does not make the subject safe. */
|
|
98
|
+
outstandingGrantsChecked(kind: IssuedGrantKind, subjectHex: string): Promise<{
|
|
99
|
+
grants: OutstandingGrant[];
|
|
100
|
+
} & LedgerGaps>;
|
|
101
|
+
/** Every revocation entry the readable part of the ledger holds, from every machine, for a RevocationView to learn at start-up, and how many entries were skipped: a revocation recorded only in one of those is not in `entries`. */
|
|
102
|
+
revocations(): Promise<{
|
|
103
|
+
entries: RevocationEntry[];
|
|
104
|
+
} & LedgerGaps>;
|
|
105
|
+
unreadableEntries(): readonly LedgerEntryDamagedError[];
|
|
63
106
|
ownsLog(peer: DeviceId): boolean;
|
|
64
107
|
/** Calls `listener` with each revocation entry another machine's replicated log brings in, so a RevocationView learns it even if the gossiped revocation-announce never reached this node. Returns the unsubscribe. */
|
|
65
108
|
onReplicatedRevocation(listener: (entry: RevocationEntry) => void): () => void;
|
|
@@ -68,7 +111,11 @@ export declare class AccountLedger implements AccountLedgerReplica {
|
|
|
68
111
|
private append;
|
|
69
112
|
/** Every account writer log in storage, this machine's own included once it has written anything. Called only under the lock. */
|
|
70
113
|
private heldLogs;
|
|
71
|
-
/**
|
|
114
|
+
/** The record an entry holds, or undefined after noting why it cannot be read (or, silently, for a record of a later format version). */
|
|
115
|
+
private decodeOrReport;
|
|
116
|
+
/** Remembers an unreadable entry and reports it the first time it is met. */
|
|
117
|
+
private noteDamaged;
|
|
118
|
+
/** Every readable record in every held writer log, in the order stored, and how many entries were skipped. An entry that cannot be read is noted and skipped (see the module comment for why that is not a failure). handleDataFrame and append never store one, so it means the storage was damaged outside the ledger or a holder of the account key wrote one this build cannot decode. */
|
|
72
119
|
private records;
|
|
73
120
|
}
|
|
74
121
|
/** Feeds every revocation the account ledger holds, and each one another machine's log brings in later, into a store's RevocationView, so a grant any machine of the account revoked is refused there even if the gossiped revocation-announce never reached it. A revocation that fails to verify, or a ledger that cannot be read, is reported rather than recorded. Returns the unsubscribe, for a store that replaces its ledger on joining another account. */
|