@cello-protocol/crypto 0.0.6 → 0.0.8

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.
@@ -0,0 +1,32 @@
1
+ /**
2
+ * M7-MANIFEST-001 — Consortium officer root key constants.
3
+ *
4
+ * These Ed25519 public keys are the root of trust for consortium manifest
5
+ * threshold signatures. A manifest is valid only if at least CONSORTIUM_THRESHOLD
6
+ * unique officer keys have signed it.
7
+ *
8
+ * Production keys are placeholder zeros until the initial key ceremony is
9
+ * conducted. Test keys are derived from deterministic seeds defined in
10
+ * manifest-test-fixture.ts (AC-011).
11
+ *
12
+ * Crypto reference: RFC 8032 (Ed25519).
13
+ */
14
+ /**
15
+ * Production consortium officer root keys.
16
+ *
17
+ * Pre-ceremony placeholder: all zeros. These will be replaced with real
18
+ * Ed25519 public keys after the initial officer key ceremony is conducted.
19
+ * Until then, no production manifest can pass verification — this is by design.
20
+ */
21
+ export declare const CONSORTIUM_ROOT_KEYS: readonly [string, string, string, string, string];
22
+ /** Minimum number of valid officer signatures required for manifest acceptance. */
23
+ export declare const CONSORTIUM_THRESHOLD = 3;
24
+ /**
25
+ * Test consortium officer root keys — real Ed25519 public keys derived from
26
+ * deterministic fixed seeds in manifest-test-fixture.ts. Completely disjoint
27
+ * from production keys (SI-003).
28
+ */
29
+ export declare const TEST_CONSORTIUM_ROOT_KEYS: readonly [string, string, string, string, string];
30
+ /** Test threshold — same as production for realistic test coverage. */
31
+ export declare const TEST_CONSORTIUM_THRESHOLD = 3;
32
+ //# sourceMappingURL=consortium-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consortium-keys.d.ts","sourceRoot":"","sources":["../src/consortium-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAMzE,CAAC;AAEX,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAItC;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAM9E,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,IAAI,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * M7-MANIFEST-001 — Consortium officer root key constants.
3
+ *
4
+ * These Ed25519 public keys are the root of trust for consortium manifest
5
+ * threshold signatures. A manifest is valid only if at least CONSORTIUM_THRESHOLD
6
+ * unique officer keys have signed it.
7
+ *
8
+ * Production keys are placeholder zeros until the initial key ceremony is
9
+ * conducted. Test keys are derived from deterministic seeds defined in
10
+ * manifest-test-fixture.ts (AC-011).
11
+ *
12
+ * Crypto reference: RFC 8032 (Ed25519).
13
+ */
14
+ import { ed25519 } from "@noble/curves/ed25519.js";
15
+ import { TEST_OFFICER_SEEDS } from "./manifest-test-fixture.js";
16
+ // ─── Production constants ────────────────────────────────────────────────────
17
+ /**
18
+ * Production consortium officer root keys.
19
+ *
20
+ * Pre-ceremony placeholder: all zeros. These will be replaced with real
21
+ * Ed25519 public keys after the initial officer key ceremony is conducted.
22
+ * Until then, no production manifest can pass verification — this is by design.
23
+ */
24
+ export const CONSORTIUM_ROOT_KEYS = [
25
+ "0".repeat(64),
26
+ "0".repeat(64),
27
+ "0".repeat(64),
28
+ "0".repeat(64),
29
+ "0".repeat(64),
30
+ ];
31
+ /** Minimum number of valid officer signatures required for manifest acceptance. */
32
+ export const CONSORTIUM_THRESHOLD = 3;
33
+ // ─── Test constants ──────────────────────────────────────────────────────────
34
+ /**
35
+ * Test consortium officer root keys — real Ed25519 public keys derived from
36
+ * deterministic fixed seeds in manifest-test-fixture.ts. Completely disjoint
37
+ * from production keys (SI-003).
38
+ */
39
+ export const TEST_CONSORTIUM_ROOT_KEYS = [
40
+ Buffer.from(ed25519.getPublicKey(TEST_OFFICER_SEEDS[0])).toString("hex"),
41
+ Buffer.from(ed25519.getPublicKey(TEST_OFFICER_SEEDS[1])).toString("hex"),
42
+ Buffer.from(ed25519.getPublicKey(TEST_OFFICER_SEEDS[2])).toString("hex"),
43
+ Buffer.from(ed25519.getPublicKey(TEST_OFFICER_SEEDS[3])).toString("hex"),
44
+ Buffer.from(ed25519.getPublicKey(TEST_OFFICER_SEEDS[4])).toString("hex"),
45
+ ];
46
+ /** Test threshold — same as production for realistic test coverage. */
47
+ export const TEST_CONSORTIUM_THRESHOLD = 3;
48
+ //# sourceMappingURL=consortium-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consortium-keys.js","sourceRoot":"","sources":["../src/consortium-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsD;IACrF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACd,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACd,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACd,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACd,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;CACN,CAAC;AAEX,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsD;IAC1F,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;CAChE,CAAC;AAEX,uEAAuE;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"frost-threshold-signer.d.ts","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAE1B,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgBzE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,WAAW,GACf,IAAI,CAGN;AA+BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,UAAU,EACvB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,eAAe,CAAC,CAwD1B;AAID,qBAAa,oBAAqB,YAAW,gBAAgB;;gBAa/C,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,UAAU;IAgBvE;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAU9B;;;OAGG;IACH,eAAe,CACb,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO;IASV;;;;;OAKG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,YAAY,EACrB,UAAU,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GACzD,OAAO,CAAC,kBAAkB,CAAC;CAiP/B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO,CAOT;AAID;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACpD,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,YAAY,EACtB,WAAW,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GAC1D,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAO9B,eAAe,CACb,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,GACrB,OAAO;CAIX;AAGD,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"frost-threshold-signer.d.ts","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAE1B,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgBzE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,WAAW,GACf,IAAI,CAGN;AA+BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,UAAU,EACvB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,eAAe,CAAC,CAwD1B;AAID,qBAAa,oBAAqB,YAAW,gBAAgB;;gBAa/C,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,UAAU;IAgBvE;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAU9B;;;OAGG;IACH,eAAe,CACb,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO;IASV;;;;;OAKG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,YAAY,EACrB,UAAU,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GACzD,OAAO,CAAC,kBAAkB,CAAC;CAmQ/B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO,CAOT;AAID;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACpD,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,YAAY,EACtB,WAAW,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GAC1D,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAO9B,eAAe,CACb,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,GACrB,OAAO;CAIX;AAGD,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,CAAC"}
@@ -263,6 +263,7 @@ export class FrostThresholdSigner {
263
263
  // Frame message for domain separation: context\0tbs
264
264
  const msg = frameMessage(context, tbs);
265
265
  const { pub } = localShare;
266
+ process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: pub.signers=${JSON.stringify(pub.signers)} pub.commitments.length=${pub.commitments?.length}\n`);
266
267
  const clientId = ed25519_FROST.Identifier.derive(`client:${toHex(this.#agentPubkey)}`);
267
268
  // Ceremony-level timeout: a deadline across all retry attempts
268
269
  const ceremonyDeadline = Date.now() + ceremonyTimeoutMs;
@@ -407,7 +408,23 @@ export class FrostThresholdSigner {
407
408
  // All selected stubs provided valid partial sigs. Compute client's partial sig.
408
409
  let clientSig;
409
410
  try {
410
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: calling client signShare attempt=${attempt + 1}\n`);
411
+ // Log everything before signShare so a throw gives full context
412
+ const pubRec = pub;
413
+ const secretRec = localShare.secret;
414
+ process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: PRE-signShare attempt=${attempt + 1}\n`);
415
+ process.stderr.write(`[CLIENT-DEBUG] pub.signers=${JSON.stringify(pubRec.signers)}\n`);
416
+ process.stderr.write(`[CLIENT-DEBUG] pub.commitments.length=${Array.isArray(pubRec.commitments) ? pubRec.commitments.length : "NOT_ARRAY"}\n`);
417
+ process.stderr.write(`[CLIENT-DEBUG] pub.commitments[0] type=${Array.isArray(pubRec.commitments) ? typeof pubRec.commitments[0] : "N/A"} isUint8Array=${Array.isArray(pubRec.commitments) ? pubRec.commitments[0] instanceof Uint8Array : "N/A"}\n`);
418
+ process.stderr.write(`[CLIENT-DEBUG] secret.identifier=${String(secretRec.identifier)} type=${typeof secretRec.identifier}\n`);
419
+ process.stderr.write(`[CLIENT-DEBUG] secret.signingShare type=${typeof secretRec.signingShare} isUint8Array=${secretRec.signingShare instanceof Uint8Array}\n`);
420
+ process.stderr.write(`[CLIENT-DEBUG] localNonce.nonces type=${typeof localNonce.nonces} keys=${typeof localNonce.nonces === "object" && localNonce.nonces ? Object.keys(localNonce.nonces).join(",") : "N/A"}\n`);
421
+ process.stderr.write(`[CLIENT-DEBUG] commitmentList.length=${commitmentList.length}\n`);
422
+ commitmentList.forEach((c, i) => {
423
+ const cr = c;
424
+ process.stderr.write(`[CLIENT-DEBUG] commitmentList[${i}]: identifier=${String(cr.identifier)} hiding.isUint8Array=${cr.hiding instanceof Uint8Array} binding.isUint8Array=${cr.binding instanceof Uint8Array}\n`);
425
+ });
426
+ process.stderr.write(`[CLIENT-DEBUG] msg.length=${msg.length} isUint8Array=${msg instanceof Uint8Array}\n`);
427
+ process.stderr.write(`[CLIENT-DEBUG] clientId type=${typeof clientId} value=${String(clientId).slice(0, 20)}\n`);
411
428
  clientSig = ed25519_FROST.signShare(localShare.secret, pub, localNonce.nonces, commitmentList, msg);
412
429
  process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: client signShare OK sigLength=${clientSig.length}\n`);
413
430
  sigShares[String(clientId)] = clientSig;
@@ -1 +1 @@
1
- {"version":3,"file":"frost-threshold-signer.js","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frost-threshold-signer.js","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,4 +11,9 @@ export { verifyFrostSignature } from "./frost/frost-threshold-signer.js";
11
11
  export { ed25519_FROST } from "@noble/curves/ed25519.js";
12
12
  export { buildCheckpointTbs, computeCheckpointHash } from "./checkpoint.js";
13
13
  export { buildRelayRegistrationTbs, verifyRelayRegistrationSignature } from "./relay-registration.js";
14
+ export type { ManifestVerifyResult, ManifestVerifyDiagnostics, ManifestVerifySkipReason, ManifestVerifySkippedEntry, ConsortiumManifestInput } from "./manifest.js";
15
+ export { canonicalManifestBody, verifyManifest } from "./manifest.js";
16
+ export { CONSORTIUM_ROOT_KEYS, CONSORTIUM_THRESHOLD, TEST_CONSORTIUM_ROOT_KEYS, TEST_CONSORTIUM_THRESHOLD, } from "./consortium-keys.js";
17
+ export type { TestConsortiumNode, MakeTestManifestOpts } from "./manifest-test-fixture.js";
18
+ export { makeTestManifest } from "./manifest-test-fixture.js";
14
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7F,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3F,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG5E,OAAO,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7F,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3F,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG5E,OAAO,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAGtG,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACpK,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -11,4 +11,7 @@ export { ed25519_FROST } from "@noble/curves/ed25519.js";
11
11
  export { buildCheckpointTbs, computeCheckpointHash } from "./checkpoint.js";
12
12
  // FEDERATION-003: relay registration TBS and signature verification
13
13
  export { buildRelayRegistrationTbs, verifyRelayRegistrationSignature } from "./relay-registration.js";
14
+ export { canonicalManifestBody, verifyManifest } from "./manifest.js";
15
+ export { CONSORTIUM_ROOT_KEYS, CONSORTIUM_THRESHOLD, TEST_CONSORTIUM_ROOT_KEYS, TEST_CONSORTIUM_THRESHOLD, } from "./consortium-keys.js";
16
+ export { makeTestManifest } from "./manifest-test-fixture.js";
14
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAU3F,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,iGAAiG;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,8EAA8E;AAC9E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,oEAAoE;AACpE,OAAO,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAU3F,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,iGAAiG;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,8EAA8E;AAC9E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,oEAAoE;AACpE,OAAO,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAItG,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * M7-MANIFEST-001 — Test fixture for consortium manifest creation.
3
+ *
4
+ * Provides makeTestManifest() which creates a fully-signed ConsortiumManifest
5
+ * using deterministic test officer keys. The manifest is signed with officer
6
+ * indices 0, 1, 2 (meeting the threshold of 3).
7
+ *
8
+ * The private keys (TEST_OFFICER_SEEDS) are defined here and NOT exported from
9
+ * the package index (AC-011). They are only available via direct import of this
10
+ * file for internal test use.
11
+ *
12
+ * Crypto reference: RFC 8032 (Ed25519).
13
+ */
14
+ import type { ConsortiumManifestInput } from "./manifest.js";
15
+ /**
16
+ * Deterministic test officer seeds (private keys). Used to derive
17
+ * TEST_CONSORTIUM_ROOT_KEYS and to sign test manifests.
18
+ *
19
+ * NOT exported from the package index — only from this file for internal use.
20
+ */
21
+ export declare const TEST_OFFICER_SEEDS: readonly [Uint8Array, Uint8Array, Uint8Array, Uint8Array, Uint8Array];
22
+ /** Node entry for makeTestManifest input. Structurally matches ConsortiumNode from protocol-types. */
23
+ export type TestConsortiumNode = {
24
+ nodeId: string;
25
+ pubkey: string;
26
+ region: string;
27
+ provider: "aws" | "gcp" | "azure";
28
+ endpoint: string;
29
+ };
30
+ export interface MakeTestManifestOpts {
31
+ version?: number;
32
+ notBefore?: string;
33
+ expires?: string;
34
+ }
35
+ /**
36
+ * Create a test ConsortiumManifest signed by officers 0, 1, 2.
37
+ *
38
+ * Pseudocode:
39
+ * 1. Build the manifest body with provided nodes and optional overrides.
40
+ * 2. Compute canonical body bytes via canonicalManifestBody.
41
+ * 3. Sign with TEST_OFFICER_SEEDS[0], [1], [2] using Ed25519 (RFC 8032).
42
+ * 4. Return the complete manifest with 3 valid signatures.
43
+ */
44
+ export declare function makeTestManifest(nodes: TestConsortiumNode[], opts?: MakeTestManifestOpts): ConsortiumManifestInput;
45
+ //# sourceMappingURL=manifest-test-fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-test-fixture.d.ts","sourceRoot":"","sources":["../src/manifest-test-fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAM3F,CAAC;AAEX,sGAAsG;AACtG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,kBAAkB,EAAE,EAC3B,IAAI,CAAC,EAAE,oBAAoB,GAC1B,uBAAuB,CAoBzB"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * M7-MANIFEST-001 — Test fixture for consortium manifest creation.
3
+ *
4
+ * Provides makeTestManifest() which creates a fully-signed ConsortiumManifest
5
+ * using deterministic test officer keys. The manifest is signed with officer
6
+ * indices 0, 1, 2 (meeting the threshold of 3).
7
+ *
8
+ * The private keys (TEST_OFFICER_SEEDS) are defined here and NOT exported from
9
+ * the package index (AC-011). They are only available via direct import of this
10
+ * file for internal test use.
11
+ *
12
+ * Crypto reference: RFC 8032 (Ed25519).
13
+ */
14
+ import { ed25519 } from "@noble/curves/ed25519.js";
15
+ import { canonicalManifestBody } from "./manifest.js";
16
+ /**
17
+ * Deterministic test officer seeds (private keys). Used to derive
18
+ * TEST_CONSORTIUM_ROOT_KEYS and to sign test manifests.
19
+ *
20
+ * NOT exported from the package index — only from this file for internal use.
21
+ */
22
+ export const TEST_OFFICER_SEEDS = [
23
+ new Uint8Array(32).fill(0x01),
24
+ new Uint8Array(32).fill(0x02),
25
+ new Uint8Array(32).fill(0x03),
26
+ new Uint8Array(32).fill(0x04),
27
+ new Uint8Array(32).fill(0x05),
28
+ ];
29
+ /**
30
+ * Create a test ConsortiumManifest signed by officers 0, 1, 2.
31
+ *
32
+ * Pseudocode:
33
+ * 1. Build the manifest body with provided nodes and optional overrides.
34
+ * 2. Compute canonical body bytes via canonicalManifestBody.
35
+ * 3. Sign with TEST_OFFICER_SEEDS[0], [1], [2] using Ed25519 (RFC 8032).
36
+ * 4. Return the complete manifest with 3 valid signatures.
37
+ */
38
+ export function makeTestManifest(nodes, opts) {
39
+ const manifest = {
40
+ version: opts?.version ?? 1,
41
+ not_before: opts?.notBefore ?? "2026-01-01T00:00:00Z",
42
+ expires: opts?.expires ?? "2027-01-01T00:00:00Z",
43
+ nodes: nodes,
44
+ signatures: [],
45
+ };
46
+ // Compute canonical body for signing
47
+ const body = canonicalManifestBody(manifest);
48
+ // Sign with officers 0, 1, 2 — meeting threshold of 3
49
+ const signatures = [0, 1, 2].map((idx) => ({
50
+ officerIndex: idx,
51
+ signature: Buffer.from(ed25519.sign(body, TEST_OFFICER_SEEDS[idx])).toString("hex"),
52
+ }));
53
+ manifest.signatures = signatures;
54
+ return manifest;
55
+ }
56
+ //# sourceMappingURL=manifest-test-fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-test-fixture.js","sourceRoot":"","sources":["../src/manifest-test-fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA0E;IACvG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACrB,CAAC;AAiBX;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA2B,EAC3B,IAA2B;IAE3B,MAAM,QAAQ,GAA4B;QACxC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC;QAC3B,UAAU,EAAE,IAAI,EAAE,SAAS,IAAI,sBAAsB;QACrD,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,sBAAsB;QAChD,KAAK,EAAE,KAA2C;QAClD,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,qCAAqC;IACrC,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAE7C,sDAAsD;IACtD,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzC,YAAY,EAAE,GAAG;QACjB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACpF,CAAC,CAAC,CAAC;IAEJ,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * M7-MANIFEST-001 — Consortium manifest verification.
3
+ *
4
+ * Provides canonical serialization and threshold signature verification for
5
+ * ConsortiumManifest instances. The verification logic:
6
+ *
7
+ * 1. Computes the canonical body bytes (all fields except `signatures`,
8
+ * object keys sorted lexicographically at every nesting level, no whitespace,
9
+ * UTF-8 encoded).
10
+ * 2. For each signature entry, verifies it against the officer key at the
11
+ * specified index.
12
+ * 3. Counts only unique valid officer indices — duplicates count once.
13
+ * 4. Returns ok: true if unique valid count >= threshold.
14
+ *
15
+ * Security properties:
16
+ * - Out-of-bounds officer indices are silently skipped (AC-008).
17
+ * - Malformed hex is caught gracefully, never throws (AC-009).
18
+ * - Duplicate officer indices count as 1 (SI-001).
19
+ * - Canonical serialization is insertion-order independent (SI-002).
20
+ *
21
+ * Crypto reference: RFC 8032 (Ed25519).
22
+ */
23
+ /**
24
+ * Structural type for ConsortiumManifest — compatible with
25
+ * @cello-protocol/protocol-types without creating a circular dependency
26
+ * (protocol-types depends on crypto).
27
+ */
28
+ export interface ConsortiumManifestInput {
29
+ version: number;
30
+ not_before: string;
31
+ expires: string;
32
+ nodes: readonly Record<string, unknown>[];
33
+ signatures: readonly {
34
+ officerIndex: number;
35
+ signature: string;
36
+ }[];
37
+ [key: string]: unknown;
38
+ }
39
+ export type ManifestVerifySkipReason = "out_of_bounds" | "duplicate" | "malformed_signature" | "malformed_key" | "verification_failed";
40
+ export interface ManifestVerifySkippedEntry {
41
+ index: number;
42
+ reason: ManifestVerifySkipReason;
43
+ error?: string;
44
+ }
45
+ export interface ManifestVerifyDiagnostics {
46
+ threshold: number;
47
+ validOfficers: number[];
48
+ skippedEntries: ManifestVerifySkippedEntry[];
49
+ }
50
+ export type ManifestVerifyResult = {
51
+ ok: true;
52
+ signerCount: number;
53
+ } | {
54
+ ok: false;
55
+ reason: "manifest_signature_invalid";
56
+ detail: string;
57
+ diagnostics: ManifestVerifyDiagnostics;
58
+ };
59
+ /**
60
+ * Produce the canonical byte representation of a manifest body for signing.
61
+ *
62
+ * Pseudocode (RFC 8032 — signing input):
63
+ * 1. Copy all fields from manifest EXCEPT `signatures`.
64
+ * 2. Sort object keys lexicographically at EVERY nesting level (recursive).
65
+ * 3. Serialize as JSON with no whitespace and no trailing newline.
66
+ * 4. Encode as UTF-8 bytes.
67
+ *
68
+ * The resulting bytes are the message that officers sign with Ed25519.
69
+ */
70
+ export declare function canonicalManifestBody(manifest: ConsortiumManifestInput): Uint8Array;
71
+ /**
72
+ * Verify a consortium manifest against a set of officer root keys.
73
+ *
74
+ * Pseudocode (RFC 8032 — Ed25519 verification):
75
+ * 1. Compute canonical body bytes via canonicalManifestBody.
76
+ * 2. For each signature entry in manifest.signatures:
77
+ * a. If officerIndex is out of bounds (< 0 or >= rootKeys.length), skip.
78
+ * b. Decode the hex signature to bytes. If malformed, skip.
79
+ * c. Decode the root key at officerIndex to bytes. If malformed, skip.
80
+ * d. Verify: ed25519.verify(signature, body, publicKey).
81
+ * e. If valid AND officerIndex not already in verified set, add it (SI-001).
82
+ * f. If valid BUT officerIndex already verified, mark as duplicate.
83
+ * 3. If |verified signers| >= threshold → { ok: true, signerCount }.
84
+ * 4. Otherwise → { ok: false, reason, detail }.
85
+ *
86
+ * This function NEVER throws. All error conditions produce a result value.
87
+ */
88
+ export declare function verifyManifest(manifest: ConsortiumManifestInput, rootKeys: readonly string[], threshold: number): ManifestVerifyResult;
89
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,UAAU,EAAE,SAAS;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,MAAM,wBAAwB,GAAG,eAAe,GAAG,WAAW,GAAG,qBAAqB,GAAG,eAAe,GAAG,qBAAqB,CAAC;AAEvI,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,wBAAwB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,0BAA0B,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,4BAA4B,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAIhH;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,UAAU,CAcnF;AAmBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,SAAS,EAAE,MAAM,GAChB,oBAAoB,CA8EtB"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * M7-MANIFEST-001 — Consortium manifest verification.
3
+ *
4
+ * Provides canonical serialization and threshold signature verification for
5
+ * ConsortiumManifest instances. The verification logic:
6
+ *
7
+ * 1. Computes the canonical body bytes (all fields except `signatures`,
8
+ * object keys sorted lexicographically at every nesting level, no whitespace,
9
+ * UTF-8 encoded).
10
+ * 2. For each signature entry, verifies it against the officer key at the
11
+ * specified index.
12
+ * 3. Counts only unique valid officer indices — duplicates count once.
13
+ * 4. Returns ok: true if unique valid count >= threshold.
14
+ *
15
+ * Security properties:
16
+ * - Out-of-bounds officer indices are silently skipped (AC-008).
17
+ * - Malformed hex is caught gracefully, never throws (AC-009).
18
+ * - Duplicate officer indices count as 1 (SI-001).
19
+ * - Canonical serialization is insertion-order independent (SI-002).
20
+ *
21
+ * Crypto reference: RFC 8032 (Ed25519).
22
+ */
23
+ import { ed25519 } from "@noble/curves/ed25519.js";
24
+ // ─── Canonical serialization ─────────────────────────────────────────────────
25
+ /**
26
+ * Produce the canonical byte representation of a manifest body for signing.
27
+ *
28
+ * Pseudocode (RFC 8032 — signing input):
29
+ * 1. Copy all fields from manifest EXCEPT `signatures`.
30
+ * 2. Sort object keys lexicographically at EVERY nesting level (recursive).
31
+ * 3. Serialize as JSON with no whitespace and no trailing newline.
32
+ * 4. Encode as UTF-8 bytes.
33
+ *
34
+ * The resulting bytes are the message that officers sign with Ed25519.
35
+ */
36
+ export function canonicalManifestBody(manifest) {
37
+ // Step 1: exclude signatures — build body object with all fields except signatures
38
+ const body = {};
39
+ for (const key of Object.keys(manifest)) {
40
+ if (key !== "signatures") {
41
+ body[key] = manifest[key];
42
+ }
43
+ }
44
+ // Step 2+3: sort keys recursively and serialize
45
+ const json = JSON.stringify(body, sortedReplacer);
46
+ // Step 4: UTF-8 encode
47
+ return new TextEncoder().encode(json);
48
+ }
49
+ /**
50
+ * JSON.stringify replacer that sorts object keys lexicographically at every level.
51
+ * Arrays preserve their order (insertion-order independent only for objects).
52
+ */
53
+ function sortedReplacer(_key, value) {
54
+ if (value !== null && typeof value === "object" && !Array.isArray(value)) {
55
+ const sorted = {};
56
+ for (const k of Object.keys(value).sort()) {
57
+ sorted[k] = value[k];
58
+ }
59
+ return sorted;
60
+ }
61
+ return value;
62
+ }
63
+ // ─── Threshold signature verification ────────────────────────────────────────
64
+ /**
65
+ * Verify a consortium manifest against a set of officer root keys.
66
+ *
67
+ * Pseudocode (RFC 8032 — Ed25519 verification):
68
+ * 1. Compute canonical body bytes via canonicalManifestBody.
69
+ * 2. For each signature entry in manifest.signatures:
70
+ * a. If officerIndex is out of bounds (< 0 or >= rootKeys.length), skip.
71
+ * b. Decode the hex signature to bytes. If malformed, skip.
72
+ * c. Decode the root key at officerIndex to bytes. If malformed, skip.
73
+ * d. Verify: ed25519.verify(signature, body, publicKey).
74
+ * e. If valid AND officerIndex not already in verified set, add it (SI-001).
75
+ * f. If valid BUT officerIndex already verified, mark as duplicate.
76
+ * 3. If |verified signers| >= threshold → { ok: true, signerCount }.
77
+ * 4. Otherwise → { ok: false, reason, detail }.
78
+ *
79
+ * This function NEVER throws. All error conditions produce a result value.
80
+ */
81
+ export function verifyManifest(manifest, rootKeys, threshold) {
82
+ // A manifest with no nodes is structurally invalid — the consumer has no nodes
83
+ // to connect to and cannot distinguish "empty by design" from "tampered" (AC-003(d)).
84
+ if (manifest.nodes.length === 0) {
85
+ return {
86
+ ok: false,
87
+ reason: "manifest_signature_invalid",
88
+ detail: "manifest contains no nodes",
89
+ diagnostics: { threshold, validOfficers: [], skippedEntries: [] },
90
+ };
91
+ }
92
+ const body = canonicalManifestBody(manifest);
93
+ const verifiedIndices = new Set();
94
+ const skippedEntries = [];
95
+ for (const entry of manifest.signatures) {
96
+ const { officerIndex, signature } = entry;
97
+ // Skip out-of-bounds indices (AC-008)
98
+ if (officerIndex < 0 || officerIndex >= rootKeys.length) {
99
+ skippedEntries.push({ index: officerIndex, reason: "out_of_bounds" });
100
+ continue;
101
+ }
102
+ // Decode signature hex to bytes (Ed25519 signature = 64 bytes)
103
+ const sigBytes = hexToBytes(signature, 64);
104
+ if (sigBytes === null) {
105
+ skippedEntries.push({ index: officerIndex, reason: "malformed_signature" });
106
+ continue;
107
+ }
108
+ // Decode public key hex to bytes (Ed25519 public key = 32 bytes)
109
+ const pubkeyBytes = hexToBytes(rootKeys[officerIndex], 32);
110
+ if (pubkeyBytes === null) {
111
+ skippedEntries.push({ index: officerIndex, reason: "malformed_key" });
112
+ continue;
113
+ }
114
+ // Verify Ed25519 signature (RFC 8032)
115
+ let isValid = false;
116
+ try {
117
+ isValid = ed25519.verify(sigBytes, body, pubkeyBytes);
118
+ }
119
+ catch (err) {
120
+ skippedEntries.push({ index: officerIndex, reason: "verification_failed", error: err instanceof Error ? err.message : String(err) });
121
+ continue;
122
+ }
123
+ if (!isValid) {
124
+ skippedEntries.push({ index: officerIndex, reason: "verification_failed" });
125
+ continue;
126
+ }
127
+ // Check uniqueness AFTER verification — only first valid sig per officer counts (SI-001)
128
+ if (verifiedIndices.has(officerIndex)) {
129
+ skippedEntries.push({ index: officerIndex, reason: "duplicate" });
130
+ continue;
131
+ }
132
+ verifiedIndices.add(officerIndex);
133
+ }
134
+ const signerCount = verifiedIndices.size;
135
+ if (signerCount >= threshold) {
136
+ return { ok: true, signerCount };
137
+ }
138
+ return {
139
+ ok: false,
140
+ reason: "manifest_signature_invalid",
141
+ detail: `${signerCount} valid of ${threshold} required`,
142
+ diagnostics: {
143
+ threshold,
144
+ validOfficers: Array.from(verifiedIndices).sort((a, b) => a - b),
145
+ skippedEntries,
146
+ },
147
+ };
148
+ }
149
+ // ─── Internal helpers ────────────────────────────────────────────────────────
150
+ /**
151
+ * Decode a hex string to Uint8Array with expected byte length validation.
152
+ * Returns null if the input is not valid hex or doesn't match expectedBytes.
153
+ * Never throws.
154
+ */
155
+ function hexToBytes(hex, expectedBytes) {
156
+ if (hex.length !== expectedBytes * 2) {
157
+ return null;
158
+ }
159
+ try {
160
+ const bytes = new Uint8Array(expectedBytes);
161
+ for (let i = 0; i < bytes.length; i++) {
162
+ const byte = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
163
+ if (Number.isNaN(byte)) {
164
+ return null;
165
+ }
166
+ bytes[i] = byte;
167
+ }
168
+ return bytes;
169
+ }
170
+ catch {
171
+ return null;
172
+ }
173
+ }
174
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAoCnD,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAiC;IACrE,mFAAmF;IACnF,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,GAAI,QAAoC,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAElD,uBAAuB;IACvB,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,IAAY,EAAE,KAAc;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,CAAC,CAAC,GAAI,KAAiC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAiC,EACjC,QAA2B,EAC3B,SAAiB;IAEjB,+EAA+E;IAC/E,sFAAsF;IACtF,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,4BAA4B;YACpC,MAAM,EAAE,4BAA4B;YACpC,WAAW,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;SAClE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,cAAc,GAAiC,EAAE,CAAC;IAExD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAE1C,sCAAsC;QACtC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxD,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QAED,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC5E,SAAS;QACX,CAAC;QAED,iEAAiE;QACjE,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrI,SAAS;QACX,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC5E,SAAS;QACX,CAAC;QAED,yFAAyF;QACzF,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAClE,SAAS;QACX,CAAC;QAED,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;IAEzC,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE,GAAG,WAAW,aAAa,SAAS,WAAW;QACvD,WAAW,EAAE;YACX,SAAS;YACT,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAChE,cAAc;SACf;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF;;;;GAIG;AACH,SAAS,UAAU,CAAC,GAAW,EAAE,aAAqB;IACpD,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cello-protocol/crypto",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {