@oxdeai/conformance 1.0.3 → 1.2.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 ADDED
@@ -0,0 +1,28 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@oxdeai/conformance` will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog.
6
+ This project follows Semantic Versioning.
7
+
8
+ ---
9
+
10
+ ## [1.2.0] - 2026-03-08
11
+
12
+ ### Added
13
+
14
+ - Protocol milestone vectors for non-forgeable verification.
15
+ - Authorization signature verification coverage (Ed25519, `alg`, `kid`, tamper/unknown-key/unknown-alg cases).
16
+ - Envelope signature verification coverage with deterministic fail-closed outcomes.
17
+
18
+ ### Changed
19
+
20
+ - Validator alignment with `verifyAuthorization(...)` and enhanced `verifyEnvelope(...)` behaviors.
21
+ - Deterministic conformance output expanded for v1.2 protocol-stack verification paths.
22
+
23
+ ### Notes
24
+
25
+ - `@oxdeai/conformance@1.2.0` is released together with:
26
+ - `@oxdeai/core@1.2.0`
27
+ - `@oxdeai/sdk@1.2.0`
28
+ - `@oxdeai/cli` remains on a separate tooling version line.
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TEST ONLY — DO NOT USE IN PRODUCTION.
3
+ *
4
+ * Deterministic Ed25519 fixture for conformance vectors/validation.
5
+ * This keypair is intentionally public test material and not a deployable secret.
6
+ */
7
+ export declare const TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION = "-----BEGIN PRIVATE KEY-----\nMC4CAQAwBQYDK2VwBCIEIBx0hBPi6cIYPo/JZbavNXDDLlfV1vj+IyS+R4oq2Zvx\n-----END PRIVATE KEY-----";
8
+ export declare const TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION = "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAWiMMGTYK7zzHwZXLzDpCshxAH6Lgx8gVsJaixePuY7g=\n-----END PUBLIC KEY-----";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * TEST ONLY — DO NOT USE IN PRODUCTION.
3
+ *
4
+ * Deterministic Ed25519 fixture for conformance vectors/validation.
5
+ * This keypair is intentionally public test material and not a deployable secret.
6
+ */
7
+ export const TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION = `-----BEGIN PRIVATE KEY-----
8
+ MC4CAQAwBQYDK2VwBCIEIBx0hBPi6cIYPo/JZbavNXDDLlfV1vj+IyS+R4oq2Zvx
9
+ -----END PRIVATE KEY-----`;
10
+ export const TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION = `-----BEGIN PUBLIC KEY-----
11
+ MCowBQYDK2VwAyEAWiMMGTYK7zzHwZXLzDpCshxAH6Lgx8gVsJaixePuY7g=
12
+ -----END PUBLIC KEY-----`;
13
+ //# sourceMappingURL=ed25519.test-only.fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519.test-only.fixture.js","sourceRoot":"","sources":["../../../src/fixtures/ed25519.test-only.fixture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,0DAA0D,GAAG;;0BAEhD,CAAC;AAE3B,MAAM,CAAC,MAAM,yDAAyD,GAAG;;yBAEhD,CAAC"}
@@ -1,7 +1,19 @@
1
1
  import { readFileSync } from "node:fs";
2
2
  import { resolve } from "node:path";
3
3
  import { createHash } from "node:crypto";
4
- import { encodeCanonicalState, encodeEnvelope, PolicyEngine, sha256HexFromJson, verifyAuditEvents, verifyEnvelope, verifySnapshot } from "@oxdeai/core";
4
+ import { encodeCanonicalState, encodeEnvelope, PolicyEngine, sha256HexFromJson, signAuthorizationEd25519, signEnvelopeEd25519, verifyAuthorization, verifyAuditEvents, verifyEnvelope, verifySnapshot } from "@oxdeai/core";
5
+ import { TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION, TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION, } from "./fixtures/ed25519.test-only.fixture.js";
6
+ const TEST_KEYSET = {
7
+ issuer: "oxdeai.policy-engine",
8
+ version: "1",
9
+ keys: [
10
+ {
11
+ kid: "2026-01",
12
+ alg: "Ed25519",
13
+ public_key: TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION
14
+ }
15
+ ]
16
+ };
5
17
  const CORE_ENGINE_SECRET = "test-secret";
6
18
  const CORE_POLICY_ID = "a".repeat(64);
7
19
  const INTENT_BINDING_FIELDS = [
@@ -192,7 +204,8 @@ const coreAdapter = {
192
204
  verifyAuditEvents(events, opts) {
193
205
  return verifyAuditEvents(events, opts);
194
206
  },
195
- verifyEnvelope
207
+ verifyEnvelope,
208
+ verifyAuthorization
196
209
  };
197
210
  function loadJson(name) {
198
211
  const p = resolve(process.cwd(), "vectors", name);
@@ -251,6 +264,94 @@ function validateAuthorizationVectors(ctx, adapter) {
251
264
  eq(ctx, `${id} signature`, authorization.engine_signature, String(expected.signature));
252
265
  }
253
266
  }
267
+ function validateAuthorizationVerificationVectors(ctx, adapter) {
268
+ const file = loadJson("authorization-verification.json");
269
+ for (const v of file.vectors) {
270
+ const id = String(v.id);
271
+ const input = asRecord(v.input);
272
+ const auth = {
273
+ alg: "HMAC-SHA256",
274
+ kid: "legacy",
275
+ signature: "legacy-placeholder",
276
+ ...asRecord(input.auth)
277
+ };
278
+ const opts = (input.opts ? asRecord(input.opts) : {});
279
+ const expected = asRecord(v.expected);
280
+ const got = adapter.verifyAuthorization(auth, opts);
281
+ eq(ctx, `${id} status`, got.status, String(expected.status));
282
+ eq(ctx, `${id} violations`, got.violations, expected.violations ?? []);
283
+ }
284
+ }
285
+ function makeSignedAuthorizationBase(now = 1730000000) {
286
+ return signAuthorizationEd25519({
287
+ auth_id: "f".repeat(64),
288
+ issuer: "oxdeai.policy-engine",
289
+ audience: "merchant-gateway",
290
+ intent_hash: "a".repeat(64),
291
+ state_hash: "b".repeat(64),
292
+ policy_id: "c".repeat(64),
293
+ decision: "ALLOW",
294
+ issued_at: now,
295
+ expiry: now + 60,
296
+ kid: "2026-01"
297
+ }, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
298
+ }
299
+ function validateAuthorizationSignatureVectors(ctx, adapter) {
300
+ const file = loadJson("authorization-signature-verification.json");
301
+ for (const v of file.vectors) {
302
+ const id = String(v.id);
303
+ const mode = String(v.mode);
304
+ const expected = asRecord(v.expected);
305
+ let auth = makeSignedAuthorizationBase();
306
+ const opts = {
307
+ now: 1730000010,
308
+ expectedIssuer: "oxdeai.policy-engine",
309
+ expectedAudience: "merchant-gateway",
310
+ expectedPolicyId: "c".repeat(64),
311
+ trustedKeySets: TEST_KEYSET,
312
+ requireSignatureVerification: true,
313
+ consumedAuthIds: []
314
+ };
315
+ if (mode === "invalid-signature") {
316
+ auth = { ...auth, signature: `${auth.signature.slice(0, -2)}aa` };
317
+ }
318
+ else if (mode === "wrong-kid") {
319
+ auth = { ...auth, kid: "unknown-kid" };
320
+ }
321
+ else if (mode === "wrong-issuer") {
322
+ auth = { ...auth, issuer: "other-issuer" };
323
+ }
324
+ else if (mode === "wrong-audience") {
325
+ const { signature: _sig, alg: _alg, ...unsigned } = auth;
326
+ auth = signAuthorizationEd25519({
327
+ ...unsigned,
328
+ audience: "other-audience"
329
+ }, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
330
+ opts.expectedAudience = "merchant-gateway";
331
+ }
332
+ else if (mode === "tampered-field") {
333
+ auth = { ...auth, state_hash: "d".repeat(64) };
334
+ }
335
+ else if (mode === "expired") {
336
+ const { signature: _sig, alg: _alg, ...unsigned } = auth;
337
+ auth = signAuthorizationEd25519({
338
+ ...unsigned,
339
+ issued_at: 100,
340
+ expiry: 110
341
+ }, TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION);
342
+ opts.now = 120;
343
+ }
344
+ else if (mode === "replay") {
345
+ opts.consumedAuthIds = [auth.auth_id];
346
+ }
347
+ else if (mode === "unknown-alg") {
348
+ auth = { ...auth, alg: "Unknown" };
349
+ }
350
+ const got = adapter.verifyAuthorization(auth, opts);
351
+ eq(ctx, `${id} status`, got.status, String(expected.status));
352
+ eq(ctx, `${id} violations`, got.violations, expected.violations ?? []);
353
+ }
354
+ }
254
355
  function validateSnapshotVectors(ctx, adapter) {
255
356
  const file = loadJson("snapshot-hash.json");
256
357
  for (const v of file.vectors) {
@@ -383,6 +484,63 @@ function validateEnvelopeVectors(ctx, adapter) {
383
484
  eq(ctx, `${id} violations`, got.violations, expected.violations ?? []);
384
485
  }
385
486
  }
487
+ function validateEnvelopeSignatureVectors(ctx, adapter) {
488
+ const file = loadJson("envelope-signature-verification.json");
489
+ const engine = makeEngine();
490
+ const state = makeBaseState();
491
+ const bytes = encodeCanonicalState(engine.exportState(state));
492
+ const policyId = engine.computePolicyId();
493
+ const events = [
494
+ {
495
+ type: "INTENT_RECEIVED",
496
+ intent_hash: "11".repeat(32),
497
+ agent_id: "agent-1",
498
+ timestamp: 100,
499
+ policyId
500
+ },
501
+ {
502
+ type: "STATE_CHECKPOINT",
503
+ stateHash: verifySnapshot(bytes, { expectedPolicyId: policyId }).stateHash,
504
+ timestamp: 101,
505
+ policyId
506
+ }
507
+ ];
508
+ const signed = signEnvelopeEd25519({
509
+ formatVersion: 1,
510
+ snapshot: bytes,
511
+ events
512
+ }, { issuer: "oxdeai.policy-engine", kid: "2026-01", privateKeyPem: TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION });
513
+ for (const v of file.vectors) {
514
+ const id = String(v.id);
515
+ const mode = String(v.mode);
516
+ const expected = asRecord(v.expected);
517
+ let env = structuredClone(signed);
518
+ const opts = {
519
+ mode: "strict",
520
+ expectedPolicyId: policyId,
521
+ expectedIssuer: "oxdeai.policy-engine",
522
+ trustedKeySets: TEST_KEYSET,
523
+ requireSignatureVerification: true,
524
+ now: 1730000010
525
+ };
526
+ if (mode === "tampered-envelope") {
527
+ env = { ...env, events: [...env.events, { type: "DECISION", intent_hash: "11".repeat(32), decision: "ALLOW", reasons: [], policy_version: "v1", timestamp: 102, policyId }] };
528
+ }
529
+ else if (mode === "unknown-alg") {
530
+ env = { ...env, alg: "Unknown" };
531
+ }
532
+ else if (mode === "unknown-kid") {
533
+ env = { ...env, kid: "missing-kid" };
534
+ }
535
+ else if (mode === "malformed-signature") {
536
+ env = { ...env, signature: "!!!not-base64!!!" };
537
+ }
538
+ const wire = encodeEnvelope(env);
539
+ const got = adapter.verifyEnvelope(wire, opts);
540
+ eq(ctx, `${id} status`, got.status, String(expected.status));
541
+ eq(ctx, `${id} violations`, got.violations, expected.violations ?? []);
542
+ }
543
+ }
386
544
  function buildAuditVerificationCases(adapter) {
387
545
  const expectedPolicyId = "a".repeat(64);
388
546
  const mismatchPolicyId = "b".repeat(64);
@@ -487,10 +645,13 @@ function main() {
487
645
  console.log(`Running conformance validation with ${adapter.name}`);
488
646
  validateIntentHashVectors(ctx, adapter);
489
647
  validateAuthorizationVectors(ctx, adapter);
648
+ validateAuthorizationVerificationVectors(ctx, adapter);
649
+ validateAuthorizationSignatureVectors(ctx, adapter);
490
650
  validateSnapshotVectors(ctx, adapter);
491
651
  validateAuditChainVectors(ctx, adapter);
492
652
  validateAuditVerificationVectors(ctx, adapter);
493
653
  validateEnvelopeVectors(ctx, adapter);
654
+ validateEnvelopeSignatureVectors(ctx, adapter);
494
655
  if (ctx.failures.length > 0) {
495
656
  console.error(`\nConformance failed: ${ctx.failures.length} assertion(s)`);
496
657
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxdeai/conformance",
3
- "version": "1.0.3",
3
+ "version": "1.2.0",
4
4
  "description": "Conformance test suite for OxDeAI Core implementations, ensuring compliance with the deterministic policy engine protocol through standardized test cases and validation tools.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "publishConfig": {
33
33
  "dependencies": {
34
- "@oxdeai/core": "^1.0.3"
34
+ "@oxdeai/core": "^1.2.0"
35
35
  }
36
36
  }
37
37
  }
@@ -0,0 +1,11 @@
1
+ # Conformance Crypto Fixtures
2
+
3
+ TEST ONLY — DO NOT USE IN PRODUCTION.
4
+
5
+ This directory contains deterministic cryptographic fixtures used only for conformance vector generation/validation.
6
+
7
+ Rules:
8
+
9
+ - Production private keys must never be committed.
10
+ - Fixtures are allowed only in explicit fixture paths and must be labeled non-production.
11
+ - Deterministic fixtures should be minimized and isolated to test/conformance scope.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * TEST ONLY — DO NOT USE IN PRODUCTION.
3
+ *
4
+ * Deterministic Ed25519 fixture for conformance vectors/validation.
5
+ * This keypair is intentionally public test material and not a deployable secret.
6
+ */
7
+
8
+ export const TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION = `-----BEGIN PRIVATE KEY-----
9
+ MC4CAQAwBQYDK2VwBCIEIBx0hBPi6cIYPo/JZbavNXDDLlfV1vj+IyS+R4oq2Zvx
10
+ -----END PRIVATE KEY-----`;
11
+
12
+ export const TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION = `-----BEGIN PUBLIC KEY-----
13
+ MCowBQYDK2VwAyEAWiMMGTYK7zzHwZXLzDpCshxAH6Lgx8gVsJaixePuY7g=
14
+ -----END PUBLIC KEY-----`;
package/src/validate.ts CHANGED
@@ -6,16 +6,34 @@ import {
6
6
  encodeEnvelope,
7
7
  PolicyEngine,
8
8
  sha256HexFromJson,
9
+ signAuthorizationEd25519,
10
+ signEnvelopeEd25519,
11
+ verifyAuthorization,
9
12
  verifyAuditEvents,
10
13
  verifyEnvelope,
11
14
  verifySnapshot
12
15
  } from "@oxdeai/core";
13
- import type { Intent, State, VerificationResult } from "@oxdeai/core";
16
+ import type { AuthorizationV1, Intent, KeySet, State, VerificationResult } from "@oxdeai/core";
17
+ import {
18
+ TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION,
19
+ TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION,
20
+ } from "./fixtures/ed25519.test-only.fixture.js";
14
21
 
15
22
  type JsonRecord = Record<string, unknown>;
16
23
 
17
24
  type AuthorizationLike = {
25
+ auth_id: string;
26
+ issuer: string;
27
+ audience: string;
18
28
  intent_hash: string;
29
+ state_hash: string;
30
+ policy_id: string;
31
+ decision: "ALLOW" | "DENY";
32
+ issued_at: number;
33
+ expiry: number;
34
+ alg: "Ed25519" | "HMAC-SHA256";
35
+ kid: string;
36
+ signature: string;
19
37
  state_snapshot_hash: string;
20
38
  expires_at: number;
21
39
  engine_signature: string;
@@ -34,7 +52,36 @@ type ConformanceAdapter = {
34
52
  events: unknown[],
35
53
  opts?: { expectedPolicyId?: string; mode?: "strict" | "best-effort"; requireStateAnchors?: boolean }
36
54
  ): VerificationResult;
37
- verifyEnvelope(bytes: Uint8Array, opts?: { expectedPolicyId?: string; mode?: "strict" | "best-effort" }): VerificationResult;
55
+ verifyEnvelope(bytes: Uint8Array, opts?: {
56
+ expectedPolicyId?: string;
57
+ mode?: "strict" | "best-effort";
58
+ expectedIssuer?: string;
59
+ trustedKeySets?: KeySet | readonly KeySet[];
60
+ requireSignatureVerification?: boolean;
61
+ now?: number;
62
+ }): VerificationResult;
63
+ verifyAuthorization(auth: AuthorizationV1, opts?: {
64
+ now?: number;
65
+ expectedIssuer?: string;
66
+ expectedAudience?: string;
67
+ expectedPolicyId?: string;
68
+ consumedAuthIds?: readonly string[];
69
+ trustedKeySets?: KeySet | readonly KeySet[];
70
+ requireSignatureVerification?: boolean;
71
+ legacyHmacSecret?: string;
72
+ }): VerificationResult;
73
+ };
74
+
75
+ const TEST_KEYSET: KeySet = {
76
+ issuer: "oxdeai.policy-engine",
77
+ version: "1",
78
+ keys: [
79
+ {
80
+ kid: "2026-01",
81
+ alg: "Ed25519",
82
+ public_key: TEST_ONLY_ED25519_PUBLIC_KEY_PEM_DO_NOT_USE_IN_PRODUCTION
83
+ }
84
+ ]
38
85
  };
39
86
 
40
87
  const CORE_ENGINE_SECRET = "test-secret";
@@ -240,7 +287,8 @@ const coreAdapter: ConformanceAdapter = {
240
287
  verifyAuditEvents(events, opts) {
241
288
  return verifyAuditEvents(events as any, opts);
242
289
  },
243
- verifyEnvelope
290
+ verifyEnvelope,
291
+ verifyAuthorization
244
292
  };
245
293
 
246
294
  function loadJson<T>(name: string): T {
@@ -317,6 +365,110 @@ function validateAuthorizationVectors(ctx: CheckCtx, adapter: ConformanceAdapter
317
365
  }
318
366
  }
319
367
 
368
+ function validateAuthorizationVerificationVectors(ctx: CheckCtx, adapter: ConformanceAdapter): void {
369
+ const file = loadJson<VectorFile>("authorization-verification.json");
370
+
371
+ for (const v of file.vectors) {
372
+ const id = String(v.id);
373
+ const input = asRecord(v.input);
374
+ const auth = {
375
+ alg: "HMAC-SHA256",
376
+ kid: "legacy",
377
+ signature: "legacy-placeholder",
378
+ ...(asRecord(input.auth) as Record<string, unknown>)
379
+ } as AuthorizationV1;
380
+ const opts = (input.opts ? asRecord(input.opts) : {}) as {
381
+ now?: number;
382
+ expectedIssuer?: string;
383
+ expectedAudience?: string;
384
+ expectedPolicyId?: string;
385
+ consumedAuthIds?: readonly string[];
386
+ };
387
+ const expected = asRecord(v.expected);
388
+ const got = adapter.verifyAuthorization(auth, opts);
389
+
390
+ eq(ctx, `${id} status`, got.status, String(expected.status));
391
+ eq(ctx, `${id} violations`, got.violations, expected.violations ?? []);
392
+ }
393
+ }
394
+
395
+ function makeSignedAuthorizationBase(now = 1730000000): AuthorizationV1 {
396
+ return signAuthorizationEd25519(
397
+ {
398
+ auth_id: "f".repeat(64),
399
+ issuer: "oxdeai.policy-engine",
400
+ audience: "merchant-gateway",
401
+ intent_hash: "a".repeat(64),
402
+ state_hash: "b".repeat(64),
403
+ policy_id: "c".repeat(64),
404
+ decision: "ALLOW",
405
+ issued_at: now,
406
+ expiry: now + 60,
407
+ kid: "2026-01"
408
+ },
409
+ TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION
410
+ );
411
+ }
412
+
413
+ function validateAuthorizationSignatureVectors(ctx: CheckCtx, adapter: ConformanceAdapter): void {
414
+ const file = loadJson<VectorFile>("authorization-signature-verification.json");
415
+
416
+ for (const v of file.vectors) {
417
+ const id = String(v.id);
418
+ const mode = String(v.mode);
419
+ const expected = asRecord(v.expected);
420
+ let auth = makeSignedAuthorizationBase();
421
+ const opts: Parameters<ConformanceAdapter["verifyAuthorization"]>[1] = {
422
+ now: 1730000010,
423
+ expectedIssuer: "oxdeai.policy-engine",
424
+ expectedAudience: "merchant-gateway",
425
+ expectedPolicyId: "c".repeat(64),
426
+ trustedKeySets: TEST_KEYSET,
427
+ requireSignatureVerification: true,
428
+ consumedAuthIds: []
429
+ };
430
+
431
+ if (mode === "invalid-signature") {
432
+ auth = { ...auth, signature: `${auth.signature.slice(0, -2)}aa` };
433
+ } else if (mode === "wrong-kid") {
434
+ auth = { ...auth, kid: "unknown-kid" };
435
+ } else if (mode === "wrong-issuer") {
436
+ auth = { ...auth, issuer: "other-issuer" };
437
+ } else if (mode === "wrong-audience") {
438
+ const { signature: _sig, alg: _alg, ...unsigned } = auth;
439
+ auth = signAuthorizationEd25519(
440
+ {
441
+ ...unsigned,
442
+ audience: "other-audience"
443
+ },
444
+ TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION
445
+ );
446
+ opts.expectedAudience = "merchant-gateway";
447
+ } else if (mode === "tampered-field") {
448
+ auth = { ...auth, state_hash: "d".repeat(64) };
449
+ } else if (mode === "expired") {
450
+ const { signature: _sig, alg: _alg, ...unsigned } = auth;
451
+ auth = signAuthorizationEd25519(
452
+ {
453
+ ...unsigned,
454
+ issued_at: 100,
455
+ expiry: 110
456
+ },
457
+ TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION
458
+ );
459
+ opts.now = 120;
460
+ } else if (mode === "replay") {
461
+ opts.consumedAuthIds = [auth.auth_id];
462
+ } else if (mode === "unknown-alg") {
463
+ auth = { ...auth, alg: "Unknown" as any };
464
+ }
465
+
466
+ const got = adapter.verifyAuthorization(auth, opts);
467
+ eq(ctx, `${id} status`, got.status, String(expected.status));
468
+ eq(ctx, `${id} violations`, got.violations, expected.violations ?? []);
469
+ }
470
+ }
471
+
320
472
  function validateSnapshotVectors(ctx: CheckCtx, adapter: ConformanceAdapter): void {
321
473
  const file = loadJson<VectorFile>("snapshot-hash.json");
322
474
 
@@ -459,6 +611,72 @@ function validateEnvelopeVectors(ctx: CheckCtx, adapter: ConformanceAdapter): vo
459
611
  }
460
612
  }
461
613
 
614
+ function validateEnvelopeSignatureVectors(ctx: CheckCtx, adapter: ConformanceAdapter): void {
615
+ const file = loadJson<VectorFile>("envelope-signature-verification.json");
616
+ const engine = makeEngine();
617
+ const state = makeBaseState();
618
+ const bytes = encodeCanonicalState(engine.exportState(state));
619
+ const policyId = engine.computePolicyId();
620
+ const events = [
621
+ {
622
+ type: "INTENT_RECEIVED" as const,
623
+ intent_hash: "11".repeat(32),
624
+ agent_id: "agent-1",
625
+ timestamp: 100,
626
+ policyId
627
+ },
628
+ {
629
+ type: "STATE_CHECKPOINT" as const,
630
+ stateHash: verifySnapshot(bytes, { expectedPolicyId: policyId }).stateHash!,
631
+ timestamp: 101,
632
+ policyId
633
+ }
634
+ ];
635
+ const signed = signEnvelopeEd25519(
636
+ {
637
+ formatVersion: 1,
638
+ snapshot: bytes,
639
+ events
640
+ },
641
+ { issuer: "oxdeai.policy-engine", kid: "2026-01", privateKeyPem: TEST_ONLY_ED25519_PRIVATE_KEY_PEM_DO_NOT_USE_IN_PRODUCTION }
642
+ );
643
+
644
+ for (const v of file.vectors) {
645
+ const id = String(v.id);
646
+ const mode = String(v.mode);
647
+ const expected = asRecord(v.expected);
648
+ let env = structuredClone(signed);
649
+ const opts: Parameters<ConformanceAdapter["verifyEnvelope"]>[1] & {
650
+ trustedKeySets?: KeySet;
651
+ expectedIssuer?: string;
652
+ requireSignatureVerification?: boolean;
653
+ now?: number;
654
+ } = {
655
+ mode: "strict",
656
+ expectedPolicyId: policyId,
657
+ expectedIssuer: "oxdeai.policy-engine",
658
+ trustedKeySets: TEST_KEYSET,
659
+ requireSignatureVerification: true,
660
+ now: 1730000010
661
+ };
662
+
663
+ if (mode === "tampered-envelope") {
664
+ env = { ...env, events: [...env.events, { type: "DECISION", intent_hash: "11".repeat(32), decision: "ALLOW", reasons: [], policy_version: "v1", timestamp: 102, policyId }] as any };
665
+ } else if (mode === "unknown-alg") {
666
+ env = { ...env, alg: "Unknown" as any };
667
+ } else if (mode === "unknown-kid") {
668
+ env = { ...env, kid: "missing-kid" };
669
+ } else if (mode === "malformed-signature") {
670
+ env = { ...env, signature: "!!!not-base64!!!" };
671
+ }
672
+
673
+ const wire = encodeEnvelope(env as any);
674
+ const got = adapter.verifyEnvelope(wire, opts as any);
675
+ eq(ctx, `${id} status`, got.status, String(expected.status));
676
+ eq(ctx, `${id} violations`, got.violations, expected.violations ?? []);
677
+ }
678
+ }
679
+
462
680
  function buildAuditVerificationCases(
463
681
  adapter: ConformanceAdapter
464
682
  ): Array<{ status: string; violations: unknown[] }> {
@@ -591,10 +809,13 @@ function main(): void {
591
809
 
592
810
  validateIntentHashVectors(ctx, adapter);
593
811
  validateAuthorizationVectors(ctx, adapter);
812
+ validateAuthorizationVerificationVectors(ctx, adapter);
813
+ validateAuthorizationSignatureVectors(ctx, adapter);
594
814
  validateSnapshotVectors(ctx, adapter);
595
815
  validateAuditChainVectors(ctx, adapter);
596
816
  validateAuditVerificationVectors(ctx, adapter);
597
817
  validateEnvelopeVectors(ctx, adapter);
818
+ validateEnvelopeSignatureVectors(ctx, adapter);
598
819
 
599
820
  if (ctx.failures.length > 0) {
600
821
  console.error(`\nConformance failed: ${ctx.failures.length} assertion(s)`);
@@ -0,0 +1,121 @@
1
+ {
2
+ "version": "1.2.0",
3
+ "vectors": [
4
+ {
5
+ "id": "authorization-sig-001",
6
+ "mode": "valid",
7
+ "expected": {
8
+ "status": "ok",
9
+ "violations": []
10
+ }
11
+ },
12
+ {
13
+ "id": "authorization-sig-002",
14
+ "mode": "invalid-signature",
15
+ "expected": {
16
+ "status": "invalid",
17
+ "violations": [
18
+ {
19
+ "code": "AUTH_SIGNATURE_INVALID",
20
+ "message": "signature verification failed"
21
+ }
22
+ ]
23
+ }
24
+ },
25
+ {
26
+ "id": "authorization-sig-003",
27
+ "mode": "wrong-kid",
28
+ "expected": {
29
+ "status": "invalid",
30
+ "violations": [
31
+ {
32
+ "code": "AUTH_KID_UNKNOWN",
33
+ "message": "kid not found for issuer/alg"
34
+ }
35
+ ]
36
+ }
37
+ },
38
+ {
39
+ "id": "authorization-sig-004",
40
+ "mode": "wrong-issuer",
41
+ "expected": {
42
+ "status": "invalid",
43
+ "violations": [
44
+ {
45
+ "code": "AUTH_ISSUER_MISMATCH",
46
+ "message": "issuer does not match expectedIssuer"
47
+ },
48
+ {
49
+ "code": "AUTH_KID_UNKNOWN",
50
+ "message": "kid not found for issuer/alg"
51
+ }
52
+ ]
53
+ }
54
+ },
55
+ {
56
+ "id": "authorization-sig-005",
57
+ "mode": "wrong-audience",
58
+ "expected": {
59
+ "status": "invalid",
60
+ "violations": [
61
+ {
62
+ "code": "AUTH_AUDIENCE_MISMATCH",
63
+ "message": "audience does not match expectedAudience"
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ {
69
+ "id": "authorization-sig-006",
70
+ "mode": "tampered-field",
71
+ "expected": {
72
+ "status": "invalid",
73
+ "violations": [
74
+ {
75
+ "code": "AUTH_SIGNATURE_INVALID",
76
+ "message": "signature verification failed"
77
+ }
78
+ ]
79
+ }
80
+ },
81
+ {
82
+ "id": "authorization-sig-007",
83
+ "mode": "expired",
84
+ "expected": {
85
+ "status": "invalid",
86
+ "violations": [
87
+ {
88
+ "code": "AUTH_EXPIRED",
89
+ "message": "authorization has expired"
90
+ }
91
+ ]
92
+ }
93
+ },
94
+ {
95
+ "id": "authorization-sig-008",
96
+ "mode": "replay",
97
+ "expected": {
98
+ "status": "invalid",
99
+ "violations": [
100
+ {
101
+ "code": "AUTH_REPLAY",
102
+ "message": "auth_id has already been consumed"
103
+ }
104
+ ]
105
+ }
106
+ },
107
+ {
108
+ "id": "authorization-sig-009",
109
+ "mode": "unknown-alg",
110
+ "expected": {
111
+ "status": "invalid",
112
+ "violations": [
113
+ {
114
+ "code": "AUTH_ALG_UNSUPPORTED",
115
+ "message": "unsupported signature algorithm"
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ ]
121
+ }
@@ -0,0 +1,237 @@
1
+ {
2
+ "version": "1.1.0",
3
+ "vectors": [
4
+ {
5
+ "id": "authorization-verify-001",
6
+ "input": {
7
+ "auth": {
8
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
9
+ "issuer": "oxdeai.policy-engine",
10
+ "audience": "merchant-gateway",
11
+ "intent_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
12
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
13
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
14
+ "decision": "ALLOW",
15
+ "issued_at": 100,
16
+ "expiry": 160
17
+ },
18
+ "opts": {
19
+ "now": 120,
20
+ "expectedIssuer": "oxdeai.policy-engine",
21
+ "expectedAudience": "merchant-gateway",
22
+ "expectedPolicyId": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
23
+ "consumedAuthIds": []
24
+ }
25
+ },
26
+ "expected": {
27
+ "status": "ok",
28
+ "violations": []
29
+ }
30
+ },
31
+ {
32
+ "id": "authorization-verify-002",
33
+ "input": {
34
+ "auth": {
35
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
36
+ "issuer": "oxdeai.policy-engine",
37
+ "audience": "merchant-gateway",
38
+ "intent_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
39
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
40
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
41
+ "decision": "ALLOW",
42
+ "issued_at": 100,
43
+ "expiry": 120
44
+ },
45
+ "opts": {
46
+ "now": 120
47
+ }
48
+ },
49
+ "expected": {
50
+ "status": "invalid",
51
+ "violations": [
52
+ {
53
+ "code": "AUTH_EXPIRED",
54
+ "message": "authorization has expired"
55
+ }
56
+ ]
57
+ }
58
+ },
59
+ {
60
+ "id": "authorization-verify-003",
61
+ "input": {
62
+ "auth": {
63
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
64
+ "issuer": "oxdeai.policy-engine",
65
+ "audience": "merchant-gateway",
66
+ "intent_hash": "",
67
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
68
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
69
+ "decision": "ALLOW",
70
+ "expiry": 160
71
+ },
72
+ "opts": {
73
+ "now": 110
74
+ }
75
+ },
76
+ "expected": {
77
+ "status": "invalid",
78
+ "violations": [
79
+ {
80
+ "code": "AUTH_MISSING_FIELD",
81
+ "message": "intent_hash is required"
82
+ },
83
+ {
84
+ "code": "AUTH_MISSING_FIELD",
85
+ "message": "issued_at must be integer unix seconds"
86
+ }
87
+ ]
88
+ }
89
+ },
90
+ {
91
+ "id": "authorization-verify-004",
92
+ "input": {
93
+ "auth": {
94
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
95
+ "issuer": "oxdeai.policy-engine",
96
+ "audience": "merchant-gateway",
97
+ "intent_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
98
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
99
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
100
+ "decision": "DENY",
101
+ "issued_at": 100,
102
+ "expiry": 160
103
+ },
104
+ "opts": {
105
+ "now": 110
106
+ }
107
+ },
108
+ "expected": {
109
+ "status": "invalid",
110
+ "violations": [
111
+ {
112
+ "code": "AUTH_DECISION_INVALID",
113
+ "message": "authorization decision must be ALLOW"
114
+ }
115
+ ]
116
+ }
117
+ },
118
+ {
119
+ "id": "authorization-verify-005",
120
+ "input": {
121
+ "auth": {
122
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
123
+ "issuer": "oxdeai.policy-engine",
124
+ "audience": "merchant-gateway",
125
+ "intent_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
126
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
127
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
128
+ "decision": "ALLOW",
129
+ "issued_at": 100,
130
+ "expiry": 160
131
+ },
132
+ "opts": {
133
+ "now": 110,
134
+ "consumedAuthIds": [
135
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
136
+ ]
137
+ }
138
+ },
139
+ "expected": {
140
+ "status": "invalid",
141
+ "violations": [
142
+ {
143
+ "code": "AUTH_REPLAY",
144
+ "message": "auth_id has already been consumed"
145
+ }
146
+ ]
147
+ }
148
+ },
149
+ {
150
+ "id": "authorization-verify-006",
151
+ "input": {
152
+ "auth": {
153
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
154
+ "issuer": "oxdeai.policy-engine",
155
+ "audience": "merchant-gateway",
156
+ "intent_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
157
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
158
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
159
+ "decision": "ALLOW",
160
+ "issued_at": 100,
161
+ "expiry": 160
162
+ },
163
+ "opts": {
164
+ "now": 110,
165
+ "expectedAudience": "vault-service"
166
+ }
167
+ },
168
+ "expected": {
169
+ "status": "invalid",
170
+ "violations": [
171
+ {
172
+ "code": "AUTH_AUDIENCE_MISMATCH",
173
+ "message": "audience does not match expectedAudience"
174
+ }
175
+ ]
176
+ }
177
+ },
178
+ {
179
+ "id": "authorization-verify-007",
180
+ "input": {
181
+ "auth": {
182
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
183
+ "issuer": "oxdeai.policy-engine",
184
+ "audience": "merchant-gateway",
185
+ "intent_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
186
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
187
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
188
+ "decision": "ALLOW",
189
+ "issued_at": 100,
190
+ "expiry": 160
191
+ },
192
+ "opts": {
193
+ "now": 110,
194
+ "expectedIssuer": "other-issuer"
195
+ }
196
+ },
197
+ "expected": {
198
+ "status": "invalid",
199
+ "violations": [
200
+ {
201
+ "code": "AUTH_ISSUER_MISMATCH",
202
+ "message": "issuer does not match expectedIssuer"
203
+ }
204
+ ]
205
+ }
206
+ },
207
+ {
208
+ "id": "authorization-verify-008",
209
+ "input": {
210
+ "auth": {
211
+ "auth_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
212
+ "issuer": "oxdeai.policy-engine",
213
+ "audience": "merchant-gateway",
214
+ "intent_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
215
+ "state_hash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
216
+ "policy_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
217
+ "decision": "ALLOW",
218
+ "issued_at": 100,
219
+ "expiry": 160
220
+ },
221
+ "opts": {
222
+ "now": 110,
223
+ "expectedPolicyId": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
224
+ }
225
+ },
226
+ "expected": {
227
+ "status": "invalid",
228
+ "violations": [
229
+ {
230
+ "code": "AUTH_POLICY_ID_MISMATCH",
231
+ "message": "policy_id does not match expectedPolicyId"
232
+ }
233
+ ]
234
+ }
235
+ }
236
+ ]
237
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "version": "1.2.0",
3
+ "vectors": [
4
+ {
5
+ "id": "envelope-sig-001",
6
+ "mode": "valid",
7
+ "expected": {
8
+ "status": "ok",
9
+ "violations": []
10
+ }
11
+ },
12
+ {
13
+ "id": "envelope-sig-002",
14
+ "mode": "tampered-envelope",
15
+ "expected": {
16
+ "status": "invalid",
17
+ "violations": [
18
+ {
19
+ "code": "ENVELOPE_SIGNATURE_INVALID",
20
+ "message": "envelope signature verification failed"
21
+ }
22
+ ]
23
+ }
24
+ },
25
+ {
26
+ "id": "envelope-sig-003",
27
+ "mode": "unknown-alg",
28
+ "expected": {
29
+ "status": "invalid",
30
+ "violations": [
31
+ {
32
+ "code": "ENVELOPE_MALFORMED",
33
+ "message": "invalid verification envelope: $.alg: must be Ed25519"
34
+ }
35
+ ]
36
+ }
37
+ },
38
+ {
39
+ "id": "envelope-sig-004",
40
+ "mode": "unknown-kid",
41
+ "expected": {
42
+ "status": "invalid",
43
+ "violations": [
44
+ {
45
+ "code": "ENVELOPE_KID_UNKNOWN",
46
+ "message": "envelope kid not found for issuer/alg"
47
+ }
48
+ ]
49
+ }
50
+ },
51
+ {
52
+ "id": "envelope-sig-005",
53
+ "mode": "malformed-signature",
54
+ "expected": {
55
+ "status": "invalid",
56
+ "violations": [
57
+ {
58
+ "code": "ENVELOPE_SIGNATURE_INVALID",
59
+ "message": "envelope signature verification failed"
60
+ }
61
+ ]
62
+ }
63
+ }
64
+ ]
65
+ }
@@ -7,8 +7,8 @@
7
7
  "expected": {
8
8
  "status": "ok",
9
9
  "policyId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
10
- "stateHash": "bba76624cc41d3642c6e789c12050a61b1caa063ad51aa7558d78f408c994b68",
11
- "auditHeadHash": "004d44ef83c4503e0117ae66c37c0a3684ad13c2b41b01c8a4e8ef2f73990a19",
10
+ "stateHash": "41f336cb4677d73b2c494e3a8aa6d89196cc603309742227faff06ac4da7333c",
11
+ "auditHeadHash": "210f6da534cd7eb92e4747d56604f57738f9af2e9f4cace24a489f9f00ecbe0c",
12
12
  "violations": []
13
13
  }
14
14
  },
@@ -75,4 +75,4 @@
75
75
  }
76
76
  }
77
77
  ]
78
- }
78
+ }