@oxdeai/conformance 1.3.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +88 -0
- package/LICENSE +213 -0
- package/README.md +217 -5
- package/dist/evidence-metadata.json +3489 -0
- package/dist/scripts/build-evidence-metadata.d.mts +1 -0
- package/dist/scripts/build-evidence-metadata.mjs +7 -0
- package/dist/scripts/build-evidence-metadata.mjs.map +1 -0
- package/dist/scripts/extract-vectors.js +228 -22
- package/dist/scripts/extract-vectors.js.map +1 -1
- package/dist/src/evidenceScope.d.mts +68 -0
- package/dist/src/evidenceScope.mjs +127 -0
- package/dist/src/evidenceScope.mjs.map +1 -0
- package/dist/src/fixtures/conformance-engine-secret.fixture.d.ts +5 -0
- package/dist/src/fixtures/conformance-engine-secret.fixture.js +7 -0
- package/dist/src/fixtures/conformance-engine-secret.fixture.js.map +1 -0
- package/dist/src/fixtures/ed25519.test-only.fixture.d.ts +1 -1
- package/dist/src/fixtures/ed25519.test-only.fixture.js +2 -1
- package/dist/src/fixtures/ed25519.test-only.fixture.js.map +1 -1
- package/dist/src/fixtures/krl-ed25519.test-only.fixture.d.ts +13 -0
- package/dist/src/fixtures/krl-ed25519.test-only.fixture.js +19 -0
- package/dist/src/fixtures/krl-ed25519.test-only.fixture.js.map +1 -0
- package/dist/src/trustedTimeConformance.d.ts +32 -0
- package/dist/src/trustedTimeConformance.js +484 -0
- package/dist/src/trustedTimeConformance.js.map +1 -0
- package/dist/src/validate-trusted-time.d.ts +1 -0
- package/dist/src/validate-trusted-time.js +14 -0
- package/dist/src/validate-trusted-time.js.map +1 -0
- package/dist/src/validate.d.ts +1 -0
- package/dist/src/validate.js +723 -31
- package/dist/src/validate.js.map +1 -1
- package/package.json +38 -8
- package/vectors/audit-chain.json +2 -2
- package/vectors/authorization-payload.json +46 -34
- package/vectors/authorization-signature-verification.json +39 -1
- package/vectors/authorization-verification.json +54 -1
- package/vectors/clock-semantics-verification.json +136 -0
- package/vectors/delegation-chain-verification.json +366 -0
- package/vectors/delegation-parent-hash.json +54 -0
- package/vectors/delegation-signature-verification.json +317 -0
- package/vectors/delegation-verification.json +252 -0
- package/vectors/envelope-verification.json +3 -3
- package/vectors/key-lifecycle-verification.json +131 -0
- package/vectors/profile-c-state-verification.json +217 -0
- package/vectors/signed-krl-verification.json +103 -0
- package/vectors/trusted-time.json +50 -0
- package/dist/extract-vectors.js +0 -416
- package/scripts/extract-vectors.ts +0 -466
- package/src/fixtures/README.md +0 -11
- package/src/fixtures/ed25519.test-only.fixture.ts +0 -14
- package/src/validate.ts +0 -828
- package/tsconfig.json +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { writeFileSync } from 'node:fs';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { repositoryMetadata } from '../src/evidenceScope.mjs';
|
|
5
|
+
const root = fileURLToPath(new URL('../../../', import.meta.url));
|
|
6
|
+
writeFileSync(new URL('../dist/evidence-metadata.json', import.meta.url), JSON.stringify(repositoryMetadata(root), null, 2) + '\n');
|
|
7
|
+
//# sourceMappingURL=build-evidence-metadata.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-evidence-metadata.mjs","sourceRoot":"","sources":["../../scripts/build-evidence-metadata.mjs"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,aAAa,CAAC,IAAI,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
1
2
|
/**
|
|
2
3
|
* @oxdeai/conformance — Vector Extraction Script
|
|
3
4
|
*
|
|
@@ -6,7 +7,9 @@
|
|
|
6
7
|
import * as fs from "node:fs";
|
|
7
8
|
import * as path from "node:path";
|
|
8
9
|
import { createHash } from "node:crypto";
|
|
9
|
-
import { sha256HexFromJson, encodeCanonicalState, decodeCanonicalState, verifySnapshot, verifyEnvelope, encodeEnvelope, PolicyEngine } from "@oxdeai/core";
|
|
10
|
+
import { sha256HexFromJson, encodeCanonicalState, decodeCanonicalState, verifySnapshot, verifyEnvelope, encodeEnvelope, PolicyEngine, RECOMMENDED_TRUSTED_TIME_PROFILE, signAuthorizationEd25519, createDelegation, } from "@oxdeai/core";
|
|
11
|
+
import { TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION, TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION, } from "../src/fixtures/ed25519.test-only.fixture.js";
|
|
12
|
+
import { CONFORMANCE_ENGINE_SECRET } from "../src/fixtures/conformance-engine-secret.fixture.js";
|
|
10
13
|
const BINDING_FIELDS = [
|
|
11
14
|
"intent_id",
|
|
12
15
|
"agent_id",
|
|
@@ -51,13 +54,14 @@ function writeVector(filename, data) {
|
|
|
51
54
|
fs.writeFileSync(path.join(dir, filename), JSON.stringify(data, (_k, v) => (typeof v === "bigint" ? v.toString() : v), 2), "utf8");
|
|
52
55
|
console.log(`wrote ${filename}`);
|
|
53
56
|
}
|
|
54
|
-
const ENGINE_SECRET =
|
|
57
|
+
const ENGINE_SECRET = CONFORMANCE_ENGINE_SECRET;
|
|
55
58
|
function makeEngine() {
|
|
56
59
|
return new PolicyEngine({
|
|
57
60
|
policy_version: "v1.0.0",
|
|
58
61
|
engine_secret: ENGINE_SECRET,
|
|
59
62
|
authorization_ttl_seconds: 60,
|
|
60
|
-
policyId: "a".repeat(64)
|
|
63
|
+
policyId: "a".repeat(64),
|
|
64
|
+
...RECOMMENDED_TRUSTED_TIME_PROFILE
|
|
61
65
|
});
|
|
62
66
|
}
|
|
63
67
|
function makeState() {
|
|
@@ -172,38 +176,55 @@ async function extractAuthorizationPayload() {
|
|
|
172
176
|
const engine = makeEngine();
|
|
173
177
|
const state = makeState();
|
|
174
178
|
const policyId = engine.computePolicyId();
|
|
175
|
-
const r1 = engine.evaluatePure(makeIntent(100n, 1730000000), state);
|
|
179
|
+
const r1 = engine.evaluatePure(makeIntent(100n, 1730000000), state, 1730000000);
|
|
176
180
|
if (r1.decision !== "ALLOW")
|
|
177
181
|
throw new Error("expected ALLOW for auth vector 1");
|
|
178
|
-
|
|
182
|
+
// Cast to Authorization to access engine-internal fields needed for vector extraction.
|
|
183
|
+
// The runtime object still carries these fields; only the TypeScript type was narrowed.
|
|
184
|
+
const r1auth = r1.authorization;
|
|
185
|
+
const r2EvaluationTime = 30;
|
|
186
|
+
const r2 = engine.evaluatePure(makeIntent(101n, 0), makeState(), r2EvaluationTime);
|
|
179
187
|
if (r2.decision !== "ALLOW")
|
|
180
188
|
throw new Error("expected ALLOW for auth vector 2");
|
|
189
|
+
const r2auth = r2.authorization;
|
|
181
190
|
writeVector("authorization-payload.json", {
|
|
182
191
|
version: "1.0.0",
|
|
183
|
-
|
|
192
|
+
effective_ttl: 60,
|
|
184
193
|
signing_algorithm: "HMAC-SHA256",
|
|
185
194
|
vectors: [
|
|
186
195
|
{
|
|
187
196
|
id: "auth-payload-001",
|
|
188
|
-
input:
|
|
197
|
+
input: {
|
|
198
|
+
intent_timestamp: 1730000000,
|
|
199
|
+
evaluation_time: 1730000000,
|
|
200
|
+
effective_ttl: 60,
|
|
201
|
+
intent: makeIntent(100n, 1730000000)
|
|
202
|
+
},
|
|
189
203
|
expected: {
|
|
190
|
-
intent_hash:
|
|
204
|
+
intent_hash: r1auth.intent_hash,
|
|
191
205
|
policy_id: policyId,
|
|
192
|
-
state_hash:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
206
|
+
state_hash: r1auth.state_snapshot_hash,
|
|
207
|
+
expected_issued_at: r1auth.issued_at,
|
|
208
|
+
expected_expiry: r1auth.expires_at,
|
|
209
|
+
canonical_signing_payload: canonicalJson(authSigningPayload(r1auth, policyId)),
|
|
210
|
+
signature: r1auth.engine_signature
|
|
196
211
|
}
|
|
197
212
|
},
|
|
198
213
|
{
|
|
199
214
|
id: "auth-payload-002",
|
|
200
|
-
input:
|
|
215
|
+
input: {
|
|
216
|
+
intent_timestamp: 0,
|
|
217
|
+
evaluation_time: r2EvaluationTime,
|
|
218
|
+
effective_ttl: 60,
|
|
219
|
+
intent: makeIntent(101n, 0)
|
|
220
|
+
},
|
|
201
221
|
expected: {
|
|
202
|
-
intent_hash:
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
222
|
+
intent_hash: r2auth.intent_hash,
|
|
223
|
+
expected_issued_at: r2auth.issued_at,
|
|
224
|
+
expected_expiry: r2auth.expires_at,
|
|
225
|
+
expiry_derivation: "evaluation_time(30) + effective_ttl(60) = 90",
|
|
226
|
+
canonical_signing_payload: canonicalJson(authSigningPayload(r2auth, policyId)),
|
|
227
|
+
signature: r2auth.engine_signature
|
|
207
228
|
}
|
|
208
229
|
}
|
|
209
230
|
]
|
|
@@ -261,7 +282,7 @@ async function extractSnapshotHash() {
|
|
|
261
282
|
async function extractAuditChain() {
|
|
262
283
|
const engine = makeEngine();
|
|
263
284
|
const state = makeState();
|
|
264
|
-
const out = engine.evaluatePure(makeIntent(200n, 1730000000), state);
|
|
285
|
+
const out = engine.evaluatePure(makeIntent(200n, 1730000000), state, 1730000000);
|
|
265
286
|
if (out.decision !== "ALLOW")
|
|
266
287
|
throw new Error("expected ALLOW for audit-chain vectors");
|
|
267
288
|
const events = engine.audit.snapshot();
|
|
@@ -312,7 +333,7 @@ async function extractAuditChain() {
|
|
|
312
333
|
async function extractEnvelopeVerification() {
|
|
313
334
|
const engine = makeEngine();
|
|
314
335
|
const state = makeState();
|
|
315
|
-
const out = engine.evaluatePure(makeIntent(300n, 1730000000), state);
|
|
336
|
+
const out = engine.evaluatePure(makeIntent(300n, 1730000000), state, 1730000000);
|
|
316
337
|
if (out.decision !== "ALLOW")
|
|
317
338
|
throw new Error("expected ALLOW for envelope vectors");
|
|
318
339
|
const events = engine.audit.snapshot();
|
|
@@ -351,7 +372,8 @@ async function extractEnvelopeVerification() {
|
|
|
351
372
|
const corruptBytes = new Uint8Array([1, 2, 3, 4, 5]);
|
|
352
373
|
const r1 = verifyEnvelope(withCheckpointBytes, {
|
|
353
374
|
expectedPolicyId: engine.computePolicyId(),
|
|
354
|
-
mode: "strict"
|
|
375
|
+
mode: "strict",
|
|
376
|
+
trustedKeySets: DELEGATION_TEST_KEYSET
|
|
355
377
|
});
|
|
356
378
|
const r2 = verifyEnvelope(validEnvelopeBytes, {
|
|
357
379
|
expectedPolicyId: engine.computePolicyId(),
|
|
@@ -367,7 +389,8 @@ async function extractEnvelopeVerification() {
|
|
|
367
389
|
});
|
|
368
390
|
const r5 = verifyEnvelope(validEnvelopeBytes, {
|
|
369
391
|
expectedPolicyId: engine.computePolicyId(),
|
|
370
|
-
mode: "strict"
|
|
392
|
+
mode: "strict",
|
|
393
|
+
trustedKeySets: DELEGATION_TEST_KEYSET
|
|
371
394
|
});
|
|
372
395
|
writeVector("envelope-verification.json", {
|
|
373
396
|
version: "1.0.0",
|
|
@@ -406,6 +429,186 @@ async function extractEnvelopeVerification() {
|
|
|
406
429
|
]
|
|
407
430
|
});
|
|
408
431
|
}
|
|
432
|
+
// ── Delegation test-fixture constants (match validate.ts) ─────────────────────
|
|
433
|
+
const DELEGATION_T_ISSUED = 1_000_000;
|
|
434
|
+
const DELEGATION_T_NOW = 1_001_000;
|
|
435
|
+
const DELEGATION_T_DEL_EXP = 1_002_000;
|
|
436
|
+
const DELEGATION_T_PAR_EXP = 1_003_000;
|
|
437
|
+
const DELEGATION_TEST_KEYSET = {
|
|
438
|
+
issuer: "parent-agent",
|
|
439
|
+
version: "1",
|
|
440
|
+
keys: [{
|
|
441
|
+
kid: "2026-01",
|
|
442
|
+
alg: "Ed25519",
|
|
443
|
+
public_key: TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION,
|
|
444
|
+
}],
|
|
445
|
+
};
|
|
446
|
+
function makeParentAuth() {
|
|
447
|
+
return signAuthorizationEd25519({
|
|
448
|
+
auth_id: "f".repeat(64),
|
|
449
|
+
issuer: "oxdeai.policy-engine",
|
|
450
|
+
audience: "parent-agent",
|
|
451
|
+
intent_hash: "a".repeat(64),
|
|
452
|
+
state_hash: "b".repeat(64),
|
|
453
|
+
policy_id: "c".repeat(64),
|
|
454
|
+
decision: "ALLOW",
|
|
455
|
+
issued_at: DELEGATION_T_ISSUED,
|
|
456
|
+
expiry: DELEGATION_T_PAR_EXP,
|
|
457
|
+
kid: "2026-01",
|
|
458
|
+
}, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
|
|
459
|
+
}
|
|
460
|
+
function makeBaseDelegation(parent) {
|
|
461
|
+
return createDelegation(parent, {
|
|
462
|
+
delegatee: "child-agent",
|
|
463
|
+
scope: { tools: ["provision_gpu"] },
|
|
464
|
+
expiry: DELEGATION_T_DEL_EXP,
|
|
465
|
+
kid: "2026-01",
|
|
466
|
+
delegationId: "d1d1d1d1-0000-0000-0000-c0nf0rm4nce",
|
|
467
|
+
issuedAt: DELEGATION_T_ISSUED,
|
|
468
|
+
}, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
|
|
469
|
+
}
|
|
470
|
+
async function extractDelegationChainVerificationInputs() {
|
|
471
|
+
const parent = makeParentAuth();
|
|
472
|
+
const delegation = makeBaseDelegation(parent);
|
|
473
|
+
// chain-002: different parent — different auth_id → hash mismatch
|
|
474
|
+
const otherParent = signAuthorizationEd25519({
|
|
475
|
+
auth_id: "e".repeat(64),
|
|
476
|
+
issuer: "oxdeai.policy-engine",
|
|
477
|
+
audience: "parent-agent",
|
|
478
|
+
intent_hash: "a".repeat(64),
|
|
479
|
+
state_hash: "b".repeat(64),
|
|
480
|
+
policy_id: "c".repeat(64),
|
|
481
|
+
decision: "ALLOW",
|
|
482
|
+
issued_at: DELEGATION_T_ISSUED,
|
|
483
|
+
expiry: DELEGATION_T_PAR_EXP,
|
|
484
|
+
kid: "2026-01",
|
|
485
|
+
}, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
|
|
486
|
+
// chain-005: delegation whose expiry exceeds parent
|
|
487
|
+
const exceedsDelegation = createDelegation(parent, {
|
|
488
|
+
delegatee: "child-agent",
|
|
489
|
+
scope: {},
|
|
490
|
+
expiry: DELEGATION_T_PAR_EXP + 1,
|
|
491
|
+
kid: "2026-01",
|
|
492
|
+
delegationId: "d1d1d1d1-0000-0000-0000-ex1ry0verrun",
|
|
493
|
+
issuedAt: DELEGATION_T_ISSUED,
|
|
494
|
+
}, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
|
|
495
|
+
// Read existing file to preserve version/description, then rewrite with input fields added
|
|
496
|
+
const existing = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), "vectors", "delegation-chain-verification.json"), "utf8"));
|
|
497
|
+
const inputsByMode = {
|
|
498
|
+
"valid": { parent, delegation, opts: { now: DELEGATION_T_NOW } },
|
|
499
|
+
"parent-hash-mismatch": { parent: otherParent, delegation, opts: { now: DELEGATION_T_NOW } },
|
|
500
|
+
"delegator-mismatch": { parent, delegation: { ...delegation, delegator: "wrong-agent" }, opts: { now: DELEGATION_T_NOW } },
|
|
501
|
+
"parent-expired": { parent, delegation, opts: { now: DELEGATION_T_PAR_EXP } },
|
|
502
|
+
"expiry-exceeds-parent": { parent, delegation: exceedsDelegation, opts: { now: DELEGATION_T_NOW } },
|
|
503
|
+
"multi-hop": { parent: delegation, delegation, opts: { now: DELEGATION_T_NOW } },
|
|
504
|
+
"policy-id-mismatch": { parent, delegation: { ...delegation, policy_id: "d".repeat(64) }, opts: { now: DELEGATION_T_NOW } },
|
|
505
|
+
};
|
|
506
|
+
const updated = {
|
|
507
|
+
...existing,
|
|
508
|
+
vectors: existing.vectors.map((v) => {
|
|
509
|
+
const mode = String(v["mode"]);
|
|
510
|
+
const inp = inputsByMode[mode];
|
|
511
|
+
if (!inp)
|
|
512
|
+
return v;
|
|
513
|
+
return { ...v, input: inp };
|
|
514
|
+
}),
|
|
515
|
+
};
|
|
516
|
+
writeVector("delegation-chain-verification.json", updated);
|
|
517
|
+
}
|
|
518
|
+
async function extractDelegationSignatureVerificationInputs() {
|
|
519
|
+
const parent = makeParentAuth();
|
|
520
|
+
const delegation = makeBaseDelegation(parent);
|
|
521
|
+
// sig-005: expired delegation (correctly signed, expiry in the past)
|
|
522
|
+
const expiredDelegation = createDelegation(parent, {
|
|
523
|
+
delegatee: "child-agent",
|
|
524
|
+
scope: {},
|
|
525
|
+
expiry: DELEGATION_T_NOW - 1,
|
|
526
|
+
kid: "2026-01",
|
|
527
|
+
delegationId: "d1d1d1d1-0000-0000-0000-exp1r3d00000",
|
|
528
|
+
issuedAt: DELEGATION_T_ISSUED,
|
|
529
|
+
}, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
|
|
530
|
+
const chainOpts = {
|
|
531
|
+
now: DELEGATION_T_NOW,
|
|
532
|
+
requireSignatureVerification: true,
|
|
533
|
+
trustedKeySets: DELEGATION_TEST_KEYSET,
|
|
534
|
+
};
|
|
535
|
+
const existing = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), "vectors", "delegation-signature-verification.json"), "utf8"));
|
|
536
|
+
const inputsByMode = {
|
|
537
|
+
"valid": { parent, delegation, opts: chainOpts },
|
|
538
|
+
"tampered-signature": {
|
|
539
|
+
parent,
|
|
540
|
+
delegation: { ...delegation, signature: delegation.signature.slice(0, -4) + "AAAA" },
|
|
541
|
+
opts: chainOpts,
|
|
542
|
+
},
|
|
543
|
+
"wrong-kid": { parent, delegation: { ...delegation, kid: "unknown-kid" }, opts: chainOpts },
|
|
544
|
+
"tampered-field": { parent, delegation: { ...delegation, delegatee: "evil-agent" }, opts: chainOpts },
|
|
545
|
+
"expired": { parent, delegation: expiredDelegation, opts: chainOpts },
|
|
546
|
+
};
|
|
547
|
+
const updated = {
|
|
548
|
+
...existing,
|
|
549
|
+
vectors: existing.vectors.map((v) => {
|
|
550
|
+
const mode = String(v["mode"]);
|
|
551
|
+
const inp = inputsByMode[mode];
|
|
552
|
+
if (!inp)
|
|
553
|
+
return v;
|
|
554
|
+
return { ...v, input: inp };
|
|
555
|
+
}),
|
|
556
|
+
};
|
|
557
|
+
writeVector("delegation-signature-verification.json", updated);
|
|
558
|
+
}
|
|
559
|
+
async function extractDelegationParentHash() {
|
|
560
|
+
const parent = {
|
|
561
|
+
auth_id: "f".repeat(64),
|
|
562
|
+
issuer: "oxdeai.policy-engine",
|
|
563
|
+
audience: "parent-agent",
|
|
564
|
+
intent_hash: "a".repeat(64),
|
|
565
|
+
state_hash: "b".repeat(64),
|
|
566
|
+
policy_id: "c".repeat(64),
|
|
567
|
+
decision: "ALLOW",
|
|
568
|
+
issued_at: 1_000_000,
|
|
569
|
+
expiry: 1_003_000,
|
|
570
|
+
alg: "Ed25519",
|
|
571
|
+
kid: "2026-01",
|
|
572
|
+
signature: "placeholder",
|
|
573
|
+
};
|
|
574
|
+
// Same object with keys in reverse insertion order — canonical JSON must produce identical output.
|
|
575
|
+
const parentReordered = {
|
|
576
|
+
signature: parent.signature,
|
|
577
|
+
kid: parent.kid,
|
|
578
|
+
alg: parent.alg,
|
|
579
|
+
expiry: parent.expiry,
|
|
580
|
+
issued_at: parent.issued_at,
|
|
581
|
+
decision: parent.decision,
|
|
582
|
+
policy_id: parent.policy_id,
|
|
583
|
+
state_hash: parent.state_hash,
|
|
584
|
+
intent_hash: parent.intent_hash,
|
|
585
|
+
audience: parent.audience,
|
|
586
|
+
issuer: parent.issuer,
|
|
587
|
+
auth_id: parent.auth_id,
|
|
588
|
+
};
|
|
589
|
+
const hash1 = sha256hexUtf8(canonicalJson(parent));
|
|
590
|
+
const hash2 = sha256hexUtf8(canonicalJson(parentReordered));
|
|
591
|
+
writeVector("delegation-parent-hash.json", {
|
|
592
|
+
version: "1.3.0",
|
|
593
|
+
description: "Vectors for delegation_parent_hash = SHA256(canonical_json(AuthorizationV1)). Key insertion order must not affect the result (invariant I1).",
|
|
594
|
+
hash_algorithm: "SHA256-utf8",
|
|
595
|
+
vectors: [
|
|
596
|
+
{
|
|
597
|
+
id: "delegation-ph-001",
|
|
598
|
+
description: "parent hash of a baseline AuthorizationV1 object",
|
|
599
|
+
input: { parent },
|
|
600
|
+
expected: { parent_auth_hash: hash1 },
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
id: "delegation-ph-002",
|
|
604
|
+
description: "same parent with keys in different insertion order - hash must be identical (I1)",
|
|
605
|
+
input: { parent: parentReordered },
|
|
606
|
+
invariant: "equals delegation-ph-001",
|
|
607
|
+
expected: { parent_auth_hash: hash2 },
|
|
608
|
+
},
|
|
609
|
+
],
|
|
610
|
+
});
|
|
611
|
+
}
|
|
409
612
|
async function main() {
|
|
410
613
|
console.log("Extracting conformance vectors against @oxdeai/core@1.0.0");
|
|
411
614
|
await extractIntentHash();
|
|
@@ -413,6 +616,9 @@ async function main() {
|
|
|
413
616
|
await extractSnapshotHash();
|
|
414
617
|
await extractAuditChain();
|
|
415
618
|
await extractEnvelopeVerification();
|
|
619
|
+
await extractDelegationParentHash();
|
|
620
|
+
await extractDelegationChainVerificationInputs();
|
|
621
|
+
await extractDelegationSignatureVerificationInputs();
|
|
416
622
|
console.log("done");
|
|
417
623
|
}
|
|
418
624
|
main().catch((err) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-vectors.js","sourceRoot":"","sources":["../../scripts/extract-vectors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extract-vectors.js","sourceRoot":"","sources":["../../scripts/extract-vectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export function repositoryMetadata(root: any): {
|
|
2
|
+
registry: any;
|
|
3
|
+
manifest: any;
|
|
4
|
+
provenance: {};
|
|
5
|
+
representations: {};
|
|
6
|
+
source: {
|
|
7
|
+
revision: string | null;
|
|
8
|
+
workingTreeDirty: boolean | null;
|
|
9
|
+
artifacts: any;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export function loadEvidenceMetadata(): any;
|
|
13
|
+
/**
|
|
14
|
+
* @param {{kind?: string, selections?: any[], metadata?: any, consumer?: string, runtime?: string}} options
|
|
15
|
+
* Each selection is supplied by a runner after execution, never by an issuer's
|
|
16
|
+
* claimed assurance level. Failed/pending cases cannot support coveredClaims.
|
|
17
|
+
*/
|
|
18
|
+
export function evidenceScope({ kind, selections, metadata, consumer, runtime }?: {
|
|
19
|
+
kind?: string;
|
|
20
|
+
selections?: any[];
|
|
21
|
+
metadata?: any;
|
|
22
|
+
consumer?: string;
|
|
23
|
+
runtime?: string;
|
|
24
|
+
}): {
|
|
25
|
+
version: number;
|
|
26
|
+
kind: string;
|
|
27
|
+
consumers: any;
|
|
28
|
+
corpora: {
|
|
29
|
+
id: any;
|
|
30
|
+
representation: any;
|
|
31
|
+
consumer: any;
|
|
32
|
+
runtime: any;
|
|
33
|
+
sha256: string;
|
|
34
|
+
registeredContent: boolean;
|
|
35
|
+
caseIds: any[];
|
|
36
|
+
passedCaseIds: any[];
|
|
37
|
+
matchedCaseIds: any[];
|
|
38
|
+
}[];
|
|
39
|
+
coveredClaims: {
|
|
40
|
+
id: any;
|
|
41
|
+
evidence: {
|
|
42
|
+
corpus: any;
|
|
43
|
+
representation: any;
|
|
44
|
+
caseId: any;
|
|
45
|
+
consumer: any;
|
|
46
|
+
runtime: any;
|
|
47
|
+
supports: any;
|
|
48
|
+
}[];
|
|
49
|
+
}[];
|
|
50
|
+
excludedClaims: any[];
|
|
51
|
+
corpusProvenance: {
|
|
52
|
+
specDerived?: {
|
|
53
|
+
caseId: string;
|
|
54
|
+
field: string;
|
|
55
|
+
value: string;
|
|
56
|
+
}[] | undefined;
|
|
57
|
+
remainder?: string | undefined;
|
|
58
|
+
corpus: any;
|
|
59
|
+
classification: any;
|
|
60
|
+
}[];
|
|
61
|
+
assumptions: string[];
|
|
62
|
+
limitations: string[];
|
|
63
|
+
source: any;
|
|
64
|
+
};
|
|
65
|
+
export const REGISTRY: "docs/verification/spec-claims/claims.json";
|
|
66
|
+
export const AUTHORITY: "docs/conformance/corpus-authority.json";
|
|
67
|
+
export const AUDIT: "docs/conformance/corpus-provenance-audit.md";
|
|
68
|
+
export function digest(x: any): string;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { execFileSync } from 'node:child_process';
|
|
4
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
5
|
+
import { dirname, resolve } from 'node:path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
export const REGISTRY = 'docs/verification/spec-claims/claims.json';
|
|
8
|
+
export const AUTHORITY = 'docs/conformance/corpus-authority.json';
|
|
9
|
+
export const AUDIT = 'docs/conformance/corpus-provenance-audit.md';
|
|
10
|
+
const sort = xs => [...new Set(xs)].sort();
|
|
11
|
+
const canonical = x => Array.isArray(x) ? x.map(canonical) : x && typeof x === 'object'
|
|
12
|
+
? Object.fromEntries(Object.keys(x).sort().map(k => [k, canonical(x[k])])) : x;
|
|
13
|
+
export const digest = x => createHash('sha256').update(typeof x === 'string' || Buffer.isBuffer(x) ? x : JSON.stringify(canonical(x))).digest('hex');
|
|
14
|
+
const vectors = data => Array.isArray(data) ? data : data.vectors ?? [{ ...data, id: data.auth_id }];
|
|
15
|
+
// Snapshot registry and provenance source, not generated expectations. Used live in
|
|
16
|
+
// the repository and bundled at package build time for installations without .git.
|
|
17
|
+
export function repositoryMetadata(root) {
|
|
18
|
+
const read = p => readFileSync(resolve(root, p), 'utf8');
|
|
19
|
+
const registryText = read(REGISTRY), manifestText = read(AUTHORITY), audit = read(AUDIT);
|
|
20
|
+
const registry = JSON.parse(registryText), manifest = JSON.parse(manifestText);
|
|
21
|
+
const artifacts = { [REGISTRY]: digest(registryText), [AUTHORITY]: digest(manifestText), [AUDIT]: digest(audit) };
|
|
22
|
+
const representations = {};
|
|
23
|
+
const provenance = {};
|
|
24
|
+
for (const c of manifest.corpora) {
|
|
25
|
+
const row = audit.split('\n').find(line => line.startsWith(`| [${c.id}](`));
|
|
26
|
+
const classification = row?.split(' | ')[4];
|
|
27
|
+
// No automatic promotion when future audit prose or inventory changes.
|
|
28
|
+
provenance[c.id] = classification?.startsWith('Mixed: spec-derived') && c.id === 'docs-canonicalization-v1'
|
|
29
|
+
? 'mixed' : 'reference-generated';
|
|
30
|
+
for (const r of c.representations) {
|
|
31
|
+
const text = read(r.path), data = JSON.parse(text);
|
|
32
|
+
artifacts[r.path] = digest(text);
|
|
33
|
+
representations[r.path] = { digest: digest(data), cases: Object.fromEntries(vectors(data).map(v => [v.id, digest(v)])) };
|
|
34
|
+
}
|
|
35
|
+
for (const p of [c.spec, ...c.supportFiles, ...c.consumers.map(x => x.path)])
|
|
36
|
+
artifacts[p] = digest(read(p));
|
|
37
|
+
}
|
|
38
|
+
let revision = null, workingTreeDirty = null;
|
|
39
|
+
try {
|
|
40
|
+
revision = execFileSync('git', ['rev-parse', 'HEAD'], { cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
41
|
+
workingTreeDirty = execFileSync('git', ['status', '--porcelain', '--untracked-files=normal'], { cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim().length > 0;
|
|
42
|
+
}
|
|
43
|
+
catch { /* artifact hashes still identify inputs */ }
|
|
44
|
+
return { registry, manifest, provenance, representations, source: { revision, workingTreeDirty, artifacts: canonical(artifacts) } };
|
|
45
|
+
}
|
|
46
|
+
export function loadEvidenceMetadata() {
|
|
47
|
+
// Use current metadata in this checkout, and the build snapshot when installed.
|
|
48
|
+
// Never use an unrelated enclosing checkout for an installed package.
|
|
49
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
50
|
+
const bundled = resolve(here, '../evidence-metadata.json');
|
|
51
|
+
for (let root = here; dirname(root) !== root; root = dirname(root)) {
|
|
52
|
+
const ownSource = resolve(root, 'packages/conformance/src');
|
|
53
|
+
const ownBuild = resolve(root, 'packages/conformance/dist/src');
|
|
54
|
+
if ((here === ownSource || here === ownBuild) && existsSync(resolve(root, REGISTRY)) && existsSync(resolve(root, AUTHORITY)))
|
|
55
|
+
return repositoryMetadata(root);
|
|
56
|
+
}
|
|
57
|
+
if (existsSync(bundled))
|
|
58
|
+
return JSON.parse(readFileSync(bundled, 'utf8'));
|
|
59
|
+
throw new Error('Evidence registry unavailable; build the conformance package before reporting results');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @param {{kind?: string, selections?: any[], metadata?: any, consumer?: string, runtime?: string}} options
|
|
63
|
+
* Each selection is supplied by a runner after execution, never by an issuer's
|
|
64
|
+
* claimed assurance level. Failed/pending cases cannot support coveredClaims.
|
|
65
|
+
*/
|
|
66
|
+
export function evidenceScope({ kind = 'execution', selections = [], metadata = loadEvidenceMetadata(), consumer = '', runtime = '' } = {}) {
|
|
67
|
+
const corpora = [];
|
|
68
|
+
for (const s of selections) {
|
|
69
|
+
const c = metadata.manifest.corpora.find(c => c.representations.some(r => r.path === s.representation));
|
|
70
|
+
if (!c)
|
|
71
|
+
throw new Error(`Unregistered corpus representation: ${s.representation}`);
|
|
72
|
+
const binding = c.consumers.find(x => x.path === s.consumer && x.runtime === s.runtime && x.representation === s.representation && x.role === 'verifier' && x.execution !== 'blocked');
|
|
73
|
+
const known = metadata.representations[s.representation];
|
|
74
|
+
const actual = new Map(vectors(s.data).map(v => [v.id, digest(v)]));
|
|
75
|
+
const caseIds = sort(s.caseIds ?? []);
|
|
76
|
+
const passedCaseIds = sort(s.passedCaseIds ?? []).filter(id => caseIds.includes(id));
|
|
77
|
+
const matchedCaseIds = passedCaseIds.filter(id => binding && known?.digest === digest(s.data) && known?.cases[id] === actual.get(id) && actual.has(id));
|
|
78
|
+
corpora.push({ id: c.id, representation: s.representation, consumer: s.consumer, runtime: s.runtime,
|
|
79
|
+
sha256: digest(s.data), registeredContent: known?.digest === digest(s.data), caseIds, passedCaseIds, matchedCaseIds });
|
|
80
|
+
}
|
|
81
|
+
corpora.sort((a, b) => JSON.stringify([a.id, a.consumer, a.runtime]).localeCompare(JSON.stringify([b.id, b.consumer, b.runtime]), 'en'));
|
|
82
|
+
const coveredClaims = [];
|
|
83
|
+
for (const claim of metadata.registry.claims) {
|
|
84
|
+
if (kind !== 'execution' || claim.recordType !== 'requirement' || claim.normativeState !== 'specified' || claim.evidenceState !== 'mapped' || claim.scopeDisposition !== 'in-scope' || claim.appliesWhen?.length || claim.maintainerDecisionRequired)
|
|
85
|
+
continue;
|
|
86
|
+
const evidence = [];
|
|
87
|
+
for (const ref of claim.evidence ?? []) {
|
|
88
|
+
if (ref.selector?.type !== 'vector' || !['vector', 'cross-runtime'].includes(ref.kind))
|
|
89
|
+
continue;
|
|
90
|
+
for (const c of corpora) {
|
|
91
|
+
if (ref.path === c.representation && ref.runner?.path === c.consumer && ref.runner?.runtime === c.runtime && c.matchedCaseIds.includes(ref.selector.id)) {
|
|
92
|
+
evidence.push({ corpus: c.id, representation: c.representation, caseId: ref.selector.id, consumer: c.consumer, runtime: c.runtime, supports: ref.supports });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (evidence.length)
|
|
97
|
+
coveredClaims.push({ id: claim.id, evidence: evidence.sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b), 'en')) });
|
|
98
|
+
}
|
|
99
|
+
coveredClaims.sort((a, b) => a.id.localeCompare(b.id, 'en'));
|
|
100
|
+
const covered = new Set(coveredClaims.map(c => c.id));
|
|
101
|
+
const excludedClaims = sort(metadata.registry.claims.map(c => c.id)).filter(id => !covered.has(id));
|
|
102
|
+
const corpusProvenance = sort(corpora.map(c => c.id)).map(id => ({
|
|
103
|
+
corpus: id, classification: metadata.provenance[id] ?? 'reference-generated',
|
|
104
|
+
...(metadata.provenance[id] === 'mixed' ? {
|
|
105
|
+
specDerived: ['i1-float-rejected', 'i3-string-timestamp-rejected', 'i4-float-timestamp-rejected'].map(caseId => ({ caseId, field: 'status', value: 'error' })),
|
|
106
|
+
remainder: 'reference-generated',
|
|
107
|
+
} : {}),
|
|
108
|
+
}));
|
|
109
|
+
return {
|
|
110
|
+
version: 1, kind,
|
|
111
|
+
consumers: canonical([...new Map([...corpora.map(c => ({ path: c.consumer, runtime: c.runtime })), ...(consumer ? [{ path: consumer, runtime }] : [])].map(c => [JSON.stringify(c), c])).values()].sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b), 'en'))),
|
|
112
|
+
corpora, coveredClaims, excludedClaims, corpusProvenance,
|
|
113
|
+
assumptions: ['The runner and its local execution record are trusted; this is unsigned evidence.', 'Registry mappings describe selected evidence, not exhaustive claim obligations.', 'Inputs and runner files remain unchanged during execution.'],
|
|
114
|
+
limitations: [
|
|
115
|
+
'PASS applies only to the declared surface and cases; excluded claims are not proven.',
|
|
116
|
+
'Covered claims mean only the listed supports statements, not all evidence levels or the entire claim.',
|
|
117
|
+
'Structural validation is not semantic proof; signatures do not establish truth or trusted premises.',
|
|
118
|
+
'Independent consumption and cross-language agreement do not establish independent expectation derivation.',
|
|
119
|
+
'Reference-generated expectations have no demonstrated independent normative authority.',
|
|
120
|
+
'Artifact verification does not prove non-bypassable enforcement, deployment properties or later execution stages.',
|
|
121
|
+
'Applicability conditions and deployment premises are not evaluated; no assurance class is inferred.',
|
|
122
|
+
'Corpus digests identify parsed JSON; source artifact digests identify exact recorded file bytes.',
|
|
123
|
+
],
|
|
124
|
+
source: metadata.source,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=evidenceScope.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidenceScope.mjs","sourceRoot":"","sources":["../../src/evidenceScope.mjs"],"names":[],"mappings":"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"}
|