@rubric-protocol/verify
Advanced tools
| export interface AggregateAnchor { | ||
| aggregateRoot: string; | ||
| tier1Count: number; | ||
| totalItems?: number; | ||
| treeVersion?: number; | ||
| raw: Record<string, unknown>; | ||
| } | ||
| export declare function fetchHcsAggregate(opts: { | ||
| hederaMirror: string; | ||
| topicId: string; | ||
| sequenceNumber: number; | ||
| fetchImpl?: typeof globalThis.fetch; | ||
| timeoutMs?: number; | ||
| }): Promise<AggregateAnchor | null>; | ||
| //# sourceMappingURL=hcs-aggregate.d.ts.map |
| {"version":3,"file":"hcs-aggregate.d.ts","sourceRoot":"","sources":["../../../src/anchors/hcs-aggregate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA6ClC"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.fetchHcsAggregate = fetchHcsAggregate; | ||
| /** | ||
| * Fetch a tier-2 aggregate anchor by sequence number. | ||
| * | ||
| * A tiered attestation does not appear on HCS individually — it is Merkle | ||
| * batched, and what reaches the topic is an aggregate envelope carrying | ||
| * aggregateRoot and tier1Count. The record's anchors.hcs.tx_id is empty, so | ||
| * the tx-id based fetch used for direct attestations cannot locate it; the | ||
| * sequence number is the only handle. | ||
| */ | ||
| const errors_js_1 = require("../errors.js"); | ||
| const DEFAULT_TIMEOUT_MS = 10_000; | ||
| async function fetchHcsAggregate(opts) { | ||
| const fetchFn = opts.fetchImpl ?? globalThis.fetch; | ||
| if (!fetchFn) | ||
| throw new errors_js_1.AnchorFetchError('no fetch implementation available'); | ||
| if (!/^\d+\.\d+\.\d+$/.test(opts.topicId)) | ||
| return null; | ||
| if (!Number.isInteger(opts.sequenceNumber) || opts.sequenceNumber <= 0) | ||
| return null; | ||
| const url = `${opts.hederaMirror.replace(/\/+$/, '')}/api/v1/topics/${opts.topicId}` + | ||
| `/messages?sequencenumber=${opts.sequenceNumber}&limit=1`; | ||
| let body; | ||
| try { | ||
| const res = await fetchFn(url, { | ||
| signal: AbortSignal.timeout(opts.timeoutMs ?? DEFAULT_TIMEOUT_MS), | ||
| }); | ||
| if (!res.ok) | ||
| return null; | ||
| body = await res.json(); | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| const msg = Array.isArray(body?.messages) ? body.messages[0] : null; | ||
| if (!msg || typeof msg.message !== 'string') | ||
| return null; | ||
| // Aggregate anchors are single-chunk by design (918 bytes in full form). | ||
| // A chunked one cannot be reassembled from a sequence number alone. | ||
| const total = msg.chunk_info?.total ?? 1; | ||
| if (total !== 1) | ||
| return null; | ||
| let env; | ||
| try { | ||
| env = JSON.parse(Buffer.from(msg.message, 'base64').toString('utf8')); | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| if (!env || typeof env !== 'object') | ||
| return null; | ||
| if (typeof env.aggregateRoot !== 'string') | ||
| return null; | ||
| return { | ||
| aggregateRoot: env.aggregateRoot, | ||
| tier1Count: typeof env.tier1Count === 'number' ? env.tier1Count : -1, | ||
| totalItems: typeof env.totalItems === 'number' ? env.totalItems : undefined, | ||
| treeVersion: typeof env.treeVersion === 'number' ? env.treeVersion : undefined, | ||
| raw: env, | ||
| }; | ||
| } | ||
| //# sourceMappingURL=hcs-aggregate.js.map |
| {"version":3,"file":"hcs-aggregate.js","sourceRoot":"","sources":["../../../src/anchors/hcs-aggregate.ts"],"names":[],"mappings":";;AAqBA,8CAmDC;AAxED;;;;;;;;GAQG;AACH,4CAAgD;AAEhD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAU3B,KAAK,UAAU,iBAAiB,CAAC,IAMvC;IACC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,4BAAgB,CAAC,mCAAmC,CAAC,CAAC;IAC9E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpF,MAAM,GAAG,GACP,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,IAAI,CAAC,OAAO,EAAE;QACxE,4BAA4B,IAAI,CAAC,cAAc,UAAU,CAAC;IAE5D,IAAI,IAAS,CAAC;IACd,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;SAClE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEzD,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7B,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC3E,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC9E,GAAG,EAAE,GAAG;KACT,CAAC;AACJ,CAAC"} |
| /** | ||
| * The exact object the producer hashes (spec §6.3), rebuilt from a record. | ||
| * | ||
| * Optional siblings are included ONLY when present — omitted, never null, | ||
| * mirroring buildTieredLeafMessage in the producer. | ||
| * | ||
| * Every optional key the producer can add MUST appear here. A key the producer | ||
| * hashes and this function omits yields a different leaf, and the record then | ||
| * fails to verify against its own batch_root while looking, from the outside, | ||
| * like a forgery. client_attestation is the key that made this necessary: it is | ||
| * present on every record whose submitter signed locally, and it was missing | ||
| * from both this verifier and the published constructions document until | ||
| * 2026-08-13. | ||
| * | ||
| * Note the producer only includes client_attestation when the client signature | ||
| * VERIFIED at ingest; an unverified one stays on the stub and never enters the | ||
| * leaf. Records therefore either carry a verified block or none at all. | ||
| */ | ||
| import type { AttestationBase } from './types.js'; | ||
| export declare function buildAttestationMessage(a: AttestationBase): Record<string, unknown>; | ||
| //# sourceMappingURL=canonical-message.d.ts.map |
| {"version":3,"file":"canonical-message.d.ts","sourceRoot":"","sources":["../../src/canonical-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAcnF"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.buildAttestationMessage = buildAttestationMessage; | ||
| function buildAttestationMessage(a) { | ||
| return { | ||
| rubric_version: a.rubric_version, | ||
| attestation_type: a.attestation_type, | ||
| attestation_id: a.attestation_id, | ||
| issuer_node_region: a.issuer_node_region, | ||
| issued_at: a.issued_at, | ||
| payload: a.payload, | ||
| ...(a.provenance ? { provenance: a.provenance } : {}), | ||
| ...(a.evidence ? { evidence: a.evidence } : {}), | ||
| ...(a.model_ref ? { model_ref: a.model_ref } : {}), | ||
| ...(a.compliance_ref ? { compliance_ref: a.compliance_ref } : {}), | ||
| ...(a.client_attestation ? { client_attestation: a.client_attestation } : {}), | ||
| }; | ||
| } | ||
| //# sourceMappingURL=canonical-message.js.map |
| {"version":3,"file":"canonical-message.js","sourceRoot":"","sources":["../../src/canonical-message.ts"],"names":[],"mappings":";;AAoBA,0DAcC;AAdD,SAAgB,uBAAuB,CAAC,CAAkB;IACxD,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;QACxC,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC"} |
| /** | ||
| * Decide which object to hash as this record's Merkle leaf. | ||
| * | ||
| * Prefer the record's own fields. Fall back to attestation.stub.leafMessage — | ||
| * currently the only place /v1/verify/:id exposes the leaf's optional keys — | ||
| * but only after proving the stub copy is about the same attestation: | ||
| * | ||
| * * every key it carries is one the published spec allows in a leaf; | ||
| * * all six always-present keys are byte-identical to the record's; | ||
| * * otherwise the stub is refused and the record's own six keys are hashed, | ||
| * with the contradiction reported as a failure. | ||
| * | ||
| * The fallback is not a trust shortcut. The leaf still has to walk the Merkle | ||
| * proof to batch_root, and batch_root still has to reconstruct to the anchored | ||
| * aggregate root. All the stub can supply is optional-key CONTENT that was | ||
| * anchored at flush time along with everything else; it cannot change what the | ||
| * attestation is about. | ||
| */ | ||
| import type { AttestationBase } from './types.js'; | ||
| export interface LeafResolution { | ||
| /** The object to canonicalize and hash. */ | ||
| message: Record<string, unknown>; | ||
| /** Where the optional keys came from. */ | ||
| source: 'record' | 'stub'; | ||
| /** Set when the fallback was used, for surfacing to the caller. */ | ||
| note?: string; | ||
| /** Set when the stub was refused; belongs in `failures`. */ | ||
| error?: string; | ||
| } | ||
| export declare function resolveLeafMessage(a: AttestationBase): LeafResolution; | ||
| //# sourceMappingURL=leaf-source.d.ts.map |
| {"version":3,"file":"leaf-source.d.ts","sourceRoot":"","sources":["../../src/leaf-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoBlD,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,yCAAyC;IACzC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,cAAc,CAuDrE"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.resolveLeafMessage = resolveLeafMessage; | ||
| const canonical_message_js_1 = require("./canonical-message.js"); | ||
| const ALWAYS = [ | ||
| 'rubric_version', | ||
| 'attestation_type', | ||
| 'attestation_id', | ||
| 'issuer_node_region', | ||
| 'issued_at', | ||
| 'payload', | ||
| ]; | ||
| const OPTIONAL = [ | ||
| 'provenance', | ||
| 'evidence', | ||
| 'model_ref', | ||
| 'compliance_ref', | ||
| 'client_attestation', | ||
| ]; | ||
| /** Order-insensitive structural equality, for comparison only — never hashed. */ | ||
| function stable(v) { | ||
| if (v === undefined) | ||
| return 'undefined'; | ||
| if (v === null || typeof v !== 'object') | ||
| return JSON.stringify(v) ?? 'undefined'; | ||
| if (Array.isArray(v)) | ||
| return `[${v.map(stable).join(',')}]`; | ||
| const o = v; | ||
| return `{${Object.keys(o) | ||
| .sort() | ||
| .map((k) => `${JSON.stringify(k)}:${stable(o[k])}`) | ||
| .join(',')}}`; | ||
| } | ||
| function resolveLeafMessage(a) { | ||
| const fromRecord = (0, canonical_message_js_1.buildAttestationMessage)(a); | ||
| const rec = a; | ||
| // The record carries its own optional keys — nothing to reconcile. | ||
| if (OPTIONAL.some((k) => rec[k] !== undefined && rec[k] !== null)) { | ||
| return { message: fromRecord, source: 'record' }; | ||
| } | ||
| const stub = a.stub; | ||
| const lm = stub?.leafMessage; | ||
| if (!lm || typeof lm !== 'object' || Array.isArray(lm)) { | ||
| return { message: fromRecord, source: 'record' }; | ||
| } | ||
| const cand = lm; | ||
| const allowed = new Set([...ALWAYS, ...OPTIONAL]); | ||
| const unexpected = Object.keys(cand).filter((k) => !allowed.has(k)); | ||
| const missing = ALWAYS.filter((k) => !(k in cand)); | ||
| if (unexpected.length > 0 || missing.length > 0) { | ||
| return { | ||
| message: fromRecord, | ||
| source: 'record', | ||
| error: 'stub.leafMessage does not match the published leaf shape and was not used ' + | ||
| `(unexpected keys: ${unexpected.join(', ') || 'none'}; ` + | ||
| `missing required: ${missing.join(', ') || 'none'})`, | ||
| }; | ||
| } | ||
| const divergent = ALWAYS.filter((k) => stable(cand[k]) !== stable(fromRecord[k])); | ||
| if (divergent.length > 0) { | ||
| return { | ||
| message: fromRecord, | ||
| source: 'record', | ||
| error: 'stub.leafMessage contradicts the record on ' + | ||
| `${divergent.join(', ')} — refusing to hash the server's copy`, | ||
| }; | ||
| } | ||
| const carried = OPTIONAL.filter((k) => k in cand); | ||
| if (carried.length === 0) { | ||
| return { message: fromRecord, source: 'record' }; | ||
| } | ||
| return { | ||
| message: cand, | ||
| source: 'stub', | ||
| note: `optional leaf keys (${carried.join(', ')}) were read from ` + | ||
| 'attestation.stub.leafMessage: this API response does not expose them at the ' + | ||
| 'top level of `attestation`. The six signed core fields were confirmed ' + | ||
| 'identical to the record before hashing.', | ||
| }; | ||
| } | ||
| //# sourceMappingURL=leaf-source.js.map |
| {"version":3,"file":"leaf-source.js","sourceRoot":"","sources":["../../src/leaf-source.ts"],"names":[],"mappings":"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"} |
| export interface AggregateAnchor { | ||
| aggregateRoot: string; | ||
| tier1Count: number; | ||
| totalItems?: number; | ||
| treeVersion?: number; | ||
| raw: Record<string, unknown>; | ||
| } | ||
| export declare function fetchHcsAggregate(opts: { | ||
| hederaMirror: string; | ||
| topicId: string; | ||
| sequenceNumber: number; | ||
| fetchImpl?: typeof globalThis.fetch; | ||
| timeoutMs?: number; | ||
| }): Promise<AggregateAnchor | null>; | ||
| //# sourceMappingURL=hcs-aggregate.d.ts.map |
| {"version":3,"file":"hcs-aggregate.d.ts","sourceRoot":"","sources":["../../../src/anchors/hcs-aggregate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA6ClC"} |
| /** | ||
| * Fetch a tier-2 aggregate anchor by sequence number. | ||
| * | ||
| * A tiered attestation does not appear on HCS individually — it is Merkle | ||
| * batched, and what reaches the topic is an aggregate envelope carrying | ||
| * aggregateRoot and tier1Count. The record's anchors.hcs.tx_id is empty, so | ||
| * the tx-id based fetch used for direct attestations cannot locate it; the | ||
| * sequence number is the only handle. | ||
| */ | ||
| import { AnchorFetchError } from '../errors.js'; | ||
| const DEFAULT_TIMEOUT_MS = 10_000; | ||
| export async function fetchHcsAggregate(opts) { | ||
| const fetchFn = opts.fetchImpl ?? globalThis.fetch; | ||
| if (!fetchFn) | ||
| throw new AnchorFetchError('no fetch implementation available'); | ||
| if (!/^\d+\.\d+\.\d+$/.test(opts.topicId)) | ||
| return null; | ||
| if (!Number.isInteger(opts.sequenceNumber) || opts.sequenceNumber <= 0) | ||
| return null; | ||
| const url = `${opts.hederaMirror.replace(/\/+$/, '')}/api/v1/topics/${opts.topicId}` + | ||
| `/messages?sequencenumber=${opts.sequenceNumber}&limit=1`; | ||
| let body; | ||
| try { | ||
| const res = await fetchFn(url, { | ||
| signal: AbortSignal.timeout(opts.timeoutMs ?? DEFAULT_TIMEOUT_MS), | ||
| }); | ||
| if (!res.ok) | ||
| return null; | ||
| body = await res.json(); | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| const msg = Array.isArray(body?.messages) ? body.messages[0] : null; | ||
| if (!msg || typeof msg.message !== 'string') | ||
| return null; | ||
| // Aggregate anchors are single-chunk by design (918 bytes in full form). | ||
| // A chunked one cannot be reassembled from a sequence number alone. | ||
| const total = msg.chunk_info?.total ?? 1; | ||
| if (total !== 1) | ||
| return null; | ||
| let env; | ||
| try { | ||
| env = JSON.parse(Buffer.from(msg.message, 'base64').toString('utf8')); | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| if (!env || typeof env !== 'object') | ||
| return null; | ||
| if (typeof env.aggregateRoot !== 'string') | ||
| return null; | ||
| return { | ||
| aggregateRoot: env.aggregateRoot, | ||
| tier1Count: typeof env.tier1Count === 'number' ? env.tier1Count : -1, | ||
| totalItems: typeof env.totalItems === 'number' ? env.totalItems : undefined, | ||
| treeVersion: typeof env.treeVersion === 'number' ? env.treeVersion : undefined, | ||
| raw: env, | ||
| }; | ||
| } | ||
| //# sourceMappingURL=hcs-aggregate.js.map |
| {"version":3,"file":"hcs-aggregate.js","sourceRoot":"","sources":["../../../src/anchors/hcs-aggregate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAUlC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAMvC;IACC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;IAC9E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpF,MAAM,GAAG,GACP,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,IAAI,CAAC,OAAO,EAAE;QACxE,4BAA4B,IAAI,CAAC,cAAc,UAAU,CAAC;IAE5D,IAAI,IAAS,CAAC;IACd,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;SAClE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEzD,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7B,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC3E,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC9E,GAAG,EAAE,GAAG;KACT,CAAC;AACJ,CAAC"} |
| /** | ||
| * The exact object the producer hashes (spec §6.3), rebuilt from a record. | ||
| * | ||
| * Optional siblings are included ONLY when present — omitted, never null, | ||
| * mirroring buildTieredLeafMessage in the producer. | ||
| * | ||
| * Every optional key the producer can add MUST appear here. A key the producer | ||
| * hashes and this function omits yields a different leaf, and the record then | ||
| * fails to verify against its own batch_root while looking, from the outside, | ||
| * like a forgery. client_attestation is the key that made this necessary: it is | ||
| * present on every record whose submitter signed locally, and it was missing | ||
| * from both this verifier and the published constructions document until | ||
| * 2026-08-13. | ||
| * | ||
| * Note the producer only includes client_attestation when the client signature | ||
| * VERIFIED at ingest; an unverified one stays on the stub and never enters the | ||
| * leaf. Records therefore either carry a verified block or none at all. | ||
| */ | ||
| import type { AttestationBase } from './types.js'; | ||
| export declare function buildAttestationMessage(a: AttestationBase): Record<string, unknown>; | ||
| //# sourceMappingURL=canonical-message.d.ts.map |
| {"version":3,"file":"canonical-message.d.ts","sourceRoot":"","sources":["../../src/canonical-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAcnF"} |
| export function buildAttestationMessage(a) { | ||
| return { | ||
| rubric_version: a.rubric_version, | ||
| attestation_type: a.attestation_type, | ||
| attestation_id: a.attestation_id, | ||
| issuer_node_region: a.issuer_node_region, | ||
| issued_at: a.issued_at, | ||
| payload: a.payload, | ||
| ...(a.provenance ? { provenance: a.provenance } : {}), | ||
| ...(a.evidence ? { evidence: a.evidence } : {}), | ||
| ...(a.model_ref ? { model_ref: a.model_ref } : {}), | ||
| ...(a.compliance_ref ? { compliance_ref: a.compliance_ref } : {}), | ||
| ...(a.client_attestation ? { client_attestation: a.client_attestation } : {}), | ||
| }; | ||
| } | ||
| //# sourceMappingURL=canonical-message.js.map |
| {"version":3,"file":"canonical-message.js","sourceRoot":"","sources":["../../src/canonical-message.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,uBAAuB,CAAC,CAAkB;IACxD,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;QACxC,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC"} |
| /** | ||
| * Decide which object to hash as this record's Merkle leaf. | ||
| * | ||
| * Prefer the record's own fields. Fall back to attestation.stub.leafMessage — | ||
| * currently the only place /v1/verify/:id exposes the leaf's optional keys — | ||
| * but only after proving the stub copy is about the same attestation: | ||
| * | ||
| * * every key it carries is one the published spec allows in a leaf; | ||
| * * all six always-present keys are byte-identical to the record's; | ||
| * * otherwise the stub is refused and the record's own six keys are hashed, | ||
| * with the contradiction reported as a failure. | ||
| * | ||
| * The fallback is not a trust shortcut. The leaf still has to walk the Merkle | ||
| * proof to batch_root, and batch_root still has to reconstruct to the anchored | ||
| * aggregate root. All the stub can supply is optional-key CONTENT that was | ||
| * anchored at flush time along with everything else; it cannot change what the | ||
| * attestation is about. | ||
| */ | ||
| import type { AttestationBase } from './types.js'; | ||
| export interface LeafResolution { | ||
| /** The object to canonicalize and hash. */ | ||
| message: Record<string, unknown>; | ||
| /** Where the optional keys came from. */ | ||
| source: 'record' | 'stub'; | ||
| /** Set when the fallback was used, for surfacing to the caller. */ | ||
| note?: string; | ||
| /** Set when the stub was refused; belongs in `failures`. */ | ||
| error?: string; | ||
| } | ||
| export declare function resolveLeafMessage(a: AttestationBase): LeafResolution; | ||
| //# sourceMappingURL=leaf-source.d.ts.map |
| {"version":3,"file":"leaf-source.d.ts","sourceRoot":"","sources":["../../src/leaf-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoBlD,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,yCAAyC;IACzC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,cAAc,CAuDrE"} |
| import { buildAttestationMessage } from './canonical-message.js'; | ||
| const ALWAYS = [ | ||
| 'rubric_version', | ||
| 'attestation_type', | ||
| 'attestation_id', | ||
| 'issuer_node_region', | ||
| 'issued_at', | ||
| 'payload', | ||
| ]; | ||
| const OPTIONAL = [ | ||
| 'provenance', | ||
| 'evidence', | ||
| 'model_ref', | ||
| 'compliance_ref', | ||
| 'client_attestation', | ||
| ]; | ||
| /** Order-insensitive structural equality, for comparison only — never hashed. */ | ||
| function stable(v) { | ||
| if (v === undefined) | ||
| return 'undefined'; | ||
| if (v === null || typeof v !== 'object') | ||
| return JSON.stringify(v) ?? 'undefined'; | ||
| if (Array.isArray(v)) | ||
| return `[${v.map(stable).join(',')}]`; | ||
| const o = v; | ||
| return `{${Object.keys(o) | ||
| .sort() | ||
| .map((k) => `${JSON.stringify(k)}:${stable(o[k])}`) | ||
| .join(',')}}`; | ||
| } | ||
| export function resolveLeafMessage(a) { | ||
| const fromRecord = buildAttestationMessage(a); | ||
| const rec = a; | ||
| // The record carries its own optional keys — nothing to reconcile. | ||
| if (OPTIONAL.some((k) => rec[k] !== undefined && rec[k] !== null)) { | ||
| return { message: fromRecord, source: 'record' }; | ||
| } | ||
| const stub = a.stub; | ||
| const lm = stub?.leafMessage; | ||
| if (!lm || typeof lm !== 'object' || Array.isArray(lm)) { | ||
| return { message: fromRecord, source: 'record' }; | ||
| } | ||
| const cand = lm; | ||
| const allowed = new Set([...ALWAYS, ...OPTIONAL]); | ||
| const unexpected = Object.keys(cand).filter((k) => !allowed.has(k)); | ||
| const missing = ALWAYS.filter((k) => !(k in cand)); | ||
| if (unexpected.length > 0 || missing.length > 0) { | ||
| return { | ||
| message: fromRecord, | ||
| source: 'record', | ||
| error: 'stub.leafMessage does not match the published leaf shape and was not used ' + | ||
| `(unexpected keys: ${unexpected.join(', ') || 'none'}; ` + | ||
| `missing required: ${missing.join(', ') || 'none'})`, | ||
| }; | ||
| } | ||
| const divergent = ALWAYS.filter((k) => stable(cand[k]) !== stable(fromRecord[k])); | ||
| if (divergent.length > 0) { | ||
| return { | ||
| message: fromRecord, | ||
| source: 'record', | ||
| error: 'stub.leafMessage contradicts the record on ' + | ||
| `${divergent.join(', ')} — refusing to hash the server's copy`, | ||
| }; | ||
| } | ||
| const carried = OPTIONAL.filter((k) => k in cand); | ||
| if (carried.length === 0) { | ||
| return { message: fromRecord, source: 'record' }; | ||
| } | ||
| return { | ||
| message: cand, | ||
| source: 'stub', | ||
| note: `optional leaf keys (${carried.join(', ')}) were read from ` + | ||
| 'attestation.stub.leafMessage: this API response does not expose them at the ' + | ||
| 'top level of `attestation`. The six signed core fields were confirmed ' + | ||
| 'identical to the record before hashing.', | ||
| }; | ||
| } | ||
| //# sourceMappingURL=leaf-source.js.map |
| {"version":3,"file":"leaf-source.js","sourceRoot":"","sources":["../../src/leaf-source.ts"],"names":[],"mappings":"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"} |
| export interface AggregateAnchor { | ||
| aggregateRoot: string; | ||
| tier1Count: number; | ||
| totalItems?: number; | ||
| treeVersion?: number; | ||
| raw: Record<string, unknown>; | ||
| } | ||
| export declare function fetchHcsAggregate(opts: { | ||
| hederaMirror: string; | ||
| topicId: string; | ||
| sequenceNumber: number; | ||
| fetchImpl?: typeof globalThis.fetch; | ||
| timeoutMs?: number; | ||
| }): Promise<AggregateAnchor | null>; | ||
| //# sourceMappingURL=hcs-aggregate.d.ts.map |
| {"version":3,"file":"hcs-aggregate.d.ts","sourceRoot":"","sources":["../../../src/anchors/hcs-aggregate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA6ClC"} |
| /** | ||
| * The exact object the producer hashes (spec §6.3), rebuilt from a record. | ||
| * | ||
| * Optional siblings are included ONLY when present — omitted, never null, | ||
| * mirroring buildTieredLeafMessage in the producer. | ||
| * | ||
| * Every optional key the producer can add MUST appear here. A key the producer | ||
| * hashes and this function omits yields a different leaf, and the record then | ||
| * fails to verify against its own batch_root while looking, from the outside, | ||
| * like a forgery. client_attestation is the key that made this necessary: it is | ||
| * present on every record whose submitter signed locally, and it was missing | ||
| * from both this verifier and the published constructions document until | ||
| * 2026-08-13. | ||
| * | ||
| * Note the producer only includes client_attestation when the client signature | ||
| * VERIFIED at ingest; an unverified one stays on the stub and never enters the | ||
| * leaf. Records therefore either carry a verified block or none at all. | ||
| */ | ||
| import type { AttestationBase } from './types.js'; | ||
| export declare function buildAttestationMessage(a: AttestationBase): Record<string, unknown>; | ||
| //# sourceMappingURL=canonical-message.d.ts.map |
| {"version":3,"file":"canonical-message.d.ts","sourceRoot":"","sources":["../../src/canonical-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAcnF"} |
| /** | ||
| * Decide which object to hash as this record's Merkle leaf. | ||
| * | ||
| * Prefer the record's own fields. Fall back to attestation.stub.leafMessage — | ||
| * currently the only place /v1/verify/:id exposes the leaf's optional keys — | ||
| * but only after proving the stub copy is about the same attestation: | ||
| * | ||
| * * every key it carries is one the published spec allows in a leaf; | ||
| * * all six always-present keys are byte-identical to the record's; | ||
| * * otherwise the stub is refused and the record's own six keys are hashed, | ||
| * with the contradiction reported as a failure. | ||
| * | ||
| * The fallback is not a trust shortcut. The leaf still has to walk the Merkle | ||
| * proof to batch_root, and batch_root still has to reconstruct to the anchored | ||
| * aggregate root. All the stub can supply is optional-key CONTENT that was | ||
| * anchored at flush time along with everything else; it cannot change what the | ||
| * attestation is about. | ||
| */ | ||
| import type { AttestationBase } from './types.js'; | ||
| export interface LeafResolution { | ||
| /** The object to canonicalize and hash. */ | ||
| message: Record<string, unknown>; | ||
| /** Where the optional keys came from. */ | ||
| source: 'record' | 'stub'; | ||
| /** Set when the fallback was used, for surfacing to the caller. */ | ||
| note?: string; | ||
| /** Set when the stub was refused; belongs in `failures`. */ | ||
| error?: string; | ||
| } | ||
| export declare function resolveLeafMessage(a: AttestationBase): LeafResolution; | ||
| //# sourceMappingURL=leaf-source.d.ts.map |
| {"version":3,"file":"leaf-source.d.ts","sourceRoot":"","sources":["../../src/leaf-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoBlD,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,yCAAyC;IACzC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,cAAc,CAuDrE"} |
+5
-2
@@ -13,3 +13,3 @@ #!/usr/bin/env node | ||
| * --anchor <url|file> trust anchor source (default: https://rubric-protocol.com/trust-anchor.json) | ||
| * --api <base-url> attestation retrieval API (default: https://us.rubric-protocol.com) | ||
| * --api <base-url> attestation retrieval API (default: https://rubric-protocol.com) | ||
| * --allow-single-anchor accept HCS-only anchoring explicitly | ||
@@ -27,3 +27,6 @@ * | ||
| const DEFAULT_ANCHOR = 'https://rubric-protocol.com/trust-anchor.json'; | ||
| const DEFAULT_API = 'https://us.rubric-protocol.com'; | ||
| // The apex fans out to peer nodes (since 2026-08-12), so it resolves records | ||
| // served by any region. Pinning us. here meant an sg/jp/ca/eu attestation was | ||
| // simply not found, independent of whether it was valid. | ||
| const DEFAULT_API = 'https://rubric-protocol.com'; | ||
| function usage() { | ||
@@ -30,0 +33,0 @@ process.stderr.write('usage: rubric-verify <attestation-id | attestation.json> ' + |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"} |
@@ -6,6 +6,6 @@ /** | ||
| * - Hash function: SHA-256 (spec §4.1). | ||
| * - Leaf: leaf_i = SHA-256(canonical_message_i) (§7.1) | ||
| * - Leaf: leaf_i = SHA-256(0x00 || canonical_message_i) (§7.1) | ||
| * - Internal: internal(L, R) = SHA-256(0x01 || L || R) (§7.2) | ||
| * where 0x01 is a domain separator distinguishing internal | ||
| * nodes from leaves (which use no prefix). | ||
| * where 0x00 and 0x01 are RFC 6962 domain separators that | ||
| * keep leaf and internal-node hashes in disjoint spaces. | ||
| * - Tree shape: binary, balanced, depth 20 (max 2^20 leaves); | ||
@@ -27,6 +27,9 @@ * odd levels are right-padded by duplicating the last leaf. | ||
| /** | ||
| * Compute a leaf hash: SHA-256(canonical_message_bytes). | ||
| * Compute a leaf hash: SHA-256(0x00 || canonical_message_bytes). | ||
| * | ||
| * The leaf has no domain separator prefix, distinguishing it from an internal | ||
| * node (spec §7.2). | ||
| * Confirmed against live records rather than the draft: for attestation | ||
| * eb7310f4 the unprefixed digest is d2319dec..., which is that record's | ||
| * payload_hash, while the 0x00-prefixed digest is 836939c0... -- its | ||
| * batch_root, and the value actually anchored on HCS. The producer and | ||
| * constructions.json both tag the leaf; verify-spec v1.0.0 §7.1 is wrong. | ||
| */ | ||
@@ -33,0 +36,0 @@ export declare function merkleLeaf(canonicalMessageBytes: Uint8Array): Uint8Array; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAExE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAyB1C"} | ||
| {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAUlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAExE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAyB1C"} |
+13
-7
@@ -7,6 +7,6 @@ "use strict"; | ||
| * - Hash function: SHA-256 (spec §4.1). | ||
| * - Leaf: leaf_i = SHA-256(canonical_message_i) (§7.1) | ||
| * - Leaf: leaf_i = SHA-256(0x00 || canonical_message_i) (§7.1) | ||
| * - Internal: internal(L, R) = SHA-256(0x01 || L || R) (§7.2) | ||
| * where 0x01 is a domain separator distinguishing internal | ||
| * nodes from leaves (which use no prefix). | ||
| * where 0x00 and 0x01 are RFC 6962 domain separators that | ||
| * keep leaf and internal-node hashes in disjoint spaces. | ||
| * - Tree shape: binary, balanced, depth 20 (max 2^20 leaves); | ||
@@ -27,4 +27,7 @@ * odd levels are right-padded by duplicating the last leaf. | ||
| const crypto_js_1 = require("./crypto.js"); | ||
| /** Domain separator byte for leaves (RFC 6962). */ | ||
| const LEAF_NODE_PREFIX = new Uint8Array([0x00]); | ||
| /** Domain separator byte for internal nodes (spec §7.2). */ | ||
| const INTERNAL_NODE_PREFIX = new Uint8Array([0x01]); | ||
| const EMPTY = new Uint8Array(0); | ||
| /** | ||
@@ -37,9 +40,12 @@ * Compute an internal Merkle node: SHA-256(0x01 || left || right). | ||
| /** | ||
| * Compute a leaf hash: SHA-256(canonical_message_bytes). | ||
| * Compute a leaf hash: SHA-256(0x00 || canonical_message_bytes). | ||
| * | ||
| * The leaf has no domain separator prefix, distinguishing it from an internal | ||
| * node (spec §7.2). | ||
| * Confirmed against live records rather than the draft: for attestation | ||
| * eb7310f4 the unprefixed digest is d2319dec..., which is that record's | ||
| * payload_hash, while the 0x00-prefixed digest is 836939c0... -- its | ||
| * batch_root, and the value actually anchored on HCS. The producer and | ||
| * constructions.json both tag the leaf; verify-spec v1.0.0 §7.1 is wrong. | ||
| */ | ||
| function merkleLeaf(canonicalMessageBytes) { | ||
| return (0, crypto_js_1.sha256)(canonicalMessageBytes); | ||
| return (0, crypto_js_1.sha256)((0, crypto_js_1.concatBytes3)(LEAF_NODE_PREFIX, canonicalMessageBytes, EMPTY)); | ||
| } | ||
@@ -46,0 +52,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AAWH,wCAEC;AAQD,gCAEC;AAkBD,8CA8BC;AArED,2CAAmF;AAGnF,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAEpD;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAgB,EAAE,KAAiB;IAChE,OAAO,IAAA,kBAAM,EAAC,IAAA,wBAAY,EAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,qBAAiC;IAC1D,OAAO,IAAA,kBAAM,EAAC,qBAAqB,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,iBAAiB,CAC/B,IAAgB,EAChB,KAAe,EACf,UAA6B,EAC7B,YAAoB;IAEpB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2CAA2C,KAAK,CAAC,MAAM,OAAO,UAAU,CAAC,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qBAAS,EAAC,OAAO,CAAC,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,IAAA,oBAAQ,EAAC,YAAY,EAAE,YAAY,CAAC;QAC3C,YAAY;KACb,CAAC;AACJ,CAAC"} | ||
| {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AAgBH,wCAEC;AAWD,gCAEC;AAkBD,8CA8BC;AA7ED,2CAAmF;AAGnF,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAEhD,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAEpD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAEhC;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAgB,EAAE,KAAiB;IAChE,OAAO,IAAA,kBAAM,EAAC,IAAA,wBAAY,EAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAC,qBAAiC;IAC1D,OAAO,IAAA,kBAAM,EAAC,IAAA,wBAAY,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,iBAAiB,CAC/B,IAAgB,EAChB,KAAe,EACf,UAA6B,EAC7B,YAAoB;IAEpB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2CAA2C,KAAK,CAAC,MAAM,OAAO,UAAU,CAAC,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qBAAS,EAAC,OAAO,CAAC,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,IAAA,oBAAQ,EAAC,YAAY,EAAE,YAAY,CAAC;QAC3C,YAAY;KACb,CAAC;AACJ,CAAC"} |
+34
-0
@@ -115,2 +115,36 @@ /** | ||
| signature: string; | ||
| /** Optional model reference (§5.6); signed sibling of payload when present. */ | ||
| model_ref?: Record<string, unknown>; | ||
| /** Optional compliance reference (§5.7); signed sibling of payload when present. */ | ||
| compliance_ref?: Record<string, unknown>; | ||
| /** | ||
| * Present only when the submitter signed the payload with its own key AND | ||
| * that signature verified at ingest. Hashed INTO the leaf: a verifier that | ||
| * omits it computes a different leaf for every client-signed record. | ||
| */ | ||
| client_attestation?: { | ||
| publicKey: string; | ||
| algorithm: string; | ||
| verified: boolean; | ||
| signedAt?: string; | ||
| }; | ||
| /** The signed tier-1 batch envelope, when the serving node publishes it. | ||
| * This — not the bare batch_root — is what the ML-DSA signature covers. */ | ||
| tier1?: { | ||
| envelope: { | ||
| rubric_version: string; | ||
| attestation_type: string; | ||
| batch_root: string; | ||
| batch_size: number; | ||
| flush_id: string; | ||
| issuer_node_region: string; | ||
| issued_at: string; | ||
| }; | ||
| signature?: string; | ||
| publicKey?: string; | ||
| }; | ||
| stub?: { | ||
| leafMessage?: Record<string, unknown>; | ||
| [k: string]: unknown; | ||
| }; | ||
| anchors: Anchors; | ||
@@ -117,0 +151,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} |
@@ -127,3 +127,3 @@ "use strict"; | ||
| const sinks = attestations.filter((a) => !parentIds.has(a.attestation_id)); | ||
| let tail = sinks.length === 1 ? sinks[0].attestation_id : null; | ||
| const tail = sinks.length === 1 ? sinks[0].attestation_id : null; | ||
| if (sinks.length > 1) { | ||
@@ -130,0 +130,0 @@ findings.push({ type: 'gap', detail: `ambiguous tail: ${sinks.length} sinks (no single final decision): ${sinks.map((x) => x.attestation_id).join(', ')}` }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"verify-chain.js","sourceRoot":"","sources":["../../src/verify-chain.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"verify-chain.js","sourceRoot":"","sources":["../../src/verify-chain.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"verify-tiered.d.ts","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAChC,CAAC,EAAE,iBAAiB,EACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,CAgHvB"} | ||
| {"version":3,"file":"verify-tiered.d.ts","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAChC,CAAC,EAAE,iBAAiB,EACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,CAoLvB"} |
@@ -18,2 +18,6 @@ "use strict"; | ||
| const merkle_js_1 = require("./merkle.js"); | ||
| const leaf_source_js_1 = require("./leaf-source.js"); | ||
| const canonical_js_2 = require("./canonical.js"); | ||
| const chain_merkle_js_1 = require("./chain-merkle.js"); | ||
| const hcs_aggregate_js_1 = require("./anchors/hcs-aggregate.js"); | ||
| const verify_direct_js_1 = require("./verify-direct.js"); | ||
@@ -24,10 +28,10 @@ async function verifyTiered(a, ta, access) { | ||
| /* §9.4.1 — Reconstruct Merkle root. */ | ||
| const leafBytes = (0, merkle_js_1.merkleLeaf)((0, canonical_js_1.canonicalizeBytes)({ | ||
| rubric_version: a.rubric_version, | ||
| attestation_type: a.attestation_type, | ||
| attestation_id: a.attestation_id, | ||
| issuer_node_region: a.issuer_node_region, | ||
| issued_at: a.issued_at, | ||
| payload: a.payload, | ||
| })); | ||
| // The producer adds optional siblings conditionally; carry through whatever | ||
| // this record has. A fixed key list here silently breaks every record that | ||
| // carries a key the list omits — see buildAttestationMessage. | ||
| const leafSource = (0, leaf_source_js_1.resolveLeafMessage)(a); | ||
| if (leafSource.error) { | ||
| failures.push(leafSource.error); | ||
| } | ||
| const leafBytes = (0, merkle_js_1.merkleLeaf)((0, canonical_js_1.canonicalizeBytes)(leafSource.message)); | ||
| let merkleResult; | ||
@@ -46,19 +50,43 @@ try { | ||
| } | ||
| /* §9.4.2 — Verify batch_root signature. */ | ||
| let publicKey; | ||
| let signature; | ||
| let batchRootBytes; | ||
| try { | ||
| publicKey = (0, crypto_js_1.base64Decode)(a.publicKey); | ||
| signature = (0, crypto_js_1.hexDecode)(a.signature); | ||
| batchRootBytes = (0, crypto_js_1.hexDecode)(a.batch_root); | ||
| } | ||
| catch (e) { | ||
| failures.push(`malformed encoding: ${e.message}`); | ||
| /* §9.4.2 — Verify the signed batch ENVELOPE. | ||
| * | ||
| * The producer signs canonicalize(envelope) over seven keys, not the raw | ||
| * batch_root bytes (tiered-aggregator.ts: signCanonical(batchEnvelope)). | ||
| * Verifying over hexDecode(batch_root) checks bytes nobody ever signed. */ | ||
| const env = a.tier1?.envelope; | ||
| if (!env) { | ||
| details.signature_valid = false; | ||
| return { verified: false, attestation_id: a.attestation_id, details, failures }; | ||
| failures.push('record does not carry its signed tier-1 envelope (tier1.envelope), ' + | ||
| 'so the batch signature cannot be checked'); | ||
| } | ||
| details.signature_valid = (0, crypto_js_1.mlDsa65Verify)(publicKey, batchRootBytes, signature); | ||
| if (!details.signature_valid) { | ||
| failures.push('Batch root signature verification failed'); | ||
| else { | ||
| // Bind the envelope to this record before trusting it — otherwise a valid | ||
| // signature over some OTHER batch would pass. Mirrors the bundleBinding | ||
| // check in the server's tiered-verify. | ||
| const bound = env.batch_root === a.batch_root && | ||
| env.batch_size === a.batch_size && | ||
| env.issued_at === a.issued_at && | ||
| env.issuer_node_region === a.issuer_node_region; | ||
| if (!bound) { | ||
| details.signature_valid = false; | ||
| failures.push('signed envelope does not bind to this record (root/size/time/region mismatch)'); | ||
| } | ||
| else { | ||
| let publicKey; | ||
| let signature; | ||
| try { | ||
| publicKey = (0, crypto_js_1.base64Decode)(a.tier1?.publicKey ?? a.publicKey); | ||
| signature = (0, crypto_js_1.hexDecode)(a.tier1?.signature ?? a.signature); | ||
| } | ||
| catch (e) { | ||
| failures.push(`malformed encoding: ${e.message}`); | ||
| details.signature_valid = false; | ||
| return { verified: false, attestation_id: a.attestation_id, details, failures }; | ||
| } | ||
| const envBytes = new TextEncoder().encode((0, canonical_js_2.canonicalize)(env)); | ||
| details.signature_valid = (0, crypto_js_1.mlDsa65Verify)(publicKey, envBytes, signature); | ||
| if (!details.signature_valid) { | ||
| failures.push('batch envelope signature verification failed'); | ||
| } | ||
| } | ||
| } | ||
@@ -85,7 +113,46 @@ /* §9.4.3 — Verify publicKey is in trust anchor. */ | ||
| }); | ||
| details.hcs_anchor_confirmed = | ||
| hcs !== null && (0, crypto_js_1.hexEqual)(hcs.payload_hash, a.batch_root); | ||
| if (!details.hcs_anchor_confirmed) { | ||
| failures.push('HCS anchor mismatch with batch_root'); | ||
| /* A tiered record is not on HCS individually. What is on the topic is the | ||
| * tier-2 aggregate envelope, reachable only by sequence number. Reconstruct: | ||
| * aggregate leaf = DOCUMENT_HASH{forestRoot: batch_root, itemCount} | ||
| * tree root = single-leaf tree over it | ||
| * aggregateRoot = self-pair wrap of that root | ||
| * confirmed against seq 287406 before this was written. */ | ||
| const seq = a.anchors.hcs.sequence_number; | ||
| const agg = typeof seq === 'number' && seq > 0 | ||
| ? await (0, hcs_aggregate_js_1.fetchHcsAggregate)({ | ||
| hederaMirror: access.hederaMirror, | ||
| topicId: a.anchors.hcs.topic_id, | ||
| sequenceNumber: seq, | ||
| fetchImpl: access.fetch, | ||
| timeoutMs: access.timeoutMs, | ||
| }) | ||
| : null; | ||
| if (!agg) { | ||
| details.hcs_anchor_confirmed = false; | ||
| failures.push(`tier-2 aggregate anchor not retrievable (topic ${a.anchors.hcs.topic_id} ` + | ||
| `sequence ${String(seq)})`); | ||
| } | ||
| else if (agg.tier1Count === 1) { | ||
| const leafDigest = (0, chain_merkle_js_1.chainLeafDigest)('DOCUMENT_HASH', { | ||
| forestRoot: a.batch_root, | ||
| itemCount: a.batch_size, | ||
| }); | ||
| const treeRoot = (0, chain_merkle_js_1.buildChainTree)([leafDigest]).root; | ||
| const reconstructed = (0, chain_merkle_js_1.chainForestWrap)(treeRoot); | ||
| details.hcs_anchor_confirmed = reconstructed === agg.aggregateRoot; | ||
| if (!details.hcs_anchor_confirmed) { | ||
| failures.push(`batch_root does not reconstruct to the anchored aggregateRoot ` + | ||
| `(computed ${reconstructed.slice(0, 16)}…, anchored ${agg.aggregateRoot.slice(0, 16)}…)`); | ||
| } | ||
| } | ||
| else { | ||
| // The aggregate tree held more than one tier-1 flush. Its sibling roots are | ||
| // not published in this record, so the walk cannot be completed by a third | ||
| // party. Say so rather than returning a verdict the evidence cannot carry. | ||
| Reflect.deleteProperty(details, 'hcs_anchor_confirmed'); | ||
| failures.push(`aggregate inclusion INDETERMINATE: the anchor at sequence ${String(seq)} ` + | ||
| `covers ${String(agg.tier1Count)} tier-1 flushes and this record does not ` + | ||
| `carry the aggregate proof path, so batch_root cannot be walked to ` + | ||
| `aggregateRoot independently`); | ||
| } | ||
| /* Layer 2 — suite downgrade defense (consensus-time cross-check). */ | ||
@@ -92,0 +159,0 @@ const l2 = (0, verify_direct_js_1.checkConsensusSuiteWindow)(ta, hcs, details); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"verify-tiered.js","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"verify-tiered.js","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"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"} |
+5
-2
@@ -11,3 +11,3 @@ #!/usr/bin/env node | ||
| * --anchor <url|file> trust anchor source (default: https://rubric-protocol.com/trust-anchor.json) | ||
| * --api <base-url> attestation retrieval API (default: https://us.rubric-protocol.com) | ||
| * --api <base-url> attestation retrieval API (default: https://rubric-protocol.com) | ||
| * --allow-single-anchor accept HCS-only anchoring explicitly | ||
@@ -25,3 +25,6 @@ * | ||
| const DEFAULT_ANCHOR = 'https://rubric-protocol.com/trust-anchor.json'; | ||
| const DEFAULT_API = 'https://us.rubric-protocol.com'; | ||
| // The apex fans out to peer nodes (since 2026-08-12), so it resolves records | ||
| // served by any region. Pinning us. here meant an sg/jp/ca/eu attestation was | ||
| // simply not found, independent of whether it was valid. | ||
| const DEFAULT_API = 'https://rubric-protocol.com'; | ||
| function usage() { | ||
@@ -28,0 +31,0 @@ process.stderr.write('usage: rubric-verify <attestation-id | attestation.json> ' + |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"} |
@@ -6,6 +6,6 @@ /** | ||
| * - Hash function: SHA-256 (spec §4.1). | ||
| * - Leaf: leaf_i = SHA-256(canonical_message_i) (§7.1) | ||
| * - Leaf: leaf_i = SHA-256(0x00 || canonical_message_i) (§7.1) | ||
| * - Internal: internal(L, R) = SHA-256(0x01 || L || R) (§7.2) | ||
| * where 0x01 is a domain separator distinguishing internal | ||
| * nodes from leaves (which use no prefix). | ||
| * where 0x00 and 0x01 are RFC 6962 domain separators that | ||
| * keep leaf and internal-node hashes in disjoint spaces. | ||
| * - Tree shape: binary, balanced, depth 20 (max 2^20 leaves); | ||
@@ -27,6 +27,9 @@ * odd levels are right-padded by duplicating the last leaf. | ||
| /** | ||
| * Compute a leaf hash: SHA-256(canonical_message_bytes). | ||
| * Compute a leaf hash: SHA-256(0x00 || canonical_message_bytes). | ||
| * | ||
| * The leaf has no domain separator prefix, distinguishing it from an internal | ||
| * node (spec §7.2). | ||
| * Confirmed against live records rather than the draft: for attestation | ||
| * eb7310f4 the unprefixed digest is d2319dec..., which is that record's | ||
| * payload_hash, while the 0x00-prefixed digest is 836939c0... -- its | ||
| * batch_root, and the value actually anchored on HCS. The producer and | ||
| * constructions.json both tag the leaf; verify-spec v1.0.0 §7.1 is wrong. | ||
| */ | ||
@@ -33,0 +36,0 @@ export declare function merkleLeaf(canonicalMessageBytes: Uint8Array): Uint8Array; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAExE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAyB1C"} | ||
| {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAUlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAExE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAyB1C"} |
+13
-7
@@ -6,6 +6,6 @@ /** | ||
| * - Hash function: SHA-256 (spec §4.1). | ||
| * - Leaf: leaf_i = SHA-256(canonical_message_i) (§7.1) | ||
| * - Leaf: leaf_i = SHA-256(0x00 || canonical_message_i) (§7.1) | ||
| * - Internal: internal(L, R) = SHA-256(0x01 || L || R) (§7.2) | ||
| * where 0x01 is a domain separator distinguishing internal | ||
| * nodes from leaves (which use no prefix). | ||
| * where 0x00 and 0x01 are RFC 6962 domain separators that | ||
| * keep leaf and internal-node hashes in disjoint spaces. | ||
| * - Tree shape: binary, balanced, depth 20 (max 2^20 leaves); | ||
@@ -22,4 +22,7 @@ * odd levels are right-padded by duplicating the last leaf. | ||
| import { sha256, hexDecode, hexEncode, hexEqual, concatBytes3 } from './crypto.js'; | ||
| /** Domain separator byte for leaves (RFC 6962). */ | ||
| const LEAF_NODE_PREFIX = new Uint8Array([0x00]); | ||
| /** Domain separator byte for internal nodes (spec §7.2). */ | ||
| const INTERNAL_NODE_PREFIX = new Uint8Array([0x01]); | ||
| const EMPTY = new Uint8Array(0); | ||
| /** | ||
@@ -32,9 +35,12 @@ * Compute an internal Merkle node: SHA-256(0x01 || left || right). | ||
| /** | ||
| * Compute a leaf hash: SHA-256(canonical_message_bytes). | ||
| * Compute a leaf hash: SHA-256(0x00 || canonical_message_bytes). | ||
| * | ||
| * The leaf has no domain separator prefix, distinguishing it from an internal | ||
| * node (spec §7.2). | ||
| * Confirmed against live records rather than the draft: for attestation | ||
| * eb7310f4 the unprefixed digest is d2319dec..., which is that record's | ||
| * payload_hash, while the 0x00-prefixed digest is 836939c0... -- its | ||
| * batch_root, and the value actually anchored on HCS. The producer and | ||
| * constructions.json both tag the leaf; verify-spec v1.0.0 §7.1 is wrong. | ||
| */ | ||
| export function merkleLeaf(canonicalMessageBytes) { | ||
| return sha256(canonicalMessageBytes); | ||
| return sha256(concatBytes3(LEAF_NODE_PREFIX, canonicalMessageBytes, EMPTY)); | ||
| } | ||
@@ -41,0 +47,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGnF,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,KAAiB;IAChE,OAAO,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,qBAAiC;IAC1D,OAAO,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAgB,EAChB,KAAe,EACf,UAA6B,EAC7B,YAAoB;IAEpB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2CAA2C,KAAK,CAAC,MAAM,OAAO,UAAU,CAAC,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QAC3C,YAAY;KACb,CAAC;AACJ,CAAC"} | ||
| {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGnF,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAEhD,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAEpD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,KAAiB;IAChE,OAAO,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,qBAAiC;IAC1D,OAAO,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAgB,EAChB,KAAe,EACf,UAA6B,EAC7B,YAAoB;IAEpB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2CAA2C,KAAK,CAAC,MAAM,OAAO,UAAU,CAAC,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QAC3C,YAAY;KACb,CAAC;AACJ,CAAC"} |
+34
-0
@@ -115,2 +115,36 @@ /** | ||
| signature: string; | ||
| /** Optional model reference (§5.6); signed sibling of payload when present. */ | ||
| model_ref?: Record<string, unknown>; | ||
| /** Optional compliance reference (§5.7); signed sibling of payload when present. */ | ||
| compliance_ref?: Record<string, unknown>; | ||
| /** | ||
| * Present only when the submitter signed the payload with its own key AND | ||
| * that signature verified at ingest. Hashed INTO the leaf: a verifier that | ||
| * omits it computes a different leaf for every client-signed record. | ||
| */ | ||
| client_attestation?: { | ||
| publicKey: string; | ||
| algorithm: string; | ||
| verified: boolean; | ||
| signedAt?: string; | ||
| }; | ||
| /** The signed tier-1 batch envelope, when the serving node publishes it. | ||
| * This — not the bare batch_root — is what the ML-DSA signature covers. */ | ||
| tier1?: { | ||
| envelope: { | ||
| rubric_version: string; | ||
| attestation_type: string; | ||
| batch_root: string; | ||
| batch_size: number; | ||
| flush_id: string; | ||
| issuer_node_region: string; | ||
| issued_at: string; | ||
| }; | ||
| signature?: string; | ||
| publicKey?: string; | ||
| }; | ||
| stub?: { | ||
| leafMessage?: Record<string, unknown>; | ||
| [k: string]: unknown; | ||
| }; | ||
| anchors: Anchors; | ||
@@ -117,0 +151,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} |
@@ -124,3 +124,3 @@ /** | ||
| const sinks = attestations.filter((a) => !parentIds.has(a.attestation_id)); | ||
| let tail = sinks.length === 1 ? sinks[0].attestation_id : null; | ||
| const tail = sinks.length === 1 ? sinks[0].attestation_id : null; | ||
| if (sinks.length > 1) { | ||
@@ -127,0 +127,0 @@ findings.push({ type: 'gap', detail: `ambiguous tail: ${sinks.length} sinks (no single final decision): ${sinks.map((x) => x.attestation_id).join(', ')}` }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"verify-chain.js","sourceRoot":"","sources":["../../src/verify-chain.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"verify-chain.js","sourceRoot":"","sources":["../../src/verify-chain.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"verify-tiered.d.ts","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAChC,CAAC,EAAE,iBAAiB,EACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,CAgHvB"} | ||
| {"version":3,"file":"verify-tiered.d.ts","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAChC,CAAC,EAAE,iBAAiB,EACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,CAoLvB"} |
@@ -15,2 +15,6 @@ /** | ||
| import { merkleLeaf, verifyMerkleProof } from './merkle.js'; | ||
| import { resolveLeafMessage } from './leaf-source.js'; | ||
| import { canonicalize } from './canonical.js'; | ||
| import { chainLeafDigest, buildChainTree, chainForestWrap } from './chain-merkle.js'; | ||
| import { fetchHcsAggregate } from './anchors/hcs-aggregate.js'; | ||
| import { computeAnchorOk, checkConsensusSuiteWindow } from './verify-direct.js'; | ||
@@ -21,10 +25,10 @@ export async function verifyTiered(a, ta, access) { | ||
| /* §9.4.1 — Reconstruct Merkle root. */ | ||
| const leafBytes = merkleLeaf(canonicalizeBytes({ | ||
| rubric_version: a.rubric_version, | ||
| attestation_type: a.attestation_type, | ||
| attestation_id: a.attestation_id, | ||
| issuer_node_region: a.issuer_node_region, | ||
| issued_at: a.issued_at, | ||
| payload: a.payload, | ||
| })); | ||
| // The producer adds optional siblings conditionally; carry through whatever | ||
| // this record has. A fixed key list here silently breaks every record that | ||
| // carries a key the list omits — see buildAttestationMessage. | ||
| const leafSource = resolveLeafMessage(a); | ||
| if (leafSource.error) { | ||
| failures.push(leafSource.error); | ||
| } | ||
| const leafBytes = merkleLeaf(canonicalizeBytes(leafSource.message)); | ||
| let merkleResult; | ||
@@ -43,19 +47,43 @@ try { | ||
| } | ||
| /* §9.4.2 — Verify batch_root signature. */ | ||
| let publicKey; | ||
| let signature; | ||
| let batchRootBytes; | ||
| try { | ||
| publicKey = base64Decode(a.publicKey); | ||
| signature = hexDecode(a.signature); | ||
| batchRootBytes = hexDecode(a.batch_root); | ||
| } | ||
| catch (e) { | ||
| failures.push(`malformed encoding: ${e.message}`); | ||
| /* §9.4.2 — Verify the signed batch ENVELOPE. | ||
| * | ||
| * The producer signs canonicalize(envelope) over seven keys, not the raw | ||
| * batch_root bytes (tiered-aggregator.ts: signCanonical(batchEnvelope)). | ||
| * Verifying over hexDecode(batch_root) checks bytes nobody ever signed. */ | ||
| const env = a.tier1?.envelope; | ||
| if (!env) { | ||
| details.signature_valid = false; | ||
| return { verified: false, attestation_id: a.attestation_id, details, failures }; | ||
| failures.push('record does not carry its signed tier-1 envelope (tier1.envelope), ' + | ||
| 'so the batch signature cannot be checked'); | ||
| } | ||
| details.signature_valid = mlDsa65Verify(publicKey, batchRootBytes, signature); | ||
| if (!details.signature_valid) { | ||
| failures.push('Batch root signature verification failed'); | ||
| else { | ||
| // Bind the envelope to this record before trusting it — otherwise a valid | ||
| // signature over some OTHER batch would pass. Mirrors the bundleBinding | ||
| // check in the server's tiered-verify. | ||
| const bound = env.batch_root === a.batch_root && | ||
| env.batch_size === a.batch_size && | ||
| env.issued_at === a.issued_at && | ||
| env.issuer_node_region === a.issuer_node_region; | ||
| if (!bound) { | ||
| details.signature_valid = false; | ||
| failures.push('signed envelope does not bind to this record (root/size/time/region mismatch)'); | ||
| } | ||
| else { | ||
| let publicKey; | ||
| let signature; | ||
| try { | ||
| publicKey = base64Decode(a.tier1?.publicKey ?? a.publicKey); | ||
| signature = hexDecode(a.tier1?.signature ?? a.signature); | ||
| } | ||
| catch (e) { | ||
| failures.push(`malformed encoding: ${e.message}`); | ||
| details.signature_valid = false; | ||
| return { verified: false, attestation_id: a.attestation_id, details, failures }; | ||
| } | ||
| const envBytes = new TextEncoder().encode(canonicalize(env)); | ||
| details.signature_valid = mlDsa65Verify(publicKey, envBytes, signature); | ||
| if (!details.signature_valid) { | ||
| failures.push('batch envelope signature verification failed'); | ||
| } | ||
| } | ||
| } | ||
@@ -82,7 +110,46 @@ /* §9.4.3 — Verify publicKey is in trust anchor. */ | ||
| }); | ||
| details.hcs_anchor_confirmed = | ||
| hcs !== null && hexEqual(hcs.payload_hash, a.batch_root); | ||
| if (!details.hcs_anchor_confirmed) { | ||
| failures.push('HCS anchor mismatch with batch_root'); | ||
| /* A tiered record is not on HCS individually. What is on the topic is the | ||
| * tier-2 aggregate envelope, reachable only by sequence number. Reconstruct: | ||
| * aggregate leaf = DOCUMENT_HASH{forestRoot: batch_root, itemCount} | ||
| * tree root = single-leaf tree over it | ||
| * aggregateRoot = self-pair wrap of that root | ||
| * confirmed against seq 287406 before this was written. */ | ||
| const seq = a.anchors.hcs.sequence_number; | ||
| const agg = typeof seq === 'number' && seq > 0 | ||
| ? await fetchHcsAggregate({ | ||
| hederaMirror: access.hederaMirror, | ||
| topicId: a.anchors.hcs.topic_id, | ||
| sequenceNumber: seq, | ||
| fetchImpl: access.fetch, | ||
| timeoutMs: access.timeoutMs, | ||
| }) | ||
| : null; | ||
| if (!agg) { | ||
| details.hcs_anchor_confirmed = false; | ||
| failures.push(`tier-2 aggregate anchor not retrievable (topic ${a.anchors.hcs.topic_id} ` + | ||
| `sequence ${String(seq)})`); | ||
| } | ||
| else if (agg.tier1Count === 1) { | ||
| const leafDigest = chainLeafDigest('DOCUMENT_HASH', { | ||
| forestRoot: a.batch_root, | ||
| itemCount: a.batch_size, | ||
| }); | ||
| const treeRoot = buildChainTree([leafDigest]).root; | ||
| const reconstructed = chainForestWrap(treeRoot); | ||
| details.hcs_anchor_confirmed = reconstructed === agg.aggregateRoot; | ||
| if (!details.hcs_anchor_confirmed) { | ||
| failures.push(`batch_root does not reconstruct to the anchored aggregateRoot ` + | ||
| `(computed ${reconstructed.slice(0, 16)}…, anchored ${agg.aggregateRoot.slice(0, 16)}…)`); | ||
| } | ||
| } | ||
| else { | ||
| // The aggregate tree held more than one tier-1 flush. Its sibling roots are | ||
| // not published in this record, so the walk cannot be completed by a third | ||
| // party. Say so rather than returning a verdict the evidence cannot carry. | ||
| Reflect.deleteProperty(details, 'hcs_anchor_confirmed'); | ||
| failures.push(`aggregate inclusion INDETERMINATE: the anchor at sequence ${String(seq)} ` + | ||
| `covers ${String(agg.tier1Count)} tier-1 flushes and this record does not ` + | ||
| `carry the aggregate proof path, so batch_root cannot be walked to ` + | ||
| `aggregateRoot independently`); | ||
| } | ||
| /* Layer 2 — suite downgrade defense (consensus-time cross-check). */ | ||
@@ -89,0 +156,0 @@ const l2 = checkConsensusSuiteWindow(ta, hcs, details); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"verify-tiered.js","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"verify-tiered.js","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAShF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,CAAoB,EACpB,EAAe,EACf,MAA8B;IAE9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,uCAAuC;IACvC,4EAA4E;IAC5E,2EAA2E;IAC3E,8DAA8D;IAC9D,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpE,IAAI,YAAkD,CAAC;IACvD,IAAI,CAAC;QACH,YAAY,GAAG,iBAAiB,CAC9B,SAAS,EACT,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,UAAU,CACb,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,2BAA4B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACnC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACnE,CAAC;IAED;;;;+EAI2E;IAC3E,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QAChC,QAAQ,CAAC,IAAI,CACX,qEAAqE;YACrE,0CAA0C,CAC3C,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,wEAAwE;QACxE,uCAAuC;QACvC,MAAM,KAAK,GACT,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;YAC/B,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;YAC/B,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAC7B,GAAG,CAAC,kBAAkB,KAAK,CAAC,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,SAAqB,CAAC;YAC1B,IAAI,SAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC5D,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,CAAC,uBAAwB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7D,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;gBAChC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YAClF,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,eAAe,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC7E,OAAO,CAAC,+BAA+B,GAAG,WAAW,KAAK,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACzD,CAAC;IAED,iDAAiD;IACjD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC/B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;QACzB,QAAQ,EAAE;YACR,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;YACxC,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB;QACD,SAAS,EAAE,MAAM,CAAC,KAAK;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH;;;;;+DAK2D;IAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,MAAM,GAAG,GACP,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC;QAChC,CAAC,CAAC,MAAM,iBAAiB,CAAC;YACtB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;YAC/B,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,MAAM,CAAC,KAAK;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACrC,QAAQ,CAAC,IAAI,CACX,kDAAkD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG;YAC3E,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,CAC3B,CAAC;IACJ,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,EAAE;YAClD,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,SAAS,EAAE,CAAC,CAAC,UAAU;SACxB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,oBAAoB,GAAG,aAAa,KAAK,GAAG,CAAC,aAAa,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CACX,gEAAgE;gBAChE,aAAa,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,4EAA4E;QAC5E,2EAA2E;QAC3E,2EAA2E;QAC3E,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QACxD,QAAQ,CAAC,IAAI,CACX,6DAA6D,MAAM,CAAC,GAAG,CAAC,GAAG;YAC3E,UAAU,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,2CAA2C;YAC3E,oEAAoE;YACpE,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,EAAE,GAAG,yBAAyB,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1B,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe;QACxC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;QAC9B,SAAS,EAAE,MAAM,CAAC,KAAK;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,OAAO,CAAC,qBAAqB;QAC3B,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC9D,CAAC;IAED,sBAAsB;IACtB,MAAM,QAAQ,GACZ,CAAC,CAAC,OAAO,CAAC,kBAAkB;QAC5B,CAAC,CAAC,OAAO,CAAC,eAAe;QACzB,CAAC,CAAC,OAAO,CAAC,+BAA+B;QACzC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC;QAClD,CAAC,EAAE,CAAC;IAEN,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC3E,CAAC"} |
@@ -6,6 +6,6 @@ /** | ||
| * - Hash function: SHA-256 (spec §4.1). | ||
| * - Leaf: leaf_i = SHA-256(canonical_message_i) (§7.1) | ||
| * - Leaf: leaf_i = SHA-256(0x00 || canonical_message_i) (§7.1) | ||
| * - Internal: internal(L, R) = SHA-256(0x01 || L || R) (§7.2) | ||
| * where 0x01 is a domain separator distinguishing internal | ||
| * nodes from leaves (which use no prefix). | ||
| * where 0x00 and 0x01 are RFC 6962 domain separators that | ||
| * keep leaf and internal-node hashes in disjoint spaces. | ||
| * - Tree shape: binary, balanced, depth 20 (max 2^20 leaves); | ||
@@ -27,6 +27,9 @@ * odd levels are right-padded by duplicating the last leaf. | ||
| /** | ||
| * Compute a leaf hash: SHA-256(canonical_message_bytes). | ||
| * Compute a leaf hash: SHA-256(0x00 || canonical_message_bytes). | ||
| * | ||
| * The leaf has no domain separator prefix, distinguishing it from an internal | ||
| * node (spec §7.2). | ||
| * Confirmed against live records rather than the draft: for attestation | ||
| * eb7310f4 the unprefixed digest is d2319dec..., which is that record's | ||
| * payload_hash, while the 0x00-prefixed digest is 836939c0... -- its | ||
| * batch_root, and the value actually anchored on HCS. The producer and | ||
| * constructions.json both tag the leaf; verify-spec v1.0.0 §7.1 is wrong. | ||
| */ | ||
@@ -33,0 +36,0 @@ export declare function merkleLeaf(canonicalMessageBytes: Uint8Array): Uint8Array; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAExE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAyB1C"} | ||
| {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAUlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,qBAAqB,EAAE,UAAU,GAAG,UAAU,CAExE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAyB1C"} |
@@ -115,2 +115,36 @@ /** | ||
| signature: string; | ||
| /** Optional model reference (§5.6); signed sibling of payload when present. */ | ||
| model_ref?: Record<string, unknown>; | ||
| /** Optional compliance reference (§5.7); signed sibling of payload when present. */ | ||
| compliance_ref?: Record<string, unknown>; | ||
| /** | ||
| * Present only when the submitter signed the payload with its own key AND | ||
| * that signature verified at ingest. Hashed INTO the leaf: a verifier that | ||
| * omits it computes a different leaf for every client-signed record. | ||
| */ | ||
| client_attestation?: { | ||
| publicKey: string; | ||
| algorithm: string; | ||
| verified: boolean; | ||
| signedAt?: string; | ||
| }; | ||
| /** The signed tier-1 batch envelope, when the serving node publishes it. | ||
| * This — not the bare batch_root — is what the ML-DSA signature covers. */ | ||
| tier1?: { | ||
| envelope: { | ||
| rubric_version: string; | ||
| attestation_type: string; | ||
| batch_root: string; | ||
| batch_size: number; | ||
| flush_id: string; | ||
| issuer_node_region: string; | ||
| issued_at: string; | ||
| }; | ||
| signature?: string; | ||
| publicKey?: string; | ||
| }; | ||
| stub?: { | ||
| leafMessage?: Record<string, unknown>; | ||
| [k: string]: unknown; | ||
| }; | ||
| anchors: Anchors; | ||
@@ -117,0 +151,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"verify-tiered.d.ts","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAChC,CAAC,EAAE,iBAAiB,EACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,CAgHvB"} | ||
| {"version":3,"file":"verify-tiered.d.ts","sourceRoot":"","sources":["../../src/verify-tiered.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAChC,CAAC,EAAE,iBAAiB,EACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,CAoLvB"} |
+1
-1
| { | ||
| "name": "@rubric-protocol/verify", | ||
| "version": "2.0.0", | ||
| "version": "2.1.0", | ||
| "description": "Reference TypeScript implementation of the Rubric Attestation Verification Specification v1.0.0", | ||
@@ -5,0 +5,0 @@ "license": "Apache-2.0", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
591361
10.68%234
14.71%8255
10.26%47
14.63%