@cello-protocol/daemon 0.0.181 → 0.0.183
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/agent-id-migration.d.ts +9 -0
- package/dist/agent-id-migration.d.ts.map +1 -1
- package/dist/agent-id-migration.js +73 -1
- package/dist/agent-id-migration.js.map +1 -1
- package/dist/agent-selection.d.ts +73 -0
- package/dist/agent-selection.d.ts.map +1 -0
- package/dist/agent-selection.js +80 -0
- package/dist/agent-selection.js.map +1 -0
- package/dist/agent-settings-keys.d.ts.map +1 -1
- package/dist/agent-settings-keys.js +18 -0
- package/dist/agent-settings-keys.js.map +1 -1
- package/dist/assignment-verify.d.ts +62 -0
- package/dist/assignment-verify.d.ts.map +1 -0
- package/dist/assignment-verify.js +185 -0
- package/dist/assignment-verify.js.map +1 -0
- package/dist/backup-restore.d.ts +102 -0
- package/dist/backup-restore.d.ts.map +1 -0
- package/dist/backup-restore.js +340 -0
- package/dist/backup-restore.js.map +1 -0
- package/dist/bin/cello-daemon.js +91 -49
- package/dist/bin/cello-daemon.js.map +1 -1
- package/dist/close-commitment.d.ts +67 -0
- package/dist/close-commitment.d.ts.map +1 -0
- package/dist/close-commitment.js +78 -0
- package/dist/close-commitment.js.map +1 -0
- package/dist/close-session-handler.d.ts +20 -0
- package/dist/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +351 -58
- package/dist/close-session-handler.js.map +1 -1
- package/dist/consortium-bootstrap.d.ts +2 -0
- package/dist/consortium-bootstrap.d.ts.map +1 -1
- package/dist/consortium-bootstrap.js +182 -9
- package/dist/consortium-bootstrap.js.map +1 -1
- package/dist/content-encryption-status.d.ts +97 -0
- package/dist/content-encryption-status.d.ts.map +1 -0
- package/dist/content-encryption-status.js +122 -0
- package/dist/content-encryption-status.js.map +1 -0
- package/dist/content-park-client.d.ts +10 -0
- package/dist/content-park-client.d.ts.map +1 -1
- package/dist/content-park-client.js +84 -3
- package/dist/content-park-client.js.map +1 -1
- package/dist/content-park.d.ts.map +1 -1
- package/dist/content-park.js +323 -21
- package/dist/content-park.js.map +1 -1
- package/dist/daemon.d.ts +13 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +1168 -141
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-session-suspects.d.ts.map +1 -1
- package/dist/delivery-session-suspects.js +5 -0
- package/dist/delivery-session-suspects.js.map +1 -1
- package/dist/directory-auth-posture.d.ts +87 -0
- package/dist/directory-auth-posture.d.ts.map +1 -0
- package/dist/directory-auth-posture.js +134 -0
- package/dist/directory-auth-posture.js.map +1 -0
- package/dist/directory-bootstrap.d.ts +66 -3
- package/dist/directory-bootstrap.d.ts.map +1 -1
- package/dist/directory-bootstrap.js +133 -7
- package/dist/directory-bootstrap.js.map +1 -1
- package/dist/document-delivery-transport.d.ts +22 -2
- package/dist/document-delivery-transport.d.ts.map +1 -1
- package/dist/document-delivery-transport.js +11 -3
- package/dist/document-delivery-transport.js.map +1 -1
- package/dist/document-handlers.d.ts.map +1 -1
- package/dist/document-handlers.js +119 -0
- package/dist/document-handlers.js.map +1 -1
- package/dist/document-layer.d.ts +0 -2
- package/dist/document-layer.d.ts.map +1 -1
- package/dist/document-layer.js.map +1 -1
- package/dist/inbound-sessions.d.ts +31 -1
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +276 -16
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/initiate-session-handler.d.ts.map +1 -1
- package/dist/initiate-session-handler.js +34 -3
- package/dist/initiate-session-handler.js.map +1 -1
- package/dist/ipc-server.d.ts +5 -1
- package/dist/ipc-server.d.ts.map +1 -1
- package/dist/ipc-server.js +19 -3
- package/dist/ipc-server.js.map +1 -1
- package/dist/manifest-deps.d.ts +0 -11
- package/dist/manifest-deps.d.ts.map +1 -1
- package/dist/manifest-deps.js +28 -2
- package/dist/manifest-deps.js.map +1 -1
- package/dist/manifest-validity.d.ts +153 -0
- package/dist/manifest-validity.d.ts.map +1 -0
- package/dist/manifest-validity.js +268 -0
- package/dist/manifest-validity.js.map +1 -0
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +15 -0
- package/dist/notification-handlers.js.map +1 -1
- package/dist/outbound-sessions.d.ts +31 -0
- package/dist/outbound-sessions.d.ts.map +1 -1
- package/dist/outbound-sessions.js +217 -17
- package/dist/outbound-sessions.js.map +1 -1
- package/dist/park-envelope.d.ts +95 -1
- package/dist/park-envelope.d.ts.map +1 -1
- package/dist/park-envelope.js +195 -4
- package/dist/park-envelope.js.map +1 -1
- package/dist/refusal-reasons.d.ts +72 -0
- package/dist/refusal-reasons.d.ts.map +1 -0
- package/dist/refusal-reasons.js +69 -0
- package/dist/refusal-reasons.js.map +1 -0
- package/dist/register-handler.d.ts.map +1 -1
- package/dist/register-handler.js +76 -0
- package/dist/register-handler.js.map +1 -1
- package/dist/registration-manager.d.ts.map +1 -1
- package/dist/registration-manager.js +20 -1
- package/dist/registration-manager.js.map +1 -1
- package/dist/relay-only.d.ts +133 -0
- package/dist/relay-only.d.ts.map +1 -0
- package/dist/relay-only.js +183 -0
- package/dist/relay-only.js.map +1 -0
- package/dist/restart-seal-resolver.d.ts.map +1 -1
- package/dist/restart-seal-resolver.js +6 -0
- package/dist/restart-seal-resolver.js.map +1 -1
- package/dist/retry-queue.d.ts +49 -2
- package/dist/retry-queue.d.ts.map +1 -1
- package/dist/retry-queue.js +55 -10
- package/dist/retry-queue.js.map +1 -1
- package/dist/roster-freshness.d.ts +169 -0
- package/dist/roster-freshness.d.ts.map +1 -0
- package/dist/roster-freshness.js +249 -0
- package/dist/roster-freshness.js.map +1 -0
- package/dist/seal-certificate-pull.d.ts +17 -1
- package/dist/seal-certificate-pull.d.ts.map +1 -1
- package/dist/seal-certificate-pull.js +37 -3
- package/dist/seal-certificate-pull.js.map +1 -1
- package/dist/seal-coordinator.d.ts +17 -1
- package/dist/seal-coordinator.d.ts.map +1 -1
- package/dist/seal-coordinator.js +71 -0
- package/dist/seal-coordinator.js.map +1 -1
- package/dist/seal-failure-store.d.ts +104 -0
- package/dist/seal-failure-store.d.ts.map +1 -0
- package/dist/seal-failure-store.js +126 -0
- package/dist/seal-failure-store.js.map +1 -0
- package/dist/seal-flows.d.ts.map +1 -1
- package/dist/seal-flows.js +35 -6
- package/dist/seal-flows.js.map +1 -1
- package/dist/seal-upgrade.d.ts +20 -5
- package/dist/seal-upgrade.d.ts.map +1 -1
- package/dist/seal-upgrade.js +28 -5
- package/dist/seal-upgrade.js.map +1 -1
- package/dist/session-assignment-parser.d.ts +41 -5
- package/dist/session-assignment-parser.d.ts.map +1 -1
- package/dist/session-assignment-parser.js +77 -14
- package/dist/session-assignment-parser.js.map +1 -1
- package/dist/session-ceremony.d.ts +35 -0
- package/dist/session-ceremony.d.ts.map +1 -1
- package/dist/session-ceremony.js +97 -0
- package/dist/session-ceremony.js.map +1 -1
- package/dist/session-connection-gater.d.ts +46 -7
- package/dist/session-connection-gater.d.ts.map +1 -1
- package/dist/session-connection-gater.js +163 -12
- package/dist/session-connection-gater.js.map +1 -1
- package/dist/session-content-handlers.d.ts +12 -0
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +149 -8
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-node-manager.d.ts +653 -40
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +5938 -374
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-read-handlers.d.ts +27 -0
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +127 -6
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-relay-client.d.ts +177 -2
- package/dist/session-relay-client.d.ts.map +1 -1
- package/dist/session-relay-client.js +564 -16
- package/dist/session-relay-client.js.map +1 -1
- package/dist/session-salt-agreement.d.ts +338 -0
- package/dist/session-salt-agreement.d.ts.map +1 -0
- package/dist/session-salt-agreement.js +478 -0
- package/dist/session-salt-agreement.js.map +1 -0
- package/dist/signal-submission.d.ts.map +1 -1
- package/dist/signal-submission.js +10 -1
- package/dist/signal-submission.js.map +1 -1
- package/dist/signaling-connect.d.ts +18 -1
- package/dist/signaling-connect.d.ts.map +1 -1
- package/dist/signaling-connect.js +206 -6
- package/dist/signaling-connect.js.map +1 -1
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +10 -0
- package/dist/vocabulary.js.map +1 -1
- package/dist/wire-content-hash.d.ts +68 -0
- package/dist/wire-content-hash.d.ts.map +1 -1
- package/dist/wire-content-hash.js +83 -0
- package/dist/wire-content-hash.js.map +1 -1
- package/package.json +5 -5
|
@@ -59,6 +59,17 @@ async function safeStop(node) {
|
|
|
59
59
|
/* best-effort teardown */
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
+
/** A directory node the daemon can dial, resolved from bootstrap config or a manifest. */
|
|
63
|
+
/**
|
|
64
|
+
* DOD-M15-STEP6-REPLAY-1 — how far out of date a directory identity proof may be.
|
|
65
|
+
*
|
|
66
|
+
* ±5 minutes: wide enough for ordinary clock skew between an operator's machine and a directory
|
|
67
|
+
* node without requiring either to be time-synced, narrow enough that a captured proof stops being
|
|
68
|
+
* useful in minutes rather than never. An UNPARSEABLE timestamp is treated as out of window — the
|
|
69
|
+
* NaN-comparison lesson from the manifest gate, where `new Date("nonsense") <= x` is false and a
|
|
70
|
+
* garbage value sailed through a check that looked like it covered it.
|
|
71
|
+
*/
|
|
72
|
+
const IDENTITY_PROOF_MAX_SKEW_MS = 5 * 60_000;
|
|
62
73
|
/**
|
|
63
74
|
* Parse signaling_auth_ok's optional `relay_endpoints` field. Per-entry strict:
|
|
64
75
|
* a malformed entry is dropped (auth must never fail on a bad hint), a valid one
|
|
@@ -92,6 +103,20 @@ function parseRelayEndpoints(raw) {
|
|
|
92
103
|
* transport SignalingManager catches the throw and schedules a reconnect.
|
|
93
104
|
*/
|
|
94
105
|
export function createSignalingConnect(deps) {
|
|
106
|
+
/**
|
|
107
|
+
* DOD-M15-DIRAUTH-1 — directory peers already told about a skipped identity check.
|
|
108
|
+
*
|
|
109
|
+
* Mirrors `consortium-bootstrap`'s `lapsedMembershipReportedFor` idiom: the fact is about a PEER,
|
|
110
|
+
* not about a connection, so reporting it per connection says the same true thing ~48 times an
|
|
111
|
+
* hour forever. Keyed on the peer this daemon DIALLED — never on the peer's own claim about
|
|
112
|
+
* itself, which on this path is precisely the thing that was not verified.
|
|
113
|
+
*
|
|
114
|
+
* ⚠️ SCOPED TO THE FACTORY, not the module. A module-level set is shared by every daemon wiring in
|
|
115
|
+
* the process and never resets, which makes the suppression outlive the thing it describes and
|
|
116
|
+
* makes test order load-bearing — my first version did exactly that and a later test silently lost
|
|
117
|
+
* its warning to an earlier one.
|
|
118
|
+
*/
|
|
119
|
+
const authSkipReportedFor = new Set();
|
|
95
120
|
return async function connect() {
|
|
96
121
|
const endpoint = await deps.getDirectoryEndpoint();
|
|
97
122
|
if (!endpoint) {
|
|
@@ -102,15 +127,52 @@ export function createSignalingConnect(deps) {
|
|
|
102
127
|
throw new Error("no_agent_identity");
|
|
103
128
|
}
|
|
104
129
|
// Fresh directory-facing node per connect → fresh transport key / Peer ID.
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
//
|
|
130
|
+
//
|
|
131
|
+
// DOD-NAT-REACHABILITY-1: relayServer disabled, and the opt-out is NOT made redundant by this
|
|
132
|
+
// node listening on nothing (see below). Leaving `nodeType` unset takes the service-node
|
|
133
|
+
// default, which adds `circuitRelayServer` to the service map and advertises HOP — and HOP is
|
|
134
|
+
// advertised over connections WE opened, not only over ones we accept. A node with no listener
|
|
135
|
+
// still holds a live outbound connection to the directory.
|
|
136
|
+
//
|
|
137
|
+
// (This comment described the node as "bound on 0.0.0.0" until DOD-M15-SURFACE-1 removed the
|
|
138
|
+
// binding. Rewritten rather than deleted: the constraint it records is still load-bearing, and
|
|
139
|
+
// leaving it in past tense put two comments in one expression contradicting each other about
|
|
140
|
+
// the exact fact this unit changed — which is how the binding gets "restored" by a later
|
|
141
|
+
// session that stops reading at the first one.)
|
|
109
142
|
const node = deps.createDirectoryNode
|
|
110
143
|
? await deps.createDirectoryNode(identity.keyProvider)
|
|
111
144
|
: await createNode({
|
|
112
145
|
keyProvider: identity.keyProvider,
|
|
113
|
-
|
|
146
|
+
/**
|
|
147
|
+
* DOD-M15-SURFACE-1 — LISTEN ON NOTHING. This node had a real open port on every
|
|
148
|
+
* interface, for no reason.
|
|
149
|
+
*
|
|
150
|
+
* It bound `/ip4/0.0.0.0/tcp/0` while registering **no protocol handler at all**, and the
|
|
151
|
+
* directory never dials a client — every directory connection is one this daemon opened.
|
|
152
|
+
* So the port accepted connections that could reach no CELLO protocol, on an operator's
|
|
153
|
+
* machine, for the life of the daemon. Not listening is strictly stronger than filtering
|
|
154
|
+
* who may connect: there is no socket, nothing to scan, and nothing to gate. (A
|
|
155
|
+
* `DirectoryConnectionGater` exists for the filtering approach and is constructed only in
|
|
156
|
+
* tests — it is the consolation prize, not the fix.)
|
|
157
|
+
*
|
|
158
|
+
* FALSIFIED BEFORE REMOVING, because `listenAddresses()` IS sent to the directory at step
|
|
159
|
+
* 7 below, in `peer_info_announce`, under a comment saying it is so the directory can
|
|
160
|
+
* broker sessions. Traced to the consumer: the directory stores it and its own code says
|
|
161
|
+
* this address is *"its per-agent DIRECTORY node, NOT its standing-receiver session node,
|
|
162
|
+
* so it is NOT a valid content endpoint (using it yields 'could not negotiate
|
|
163
|
+
* /cello/content')"*. A counterparty's session endpoint reaches the other side through the
|
|
164
|
+
* `session_offer` → `session_offer_accept` round-trip, never through this announce. No
|
|
165
|
+
* client reads `participant_a/b.multiaddrs` at all.
|
|
166
|
+
*
|
|
167
|
+
* The announce still matters and still happens: `#peerInfoAnnounced` gates `session_request`
|
|
168
|
+
* on the directory side, and it is set by the frame ARRIVING, not by what is in it. The
|
|
169
|
+
* peer id still goes with it, and a peer id needs no listener.
|
|
170
|
+
*
|
|
171
|
+
* INBOUND SESSIONS ARE UNAFFECTED. They arrive on the standing receiver, which is a
|
|
172
|
+
* different node and keeps its socket deliberately (relay-audit Decision 2 — it is
|
|
173
|
+
* load-bearing for same-machine and same-LAN sessions).
|
|
174
|
+
*/
|
|
175
|
+
listenAddresses: [],
|
|
114
176
|
relayServer: { enabled: false },
|
|
115
177
|
// Same reason as relayServer above: this is a CLIENT node that leaves nodeType unset, so
|
|
116
178
|
// the service-node default would leave the AutoNAT responder on -- and answering one
|
|
@@ -181,6 +243,52 @@ export function createSignalingConnect(deps) {
|
|
|
181
243
|
// Runs only when a challengeVerifier is configured. M6 ran without one.
|
|
182
244
|
let directoryNodeId = typeof ackFrame["nodeId"] === "string" ? ackFrame["nodeId"] : endpoint.peerId;
|
|
183
245
|
const verifier = deps.challengeVerifier;
|
|
246
|
+
if (!verifier) {
|
|
247
|
+
/**
|
|
248
|
+
* DOD-M15-DIRAUTH-1 — **A DISARMED CHECK MUST NOT LOOK LIKE A HEALTHY ONE.**
|
|
249
|
+
*
|
|
250
|
+
* With no verifier configured, step 6 does not run at all: this daemon takes the
|
|
251
|
+
* directory's word for which directory it is. Until now the only trace of that was
|
|
252
|
+
* `verified: false` — a boolean field inside the **info** line at the bottom of a successful
|
|
253
|
+
* connect. Every other connect logged the same event at the same level, so the disarmed
|
|
254
|
+
* state and the enforced state were distinguishable only by reading one field of one line,
|
|
255
|
+
* which nothing alerts on and no operator reads.
|
|
256
|
+
*
|
|
257
|
+
* ⚠️ THIS IS NOT THE FIX AND MUST NOT BE MISTAKEN FOR ONE — this entry's own conclusion is
|
|
258
|
+
* that **a log is not a control**, and a WARN is still a log. What it buys is that the
|
|
259
|
+
* absence has a name and a level of its own, so "authentication is off" can be seen without
|
|
260
|
+
* knowing to look for it. The control is `CELLO_REQUIRE_DIRECTORY_AUTH`, which refuses at
|
|
261
|
+
* startup; this is what tells an operator who has not set it what they are running.
|
|
262
|
+
*/
|
|
263
|
+
/**
|
|
264
|
+
* ⚠️ ONCE PER DIRECTORY, NOT ONCE PER CONNECT — review F3, and the number is the argument.
|
|
265
|
+
* The signaling stream turns over roughly every 70 seconds and reconnects forever, so a
|
|
266
|
+
* per-connect WARN is ~48 an hour PER AGENT, indefinitely, and the daemon's stdout logger
|
|
267
|
+
* has no level filtering. Three agents is ~3,400 identical lines a day. **A signal that
|
|
268
|
+
* fires on the normal case is not a signal** — this repo's own rule — and it would bury the
|
|
269
|
+
* public-directory case this exists to raise.
|
|
270
|
+
*
|
|
271
|
+
* ⚠️ AND THE FIELD IS NAMED FOR WHAT IT IS — review F4. On this path `directoryNodeId` is
|
|
272
|
+
* `ackFrame["nodeId"]`: a string the REMOTE sent about itself, with nothing checked. Printing
|
|
273
|
+
* it under that name inside a line whose whole subject is *"we did not check which directory
|
|
274
|
+
* this is"* presents the peer's own answer as the answer. `dialedPeerId` sits beside it as
|
|
275
|
+
* the thing this daemon actually chose.
|
|
276
|
+
*/
|
|
277
|
+
const claimedNodeId = typeof ackFrame["nodeId"] === "string" ? ackFrame["nodeId"] : null;
|
|
278
|
+
if (!authSkipReportedFor.has(endpoint.peerId)) {
|
|
279
|
+
authSkipReportedFor.add(endpoint.peerId);
|
|
280
|
+
deps.logger.warn("directory.auth.skipped", {
|
|
281
|
+
dialedPeerId: endpoint.peerId,
|
|
282
|
+
claimedNodeId,
|
|
283
|
+
agentPubkey: identity.pubkeyHex,
|
|
284
|
+
impact: "no directory identity verifier is configured, so this connection did NOT check which " +
|
|
285
|
+
"directory it reached — the peer's claim of its own identity was accepted as given. " +
|
|
286
|
+
"Set CELLO_CONSORTIUM_ROOT_KEYS (with CELLO_CONSORTIUM_THRESHOLD) to enable " +
|
|
287
|
+
"verification, or CELLO_REQUIRE_DIRECTORY_AUTH=1 to refuse at startup instead of " +
|
|
288
|
+
"connecting unverified. Reported ONCE per directory peer, not per reconnect.",
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
184
292
|
if (verifier) {
|
|
185
293
|
const nodeId = ackFrame["nodeId"];
|
|
186
294
|
const signature = ackFrame["signature"];
|
|
@@ -200,8 +308,55 @@ export function createSignalingConnect(deps) {
|
|
|
200
308
|
deps.logger.error("directory.auth.challenge.failed", { directoryNodeId: nodeId, reason: result.reason });
|
|
201
309
|
throw new Error(`directory_challenge_failed: ${result.reason}`);
|
|
202
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* DOD-M15-STEP6-REPLAY-1 — A VALID SIGNATURE IS NOT A FRESH ONE.
|
|
313
|
+
*
|
|
314
|
+
* The TBS covers `nodeId ‖ agent pubkey ‖ nonce ‖ timestamp`, and until this check the
|
|
315
|
+
* client verified the signature over that tuple and looked at **neither** the timestamp nor
|
|
316
|
+
* the nonce. So **any party that once obtained a valid tuple for this agent could replay it
|
|
317
|
+
* indefinitely.**
|
|
318
|
+
*
|
|
319
|
+
* ─── WHY THE NONCE CANNOT CARRY THE FRESHNESS, WHICH IS THE PART THAT SURPRISED ME ──────
|
|
320
|
+
*
|
|
321
|
+
* The obvious answer is "check the nonce is the one we just sent". **We did not send it.**
|
|
322
|
+
* The nonce here is `challengeFrame["nonce"]` — the DIRECTORY's own, from step 1-2. The
|
|
323
|
+
* client contributes no fresh value to this exchange at all, so it holds nothing of its own
|
|
324
|
+
* to bind against. A replaying party simply replays the captured nonce in step 2 and the
|
|
325
|
+
* captured ack in step 5, and both halves agree.
|
|
326
|
+
*
|
|
327
|
+
* **That leaves the timestamp as the only freshness anchor**, and it is a real one: it is
|
|
328
|
+
* inside the signed bytes, so a replayer cannot move it without invalidating the signature
|
|
329
|
+
* they are replaying.
|
|
330
|
+
*
|
|
331
|
+
* ─── AFTER the signature, deliberately ─────────────────────────────────────────────────
|
|
332
|
+
*
|
|
333
|
+
* A stale proof and a forged one are different facts and must not collapse into one
|
|
334
|
+
* message. Checking freshness only once the signature verifies means `identity_proof_stale`
|
|
335
|
+
* always describes a GENUINE proof that is too old — never a forgery — which is what makes
|
|
336
|
+
* it diagnostic rather than another exit-point label.
|
|
337
|
+
*
|
|
338
|
+
* **The window, and what it does NOT fix.** ±5 minutes tolerates ordinary client/directory
|
|
339
|
+
* clock skew without a time-sync dependency. It BOUNDS replay to that window; it does not
|
|
340
|
+
* eliminate it, because with no client-chosen nonce there is nothing to make a proof
|
|
341
|
+
* single-use. Closing the remainder needs either a client contribution in the challenge or a
|
|
342
|
+
* seen-nonce cache — both wire or state changes, and neither is this line.
|
|
343
|
+
*/
|
|
344
|
+
const proofMs = Date.parse(timestamp);
|
|
345
|
+
const skewMs = Number.isFinite(proofMs) ? Math.abs(Date.now() - proofMs) : Number.NaN;
|
|
346
|
+
if (!Number.isFinite(skewMs) || skewMs > IDENTITY_PROOF_MAX_SKEW_MS) {
|
|
347
|
+
deps.logger.error("directory.auth.challenge.failed", {
|
|
348
|
+
directoryNodeId: nodeId,
|
|
349
|
+
reason: "identity_proof_stale",
|
|
350
|
+
timestamp,
|
|
351
|
+
skewMs: Number.isFinite(skewMs) ? Math.round(skewMs) : null,
|
|
352
|
+
maxSkewMs: IDENTITY_PROOF_MAX_SKEW_MS,
|
|
353
|
+
detail: "the directory's identity proof carries a valid signature over a timestamp outside the " +
|
|
354
|
+
"freshness window — either a replayed proof, or a clock that is badly out on one side.",
|
|
355
|
+
});
|
|
356
|
+
throw new Error("directory_challenge_failed: identity_proof_stale");
|
|
357
|
+
}
|
|
203
358
|
directoryNodeId = nodeId;
|
|
204
|
-
deps.logger.info("directory.auth.challenge.verified", { directoryNodeId });
|
|
359
|
+
deps.logger.info("directory.auth.challenge.verified", { directoryNodeId, skewMs: Math.round(skewMs) });
|
|
205
360
|
}
|
|
206
361
|
// DOD-NAT-REACHABILITY-1 (Phase 2): the directory's relay pool rides
|
|
207
362
|
// signaling_auth_ok so the standing receiver can reserve BEFORE any
|
|
@@ -217,6 +372,51 @@ export function createSignalingConnect(deps) {
|
|
|
217
372
|
deps.onRelayEndpoints(endpoints);
|
|
218
373
|
}
|
|
219
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* DOD-M15-RELAYSLOTS-1: the online token rides the same frame as the relay pool above, for
|
|
377
|
+
* the same reason — a standing receiver needs both before any session exists: WHERE to ask
|
|
378
|
+
* for a reservation slot, and the credential that lets it keep one.
|
|
379
|
+
*
|
|
380
|
+
* A field of the wrong type is dropped rather than failing the handshake, exactly as a
|
|
381
|
+
* malformed relay endpoint is. The consequence is bounded and visible (this agent gets no
|
|
382
|
+
* slot on any relay, and the relay names the reason when it refuses), whereas failing the
|
|
383
|
+
* handshake would also cost session offers, which arrive on this same stream.
|
|
384
|
+
*/
|
|
385
|
+
if (deps.onOnlineToken) {
|
|
386
|
+
const raw = ackFrame["online_token"];
|
|
387
|
+
const token = raw instanceof Uint8Array ? raw : Buffer.isBuffer(raw) ? new Uint8Array(raw) : undefined;
|
|
388
|
+
if (token && token.length > 0) {
|
|
389
|
+
deps.logger.info("directory.online_token.received", { directoryNodeId, bytes: token.length });
|
|
390
|
+
deps.onOnlineToken(token);
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
/**
|
|
394
|
+
* Review M1: the directory names WHICH absence, so this is no longer one label for three
|
|
395
|
+
* different problems. `not_registered_here` in particular is a payload fact, and reporting
|
|
396
|
+
* it as a generic "no token" sent the operator to check a directory connection that is
|
|
397
|
+
* working perfectly.
|
|
398
|
+
*/
|
|
399
|
+
const raw = ackFrame["online_token_absent_reason"];
|
|
400
|
+
const absentReason = raw === "not_registered_here" || raw === "issue_failed" ? raw : undefined;
|
|
401
|
+
deps.onOnlineTokenAbsent?.(absentReason);
|
|
402
|
+
deps.logger.warn("directory.online_token.absent", {
|
|
403
|
+
directoryNodeId,
|
|
404
|
+
agentPubkey: identity.pubkeyHex,
|
|
405
|
+
reason: absentReason ?? "unstated",
|
|
406
|
+
impact: absentReason === "not_registered_here"
|
|
407
|
+
? "this directory holds no agent profile for this key, so it issued no online token " +
|
|
408
|
+
"and no relay will grant this agent a reservation. The directory connection is FINE " +
|
|
409
|
+
"— either this agent registered against a different sovereign node and its profile " +
|
|
410
|
+
"has not replicated here yet, or it is not registered at all."
|
|
411
|
+
: absentReason === "issue_failed"
|
|
412
|
+
? "this directory could not issue an online token — its own lookup or signing failed. " +
|
|
413
|
+
"That is a fault on the directory, not on this agent or on any relay."
|
|
414
|
+
: "this directory issued no online token, so no relay will let this agent hold a " +
|
|
415
|
+
"circuit reservation and it will be reachable only over a direct connection. It " +
|
|
416
|
+
"stated no reason, which means it predates the token.",
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
}
|
|
220
420
|
// ── Step 7: announce our peer info so the directory can broker sessions ──
|
|
221
421
|
const peerInfo = encodeCbor({
|
|
222
422
|
type: "peer_info_announce",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signaling-connect.js","sourceRoot":"","sources":["../src/signaling-connect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signaling-connect.js","sourceRoot":"","sources":["../src/signaling-connect.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -425,6 +425,26 @@ export interface DaemonConfig {
|
|
|
425
425
|
* When absent (or registryPubkey absent), registry polling is disabled.
|
|
426
426
|
*/
|
|
427
427
|
registryPollScheduler?: import("@cello-protocol/transport").IManifestPollScheduler;
|
|
428
|
+
/**
|
|
429
|
+
* DOD-M15-STALEROSTER-1: scheduler for the background directory-reachability sweep.
|
|
430
|
+
*
|
|
431
|
+
* Injectable for the same reason the two above are — without it, "does the daemon actually START
|
|
432
|
+
* the sweep" is unobservable, and the revert test proved that gap was real: disabling the wiring
|
|
433
|
+
* entirely left the whole suite green while the reading went back to freezing on recovery.
|
|
434
|
+
*
|
|
435
|
+
* When absent the daemon builds its own slow randomized scheduler; the sweep is never off while a
|
|
436
|
+
* manifest provider exists.
|
|
437
|
+
*/
|
|
438
|
+
rosterSweepScheduler?: import("@cello-protocol/transport").IManifestPollScheduler;
|
|
439
|
+
/**
|
|
440
|
+
* DOD-M15-STALEROSTER-1: injectable fetch for the directory `/bootstrap` probes.
|
|
441
|
+
*
|
|
442
|
+
* Already threaded through `verifyStartupManifest` and `createConsortiumRouting`; it simply had
|
|
443
|
+
* no way in from the daemon's own config. Without it, "does the background sweep use the PATIENT
|
|
444
|
+
* probe budget" is unobservable at the wiring level — and a wiring-level blind spot is exactly
|
|
445
|
+
* what let the whole sweep be deleted with the suite still green. Defaults to global fetch.
|
|
446
|
+
*/
|
|
447
|
+
fetchFn?: typeof fetch;
|
|
428
448
|
}
|
|
429
449
|
/**
|
|
430
450
|
* Maximum number of concurrent session nodes per daemon.
|
|
@@ -445,7 +465,27 @@ export declare const MAX_SESSION_NODES = 32;
|
|
|
445
465
|
* (non-interrupted) close path produces this today.
|
|
446
466
|
*/
|
|
447
467
|
export type SessionStatus = "active" | "sealed" | "interrupted" | "seal_interrupted_pending" | "abandoned";
|
|
468
|
+
import type { ContentEncryptionReason } from "./content-encryption-status.js";
|
|
448
469
|
export interface SessionRecord {
|
|
470
|
+
/**
|
|
471
|
+
* DOD-M15-REFUSED-INBOUND-SILENT-1 — whether this session's content hashes are salted.
|
|
472
|
+
*
|
|
473
|
+
* Deliberately a status field and not an alert: an unsalted session is exactly as verifiable as
|
|
474
|
+
* every session shipped before salting existed, so nothing is wrong and there is nothing to
|
|
475
|
+
* interrupt anyone with. It exists so an operator can tell *unsalted because this build predates
|
|
476
|
+
* the feature* from *unsalted because adoption was refused* — only the second says anything about
|
|
477
|
+
* their setup. Absent on records that did not come from a listing surface.
|
|
478
|
+
*/
|
|
479
|
+
content_hashes_salted?: boolean;
|
|
480
|
+
/**
|
|
481
|
+
* 006-CRYPTO — whether CELLO's OWN encryption is protecting this session's message bodies, and
|
|
482
|
+
* why not when it is not. `false` in every build until `007-CRYPTO` ships the key exchange.
|
|
483
|
+
*
|
|
484
|
+
* Separate from `content_hashes_salted`: the salt stops a relay CONFIRMING a guess at a stored
|
|
485
|
+
* hash, this stops it READING the message. Absent on records that did not come from a listing.
|
|
486
|
+
*/
|
|
487
|
+
content_encrypted?: boolean;
|
|
488
|
+
content_encryption_reason?: ContentEncryptionReason;
|
|
449
489
|
session_id: string;
|
|
450
490
|
/**
|
|
451
491
|
* The STABLE key this row is scoped by. Every `sessions` query joins on this, never on
|
|
@@ -511,6 +551,27 @@ export interface InterruptedSessionInfo {
|
|
|
511
551
|
* is/was interrupted.
|
|
512
552
|
*/
|
|
513
553
|
export interface SessionListEntry {
|
|
554
|
+
/**
|
|
555
|
+
* DOD-M15-REFUSED-INBOUND-SILENT-1 — present ONLY when this session's content hashes are NOT
|
|
556
|
+
* salted, so it stays readable rather than becoming a field on every row that everyone skips.
|
|
557
|
+
*
|
|
558
|
+
* Its absence is the healthy, ordinary case. Its presence does not mean anything is wrong — an
|
|
559
|
+
* unsalted session is exactly as verifiable as every session shipped before salting existed — it
|
|
560
|
+
* means the operator can tell *unsalted because this build predates the feature* from *unsalted
|
|
561
|
+
* because adoption was refused*, and only the second says anything about their setup.
|
|
562
|
+
*/
|
|
563
|
+
contentHashesSalted?: false;
|
|
564
|
+
/**
|
|
565
|
+
* 006-CRYPTO — present ONLY when CELLO is not encrypting this session's message bodies itself.
|
|
566
|
+
*
|
|
567
|
+
* Its absence will be the healthy case once `007-CRYPTO` lands; today it is present on every
|
|
568
|
+
* session, and that is the truth about this build rather than a fault in the session. It is here
|
|
569
|
+
* so no reader has to infer the state from silence — the failure this whole line exists to end
|
|
570
|
+
* was a key agreement that had tests, a header claiming forward secrecy, and no caller.
|
|
571
|
+
*/
|
|
572
|
+
contentEncrypted?: false;
|
|
573
|
+
/** What that means for the operator. Never a bare code — a bare code is not an affordance. */
|
|
574
|
+
contentEncryptionGuidance?: string;
|
|
514
575
|
sessionId: string;
|
|
515
576
|
agentName: string;
|
|
516
577
|
counterpartyPubkey: string;
|
|
@@ -545,6 +606,20 @@ export interface SessionListEntry {
|
|
|
545
606
|
* has a name, so an unnamed closed one is a hint it did not.
|
|
546
607
|
*/
|
|
547
608
|
sessionName: string | null;
|
|
609
|
+
/**
|
|
610
|
+
* Whether this session's message hashes are salted — `DOD-M15-SEALWIRE-1` bullet 6.
|
|
611
|
+
*
|
|
612
|
+
* `false` is not a fault. It means this conversation hashes the way every build before the salt
|
|
613
|
+
* existed, which is exactly as verifiable; what it loses is that a relay holding the hashes could
|
|
614
|
+
* confirm a guess at a short message in this conversation. The common cause is a counterparty who
|
|
615
|
+
* was offline or on an older build when the session opened, and it is permanent for the session
|
|
616
|
+
* either way — the agreement runs at open, before anything is hashed.
|
|
617
|
+
*
|
|
618
|
+
* ⚠️ REQUIRED, NOT OPTIONAL. An absent field would be indistinguishable from `false`, so an older
|
|
619
|
+
* daemon and an unprotected session would read the same — the exact collapse Decision #15 spends a
|
|
620
|
+
* whole wire discriminator preventing. A security property must never be inferable from a gap.
|
|
621
|
+
*/
|
|
622
|
+
contentSalted: boolean;
|
|
548
623
|
}
|
|
549
624
|
/**
|
|
550
625
|
* Result of a session listing (cello_sessions / the daemon-wide `list_sessions`). `sessions`
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgFH,gCAAgC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,uBAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgFH,gCAAgC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,uBAAgC,CAAC;AA8Z7E,6BAA6B;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAwMpC,sBAAsB;AAEtB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,yBAAyB,EAAE,2BAA2B;IACtD,yBAAyB,EAAE,2BAA2B;IACtD,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,6BAA6B,EAAE,+BAA+B;IAC9D,8BAA8B,EAAE,gCAAgC;IAChE,oBAAoB,EAAE,sBAAsB;IAC5C,4BAA4B,EAAE,8BAA8B;IAC5D,6BAA6B,EAAE,+BAA+B;CACtD,CAAC"}
|
package/dist/vocabulary.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,oGAAoG;AACpG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAyExD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAI3C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAsB,CAAC;AAEzE,+FAA+F;AAC/F,wBAAgB,cAAc,IAAI,WAAW,CAAC,MAAM,CAAC,CAMpD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAc3C,CAAC;AASF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAW/C,CAAC;
|
|
1
|
+
{"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,oGAAoG;AACpG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAyExD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAI3C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAsB,CAAC;AAEzE,+FAA+F;AAC/F,wBAAgB,cAAc,IAAI,WAAW,CAAC,MAAM,CAAC,CAMpD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAc3C,CAAC;AASF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAW/C,CAAC;AAwCF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED,qGAAqG;AACrG,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC;AAmB1C;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAGjF"}
|
package/dist/vocabulary.js
CHANGED
|
@@ -232,6 +232,16 @@ const CALL_FORMS = [
|
|
|
232
232
|
re: /cello_contact_set_moniker\s*\{\s*pubkey:\s*"([^"]*)",\s*moniker:\s*"([^"]*)"\s*\}/g,
|
|
233
233
|
cli: (m) => `cello contact ${m[1]} set-moniker "${m[2]}"`,
|
|
234
234
|
},
|
|
235
|
+
{
|
|
236
|
+
// DOD-M15-DIVERGE-1 (review LOW-8) — the object form does not survive translation on its own.
|
|
237
|
+
// `CLI_BY_MCP` rewrites the VERB, so a CLI operator was handed
|
|
238
|
+
// `cello close-session <id> { force: true }`, and the real flag is `--force`. A guidance string
|
|
239
|
+
// that renders to an untypeable command is the failure `toCliGuidance` exists to prevent, and
|
|
240
|
+
// it was already reachable from two other refusals before this one duplicated it — so the fix
|
|
241
|
+
// belongs here, where it corrects all three at once, rather than in any single branch's prose.
|
|
242
|
+
re: /cello_close_session\s+(\S+)\s*\{\s*force:\s*true\s*\}/g,
|
|
243
|
+
cli: (m) => `cello close-session ${m[1]} --force`,
|
|
244
|
+
},
|
|
235
245
|
];
|
|
236
246
|
/**
|
|
237
247
|
* Rewrite MCP tool names in a guidance string into the CLI verbs an operator would type.
|
package/dist/vocabulary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,SAAS;IACT,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE;IAC5C,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE;IACtD,EAAE,GAAG,EAAE,yBAAyB,EAAE,GAAG,EAAE,yBAAyB,EAAE;IAClE,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAClD,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,wBAAwB,EAAE;IAChE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE;IAC5C,YAAY;IACZ,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,wBAAwB,EAAE;IAChE,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAC1D,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAC1D,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,oBAAoB,EAAE;IACxD,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE;IAC9C,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE;IACxC,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE;IAC9C,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE;IAC1C,sBAAsB;IACtB,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAChD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;IACpD,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC5D,WAAW;IACX,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAChD,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,4BAA4B,EAAE;IAC/D,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE,+BAA+B,EAAE;IACrE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACzE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACzE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,EAAE,oCAAoC,EAAE;IAC/E,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC7E,iFAAiF;IACjF,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,EAAE,0BAA0B,EAAE;IACpE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,EAAE,0BAA0B,EAAE;IACpE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,EAAE,2BAA2B,EAAE;IACtE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,EAAE,0BAA0B,EAAE;IACpE,EAAE,GAAG,EAAE,4BAA4B,EAAE,GAAG,EAAE,4BAA4B,EAAE;IACxE,EAAE,GAAG,EAAE,6BAA6B,EAAE,GAAG,EAAE,6BAA6B,EAAE;IAC1E,EAAE,GAAG,EAAE,4BAA4B,EAAE,GAAG,EAAE,4BAA4B,EAAE;IACxE,0FAA0F;IAC1F,EAAE,GAAG,EAAE,gCAAgC,EAAE,GAAG,EAAE,gCAAgC,EAAE;IAChF,EAAE,GAAG,EAAE,kCAAkC,EAAE,GAAG,EAAE,kCAAkC,EAAE;IACpF,EAAE,GAAG,EAAE,kCAAkC,EAAE,GAAG,EAAE,kCAAkC,EAAE;IACpF,8FAA8F;IAC9F,2FAA2F;IAC3F,8FAA8F;IAC9F,qFAAqF;IACrF,+EAA+E;IAC/E,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE;IACtD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;IACpD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;IACpD,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAClD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;IACpD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;IACpD,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAChD,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAChD,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAChD,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAClD,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAClD,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE;IACtD,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAClD,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAChD,QAAQ;IACR,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE;IAC9C,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,oBAAoB,EAAE;IACxD,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,oBAAoB,EAAE;IACxD,6FAA6F;IAC7F,+FAA+F;IAC/F,gGAAgG;IAChG,4DAA4D;IAC5D,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE;IACtD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;IACpD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;IACpD,gDAAgD;IAChD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE;CACrD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,cAAc;IACd,eAAe;IACf,2BAA2B;CAC5B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB,CAAC,eAAe,CAAC,CAAC;AAEzE,+FAA+F;AAC/F,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,GAAG,CAAC;QACb,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACvC,GAAG,cAAc;QACjB,GAAG,oBAAoB;KACxB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,+FAA+F;IAC/F,gGAAgG;IAChG,uBAAuB;IACvB,+FAA+F;IAC/F,2FAA2F;IAC3F,qFAAqF;IACrF,oBAAoB;IACpB,kBAAkB;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAE1G;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,IAAI,MAAM,CAAC,eAAe,KAAK,sCAAsC,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC;AACrG,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,6FAA6F;IAC7F,6FAA6F;IAC7F,uBAAuB;IACvB,mBAAmB;IACnB,qBAAqB;IACrB,2BAA2B;IAC3B,sBAAsB;IACtB,0BAA0B;IAC1B,mBAAmB;IACnB,oBAAoB;CACrB,CAAC;AAEF,sGAAsG;AACtG,MAAM,UAAU,GAAmC,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAC7E,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CACtC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,GAAuE;IACrF;QACE,EAAE,EAAE,oFAAoF;QACxF,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG;KAC1D;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;QACrC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAkC,CAAC,CAAC,CAAC;IAC3G,CAAC;IACD,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;QACtC,sFAAsF;QACtF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,YAAY,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAKD;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,OAAsB;IACtE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;YAC5B,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,GAAY,CAAC,CAAC;QACtB,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnD,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,8FAA8F;IAC9F,6FAA6F;IAC7F,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,74 @@
|
|
|
20
20
|
* function, so they agree with each other whether or not either agrees with the wire. It took two
|
|
21
21
|
* real daemons.
|
|
22
22
|
*/
|
|
23
|
+
/**
|
|
24
|
+
* ─── THE ALGORITHM TRAVELS WITH THE HASH — `DOD-M15-SEALWIRE-1` part B1 ───────────────────────
|
|
25
|
+
*
|
|
26
|
+
* A salted content hash and an unsalted one are both 32 bytes in the same wire field. Nothing in
|
|
27
|
+
* the bytes distinguishes them, so a receiver handed one and told nothing has no way to know which
|
|
28
|
+
* it is holding — and gets `content_hash_mismatch` on every frame, which is the exact
|
|
29
|
+
* silent-discard failure this module's header says cost two real daemons.
|
|
30
|
+
*
|
|
31
|
+
* Hence a NAME on the wire, and three cases that must stay apart (Decisions Carried #15):
|
|
32
|
+
*
|
|
33
|
+
* ABSENT → `sha256`. A peer that predates the field. We know what it computed.
|
|
34
|
+
* NAMED and KNOWN → verify under that name.
|
|
35
|
+
* NAMED and UNKNOWN → **refuse.** Not a legacy peer — an unreadable one. There is no correct hash
|
|
36
|
+
* to compare against, and falling back to `sha256` would compare two
|
|
37
|
+
* unrelated values and report a TAMPER for a version skew.
|
|
38
|
+
*
|
|
39
|
+
* ⚠️ RECEIVER FIRST — the ROLLOUT ORDER, which is still the rule. Every peer must be able to
|
|
40
|
+
* understand a salted frame before any peer sends one. Reversed, the first upgraded sender breaks
|
|
41
|
+
* every conversation it has with a peer that has not upgraded.
|
|
42
|
+
*
|
|
43
|
+
* > **⛔ THIS PARAGRAPH USED TO END "`no sender salts yet`", AND THAT IS NO LONGER TRUE.** It was
|
|
44
|
+
* > written during part B1, when the receiver had been taught to read the name and nothing produced
|
|
45
|
+
* > a salted one. **B2b-2 flipped it: a session holding an agreed salt now hashes under
|
|
46
|
+
* > `HMAC_SALT_V1`.** The sentence is rewritten rather than deleted because it is exactly the shape
|
|
47
|
+
* > `DOD-M15-CLAIM-COMMENTS-1` exists to catch — a comment asserting a property the code no longer
|
|
48
|
+
* > has — and deleting it would remove the evidence that someone reasoned from it.
|
|
49
|
+
* >
|
|
50
|
+
* > It was still being read as current on 2026-08-24: a spine test's park deposit declared `sha256`
|
|
51
|
+
* > on this comment's authority, the recipient recomputed under the name it was given, and the
|
|
52
|
+
* > mismatch surfaced as `content_hash_mismatch` — **a tamper verdict on a message nobody touched**,
|
|
53
|
+
* > which is precisely the failure the ALGORITHM-TRAVELS-WITH-THE-HASH rule above exists to prevent.
|
|
54
|
+
*/
|
|
55
|
+
export declare const CONTENT_HASH_ALGS: {
|
|
56
|
+
/** `sha256(0x00 ‖ content)` — what every build before the salt computes, and the absent-field default. */
|
|
57
|
+
readonly SHA256: "sha256";
|
|
58
|
+
/** `hmac-sha256(salt, 0x00 ‖ content)` — Decision #9. HMAC, never `sha256(salt ‖ content)`. */
|
|
59
|
+
readonly HMAC_SALT_V1: "hmac-sha256-salt-v1";
|
|
60
|
+
};
|
|
61
|
+
export type ContentHashAlg = (typeof CONTENT_HASH_ALGS)[keyof typeof CONTENT_HASH_ALGS];
|
|
62
|
+
/** Whether this daemon can reproduce a hash under the given name. */
|
|
63
|
+
export declare function isKnownContentHashAlg(alg: string): alg is ContentHashAlg;
|
|
64
|
+
/**
|
|
65
|
+
* What a frame says it used, or a refusal naming the value.
|
|
66
|
+
*
|
|
67
|
+
* ABSENT is deliberately `undefined`/`null` ONLY — not "falsy". An empty string is a peer that sent
|
|
68
|
+
* a name we cannot read, not a peer that sent no name, and folding the two together would verify a
|
|
69
|
+
* malformed frame as legacy instead of telling its sender the frame is unreadable.
|
|
70
|
+
*/
|
|
71
|
+
export declare function resolveContentHashAlg(raw: string | null | undefined): {
|
|
72
|
+
ok: true;
|
|
73
|
+
alg: ContentHashAlg;
|
|
74
|
+
} | {
|
|
75
|
+
ok: false;
|
|
76
|
+
value: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* The content hash under a named algorithm.
|
|
80
|
+
*
|
|
81
|
+
* THROWS rather than substituting, in both failure cases, and that is the point of the function. A
|
|
82
|
+
* 32-byte value returned for an unknown algorithm — or an unsalted one returned because the salt was
|
|
83
|
+
* missing — flows straight into the cross-check and surfaces as `content_hash_mismatch`: a TAMPER
|
|
84
|
+
* REPORT for what is really a version skew or a missing salt. The caller must handle those as what
|
|
85
|
+
* they are.
|
|
86
|
+
*/
|
|
87
|
+
export declare function contentHashFor(content: Uint8Array, opts: {
|
|
88
|
+
alg: string;
|
|
89
|
+
salt: Uint8Array | null;
|
|
90
|
+
}): Uint8Array;
|
|
23
91
|
/** The hash a sender puts on the wire and the receiver recomputes to authenticate it. */
|
|
24
92
|
export declare function wireContentHash(content: Uint8Array): Uint8Array;
|
|
25
93
|
/** The same value, hex — what the Merkle leaf records. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-content-hash.d.ts","sourceRoot":"","sources":["../src/wire-content-hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"wire-content-hash.d.ts","sourceRoot":"","sources":["../src/wire-content-hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,iBAAiB;IAC5B,0GAA0G;;IAE1G,+FAA+F;;CAEvF,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAIxF,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAMlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAC7C,UAAU,CAiBZ;AAQD,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAE/D;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAE9D"}
|