@kya-os/verifier 1.3.0 → 1.3.1-canary.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/dist/core.d.ts ADDED
@@ -0,0 +1,131 @@
1
+ import type { DetachedProof } from "@kya-os/contracts/proof";
2
+ import type { VerifierResult } from "@kya-os/contracts/verifier";
3
+ /**
4
+ * Configuration for the verifier core
5
+ */
6
+ export interface VerifierConfig {
7
+ /**
8
+ * KTA base URL for delegation checking
9
+ */
10
+ ktaBaseUrl?: string;
11
+ /**
12
+ * Enable delegation checking via KTA
13
+ */
14
+ enableDelegationCheck?: boolean;
15
+ /**
16
+ * Clock skew tolerance in seconds
17
+ */
18
+ clockSkewTolerance?: number;
19
+ /**
20
+ * Session timeout in seconds
21
+ */
22
+ sessionTimeout?: number;
23
+ /**
24
+ * Maximum age for proofs in seconds (prevents replay of old proofs)
25
+ */
26
+ proofMaxAge?: number;
27
+ /**
28
+ * Allow mock data for testing
29
+ */
30
+ allowMockData?: boolean;
31
+ /**
32
+ * Cache TTL for DID documents in seconds
33
+ */
34
+ didCacheTtl?: number;
35
+ /**
36
+ * Cache TTL for delegation status in seconds
37
+ */
38
+ delegationCacheTtl?: number;
39
+ }
40
+ /**
41
+ * Context for proof verification
42
+ */
43
+ export interface VerificationContext {
44
+ proof: DetachedProof;
45
+ audience: string;
46
+ timestamp?: number;
47
+ }
48
+ /**
49
+ * Isomorphic verifier core for XMCP-I proof validation
50
+ *
51
+ * This is the heart of the trust system - it verifies that AI agents
52
+ * are who they claim to be and have the authority to perform actions.
53
+ */
54
+ export declare class VerifierCore {
55
+ private config;
56
+ private didCache;
57
+ private delegationCache;
58
+ constructor(config?: VerifierConfig);
59
+ /**
60
+ * Verify a detached proof and return verification result
61
+ *
62
+ * This is the main entry point for proof verification. It performs
63
+ * a comprehensive validation of the agent's identity and authorization.
64
+ */
65
+ verify(context: VerificationContext): Promise<VerifierResult>;
66
+ /**
67
+ * Validate proof structure with comprehensive checks
68
+ */
69
+ private validateProofStructure;
70
+ /**
71
+ * Validate timestamp with configurable clock skew tolerance
72
+ */
73
+ private validateTimestamp;
74
+ /**
75
+ * Validate audience matches expected value
76
+ */
77
+ private validateAudience;
78
+ /**
79
+ * Verify Ed25519 signature using JOSE with proper detached JWS handling
80
+ *
81
+ * This is the cryptographic heart of the verification process.
82
+ * It ensures the proof was signed by the claimed identity.
83
+ */
84
+ private verifySignature;
85
+ /**
86
+ * Create canonical payload that matches runtime implementation
87
+ * Uses JSON Canonicalization Scheme (JCS) RFC 8785 for deterministic ordering
88
+ */
89
+ private createCanonicalPayload;
90
+ /**
91
+ * Verify delegation status via KTA with caching
92
+ */
93
+ private verifyDelegation;
94
+ /**
95
+ * Validate delegation response
96
+ */
97
+ private validateDelegationResponse;
98
+ /**
99
+ * Fetch public key from DID document with caching
100
+ */
101
+ private fetchPublicKeyWithCache;
102
+ /**
103
+ * Fetch DID document from well-known endpoint
104
+ */
105
+ private fetchDIDDocument;
106
+ /**
107
+ * Extract public key from DID document
108
+ */
109
+ private extractPublicKey;
110
+ /**
111
+ * Generate trusted headers for successful verification
112
+ */
113
+ private generateHeaders;
114
+ /**
115
+ * Generate agent context for MCP recipients
116
+ */
117
+ private generateAgentContext;
118
+ /**
119
+ * Create error result from structured error
120
+ */
121
+ private createErrorResult;
122
+ /**
123
+ * Log verification attempt for security monitoring
124
+ */
125
+ private logVerificationAttempt;
126
+ /**
127
+ * Clean up expired cache entries
128
+ */
129
+ cleanupCache(): void;
130
+ }
131
+ //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,4BAA4B,CAAC;AAGpC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,eAAe,CAAuC;gBAElD,MAAM,GAAE,cAAmB;IAYvC;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAkFnE;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkG9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;;OAKG;YACW,eAAe;IAsJ7B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;OAEG;YACW,gBAAgB;IAwF9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA6ClC;;OAEG;YACW,uBAAuB;IAyBrC;;OAEG;YACW,gBAAgB;IAiD9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACI,YAAY,IAAI,IAAI;CAe5B"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,4BAA4B,CAAC;AAGpC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,eAAe,CAAuC;gBAElD,MAAM,GAAE,cAAmB;IAavC;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAkFnE;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkG9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsFzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;;OAKG;YACW,eAAe;IAsJ7B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;YACW,gBAAgB;IAwF9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA6ClC;;OAEG;YACW,uBAAuB;IAyBrC;;OAEG;YACW,gBAAgB;IAiD9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACI,YAAY,IAAI,IAAI;CAe5B"}
package/dist/core.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { importJWK, jwtVerify } from "jose";
2
- import { AGENT_HEADERS, ERROR_HTTP_STATUS } from "@kya-os/contracts/verifier";
2
+ import { canonicalize } from "json-canonicalize";
3
+ import { AGENT_HEADERS, ERROR_HTTP_STATUS, VERIFIER_ERROR_CODES } from "@kya-os/contracts/verifier";
3
4
  /**
4
5
  * Isomorphic verifier core for XMCP-I proof validation
5
6
  *
@@ -15,6 +16,7 @@ export class VerifierCore {
15
16
  enableDelegationCheck: config.enableDelegationCheck ?? true,
16
17
  clockSkewTolerance: config.clockSkewTolerance ?? 120,
17
18
  sessionTimeout: config.sessionTimeout ?? 1800, // 30 minutes
19
+ proofMaxAge: config.proofMaxAge ?? 300, // 5 minutes
18
20
  allowMockData: config.allowMockData ?? false,
19
21
  didCacheTtl: config.didCacheTtl ?? 300, // 5 minutes
20
22
  delegationCacheTtl: config.delegationCacheTtl ?? 60, // 1 minute
@@ -184,21 +186,78 @@ export class VerifierCore {
184
186
  * Validate timestamp with configurable clock skew tolerance
185
187
  */
186
188
  validateTimestamp(meta, currentTimestamp) {
189
+ // Validate meta.ts is not NaN (prevents client-controlled NaN attacks)
190
+ if (!Number.isFinite(meta.ts)) {
191
+ return {
192
+ code: VERIFIER_ERROR_CODES.PROOF_INVALID_TS,
193
+ message: "Invalid proof: timestamp is not a valid number",
194
+ httpStatus: ERROR_HTTP_STATUS[VERIFIER_ERROR_CODES.PROOF_INVALID_TS],
195
+ details: {
196
+ reason: "Proof timestamp must be a finite number",
197
+ received: meta.ts,
198
+ remediation: "Ensure proof timestamp is properly formatted",
199
+ },
200
+ };
201
+ }
187
202
  const now = currentTimestamp || Math.floor(Date.now() / 1000);
203
+ // Validate server timestamp is valid (defense in depth)
204
+ if (!Number.isFinite(now)) {
205
+ return {
206
+ code: VERIFIER_ERROR_CODES.SERVER_TIME_INVALID,
207
+ message: "Server timestamp validation failed",
208
+ httpStatus: ERROR_HTTP_STATUS[VERIFIER_ERROR_CODES.SERVER_TIME_INVALID],
209
+ details: {
210
+ reason: "Server time is not valid",
211
+ remediation: "Contact system administrator",
212
+ },
213
+ };
214
+ }
188
215
  const skew = this.config.clockSkewTolerance;
189
- if (meta.ts < now - skew || meta.ts > now + skew) {
216
+ // Check for future timestamps
217
+ if (meta.ts > now + skew) {
190
218
  return {
191
- code: "XMCP_I_EHANDSHAKE",
219
+ code: VERIFIER_ERROR_CODES.PROOF_FUTURE_TS,
220
+ message: "Invalid proof: timestamp is in the future",
221
+ httpStatus: ERROR_HTTP_STATUS[VERIFIER_ERROR_CODES.PROOF_FUTURE_TS],
222
+ details: {
223
+ reason: `Timestamp ${meta.ts} is ${meta.ts - now}s in the future (skew: ${skew}s)`,
224
+ expected: `≤ ${now + skew}`,
225
+ received: meta.ts,
226
+ remediation: "Check client clock sync",
227
+ },
228
+ };
229
+ }
230
+ // Check for past timestamps (clock skew exceeded)
231
+ if (meta.ts < now - skew) {
232
+ return {
233
+ code: VERIFIER_ERROR_CODES.PROOF_SKEW_EXCEEDED,
192
234
  message: "Invalid proof: timestamp outside acceptable range",
193
- httpStatus: 401,
235
+ httpStatus: ERROR_HTTP_STATUS[VERIFIER_ERROR_CODES.PROOF_SKEW_EXCEEDED],
194
236
  details: {
195
- reason: `Timestamp ${meta.ts} is outside ±${skew}s window`,
196
- expected: `${now - skew} to ${now + skew}`,
237
+ reason: `Timestamp ${meta.ts} is ${now - meta.ts}s in the past (skew: ${skew}s)`,
238
+ expected: `≥ ${now - skew}`,
197
239
  received: meta.ts,
198
240
  remediation: "Check NTP sync; adjust XMCP_I_TS_SKEW_SEC if needed",
199
241
  },
200
242
  };
201
243
  }
244
+ // Check proof age if configured
245
+ if (this.config.proofMaxAge) {
246
+ const age = now - meta.ts;
247
+ if (age > this.config.proofMaxAge) {
248
+ return {
249
+ code: VERIFIER_ERROR_CODES.PROOF_TOO_OLD,
250
+ message: "Invalid proof: proof is too old",
251
+ httpStatus: ERROR_HTTP_STATUS[VERIFIER_ERROR_CODES.PROOF_TOO_OLD],
252
+ details: {
253
+ reason: `Proof age ${age}s exceeds maximum ${this.config.proofMaxAge}s`,
254
+ expected: `Less than ${this.config.proofMaxAge}s old`,
255
+ received: `${age}s old`,
256
+ remediation: "Generate a fresh proof",
257
+ },
258
+ };
259
+ }
260
+ }
202
261
  return null;
203
262
  }
204
263
  /**
@@ -353,10 +412,10 @@ export class VerifierCore {
353
412
  }
354
413
  /**
355
414
  * Create canonical payload that matches runtime implementation
356
- * Uses JSON Canonicalization Scheme (JCS) for deterministic ordering
415
+ * Uses JSON Canonicalization Scheme (JCS) RFC 8785 for deterministic ordering
357
416
  */
358
417
  createCanonicalPayload(meta) {
359
- // Create payload object with exact field ordering as runtime
418
+ // Create payload object with required fields
360
419
  const payload = {
361
420
  audience: meta.audience,
362
421
  nonce: meta.nonce,
@@ -365,26 +424,25 @@ export class VerifierCore {
365
424
  sessionId: meta.sessionId,
366
425
  ts: meta.ts,
367
426
  };
368
- // Add optional fields in canonical order
427
+ // Add optional fields
369
428
  if (meta.scopeId) {
370
429
  payload.scopeId = meta.scopeId;
371
430
  }
372
431
  if (meta.delegationRef) {
373
432
  payload.delegationRef = meta.delegationRef;
374
433
  }
375
- // Use JSON.stringify with sorted keys for canonicalization
376
- // This implements a simplified JCS - for production, consider using a proper JCS library
377
- return JSON.stringify(payload, Object.keys(payload).sort());
434
+ // Use RFC 8785 compliant JCS canonicalization
435
+ return canonicalize(payload);
378
436
  }
379
437
  /**
380
438
  * Verify delegation status via KTA with caching
381
439
  */
382
- async verifyDelegation(delegationRef, did, keyId) {
440
+ async verifyDelegation(delegationRef, did, kid) {
383
441
  try {
384
442
  // Check cache first
385
443
  const cached = this.delegationCache.get(delegationRef);
386
444
  if (cached && cached.expiresAt > Date.now()) {
387
- return this.validateDelegationResponse(cached.response, did, keyId);
445
+ return this.validateDelegationResponse(cached.response, did, kid);
388
446
  }
389
447
  if (this.config.allowMockData) {
390
448
  // Mock delegation for testing
@@ -392,19 +450,19 @@ export class VerifierCore {
392
450
  const mockResponse = {
393
451
  active: delegationRef !== "mock:revoked",
394
452
  did,
395
- keyId,
453
+ kid,
396
454
  scopes: ["*"],
397
455
  };
398
- return this.validateDelegationResponse(mockResponse, did, keyId);
456
+ return this.validateDelegationResponse(mockResponse, did, kid);
399
457
  }
400
458
  // For other delegation refs in test mode, assume they're valid
401
459
  const mockResponse = {
402
460
  active: true,
403
461
  did,
404
- keyId,
462
+ kid,
405
463
  scopes: ["*"],
406
464
  };
407
- return this.validateDelegationResponse(mockResponse, did, keyId);
465
+ return this.validateDelegationResponse(mockResponse, did, kid);
408
466
  }
409
467
  const response = await fetch(`${this.config.ktaBaseUrl}/api/v1/delegations/${encodeURIComponent(delegationRef)}`, {
410
468
  method: "GET",
@@ -435,7 +493,7 @@ export class VerifierCore {
435
493
  response: delegation,
436
494
  expiresAt: Date.now() + this.config.delegationCacheTtl * 1000,
437
495
  });
438
- return this.validateDelegationResponse(delegation, did, keyId);
496
+ return this.validateDelegationResponse(delegation, did, kid);
439
497
  }
440
498
  catch (error) {
441
499
  // Treat delegation check failures as verification failures
@@ -466,7 +524,7 @@ export class VerifierCore {
466
524
  },
467
525
  };
468
526
  }
469
- if (delegation.did !== expectedDid || delegation.keyId !== expectedKeyId) {
527
+ if (delegation.did !== expectedDid || delegation.kid !== expectedKeyId) {
470
528
  return {
471
529
  code: "XMCP_I_EBADPROOF",
472
530
  message: "Delegation identity mismatch",
@@ -474,7 +532,7 @@ export class VerifierCore {
474
532
  details: {
475
533
  reason: "Delegation does not match proof identity",
476
534
  expected: `${expectedDid}#${expectedKeyId}`,
477
- received: `${delegation.did}#${delegation.keyId}`,
535
+ received: `${delegation.did}#${delegation.kid}`,
478
536
  },
479
537
  };
480
538
  }
@@ -494,11 +552,11 @@ export class VerifierCore {
494
552
  /**
495
553
  * Fetch public key from DID document with caching
496
554
  */
497
- async fetchPublicKeyWithCache(did, keyId) {
498
- const cacheKey = `${did}#${keyId}`;
555
+ async fetchPublicKeyWithCache(did, kid) {
556
+ const cacheKey = `${did}#${kid}`;
499
557
  const cached = this.didCache.get(cacheKey);
500
558
  if (cached && cached.expiresAt > Date.now()) {
501
- return this.extractPublicKey(cached.document, keyId);
559
+ return this.extractPublicKey(cached.document, kid);
502
560
  }
503
561
  const didDoc = await this.fetchDIDDocument(did);
504
562
  if (!didDoc) {
@@ -509,7 +567,7 @@ export class VerifierCore {
509
567
  document: didDoc,
510
568
  expiresAt: Date.now() + this.config.didCacheTtl * 1000,
511
569
  });
512
- return this.extractPublicKey(didDoc, keyId);
570
+ return this.extractPublicKey(didDoc, kid);
513
571
  }
514
572
  /**
515
573
  * Fetch DID document from well-known endpoint
@@ -561,12 +619,12 @@ export class VerifierCore {
561
619
  /**
562
620
  * Extract public key from DID document
563
621
  */
564
- extractPublicKey(didDoc, keyId) {
622
+ extractPublicKey(didDoc, kid) {
565
623
  try {
566
624
  // Find verification method
567
- const verificationMethod = didDoc.verificationMethod?.find((vm) => vm.id === `#${keyId}` || vm.id === `${didDoc.id}#${keyId}`);
625
+ const verificationMethod = didDoc.verificationMethod?.find((vm) => vm.id === `#${kid}` || vm.id === `${didDoc.id}#${kid}`);
568
626
  if (!verificationMethod) {
569
- throw new Error(`Key ${keyId} not found in DID document`);
627
+ throw new Error(`Key ${kid} not found in DID document`);
570
628
  }
571
629
  // Convert to JWK format if needed
572
630
  if (verificationMethod.publicKeyJwk) {
@@ -615,7 +673,7 @@ export class VerifierCore {
615
673
  generateAgentContext(meta) {
616
674
  return {
617
675
  did: meta.did,
618
- keyId: meta.kid,
676
+ kid: meta.kid,
619
677
  subject: meta.delegationRef ? meta.did : undefined,
620
678
  scopes: meta.scopeId ? meta.scopeId.split(",") : [],
621
679
  session: meta.sessionId,
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/worker.d.ts CHANGED
@@ -10,6 +10,7 @@ export interface WorkerEnv {
10
10
  KYA_API_KEY?: string;
11
11
  XMCP_I_TS_SKEW_SEC?: string;
12
12
  XMCP_I_SESSION_TTL?: string;
13
+ PROOF_MAX_AGE_SEC?: string;
13
14
  KYA_VOUCHED_API_KEY?: string;
14
15
  }
15
16
  /**
@@ -60,8 +61,8 @@ export declare function createConfigFromEnv(env: WorkerEnv, overrides?: Partial<
60
61
  * ```typescript
61
62
  * export default {
62
63
  * async fetch(request: Request, env: WorkerEnv): Promise<Response> {
63
- * const config = createConfigFromEnv(env);
64
- * const result = await verifyWorker(request, config);
64
+ * // Config is automatically cached per worker instance
65
+ * const result = await verifyWorker(request, env);
65
66
  *
66
67
  * if (!result.success) {
67
68
  * return applyVerificationToResponse(result);
@@ -73,10 +74,10 @@ export declare function createConfigFromEnv(env: WorkerEnv, overrides?: Partial<
73
74
  * ```
74
75
  *
75
76
  * @param request - The incoming request
76
- * @param config - Optional verifier configuration
77
+ * @param envOrConfig - Worker environment or verifier configuration
77
78
  * @returns Promise<VerifierResult> - Verification result with headers or error
78
79
  */
79
- export declare function verifyWorker(request: Request, config?: WorkerVerifierConfig): Promise<VerifierResult>;
80
+ export declare function verifyWorker(request: Request, envOrConfig?: WorkerEnv | WorkerVerifierConfig): Promise<VerifierResult>;
80
81
  /**
81
82
  * Cloudflare Worker middleware factory
82
83
  *
@@ -113,15 +114,12 @@ export declare function applyVerificationToResponse(result: VerifierResult, resp
113
114
  *
114
115
  * src/index.ts:
115
116
  * ```typescript
116
- * import { verifyWorker, applyVerificationToResponse, createConfigFromEnv, type WorkerEnv } from "@kya-os/verifier/worker";
117
+ * import { verifyWorker, applyVerificationToResponse, type WorkerEnv } from "@kya-os/verifier/worker";
117
118
  *
118
119
  * export default {
119
120
  * async fetch(request: Request, env: WorkerEnv): Promise<Response> {
120
- * // Create config from environment
121
- * const config = createConfigFromEnv(env);
122
- *
123
- * // Verify the request
124
- * const result = await verifyWorker(request, config);
121
+ * // Pass env directly - config is automatically cached per worker instance
122
+ * const result = await verifyWorker(request, env);
125
123
  *
126
124
  * if (!result.success) {
127
125
  * return applyVerificationToResponse(result);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,SAAS;IAExB,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyCD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACxC,oBAAoB,CActB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA8CzB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,cAAc,IAC9C,SAAS,OAAO,KAAG,OAAO,CAAC,cAAc,CAAC,CAGzD;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,QAAQ,GAClB,QAAQ,CAkCV;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,SAAS;IAExB,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA0ED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACxC,oBAAoB,CAWtB;AA6CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,SAAS,GAAG,oBAAoB,GAC7C,OAAO,CAAC,cAAc,CAAC,CA0DzB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,cAAc,IAC9C,SAAS,OAAO,KAAG,OAAO,CAAC,cAAc,CAAC,CAGzD;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,QAAQ,GAClB,QAAQ,CAkCV;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG"}
package/dist/worker.js CHANGED
@@ -33,6 +33,30 @@ function extractAudienceFromRequest(request) {
33
33
  const url = new URL(request.url);
34
34
  return url.host;
35
35
  }
36
+ /**
37
+ * Safely parse environment integer with bounds validation
38
+ * Prevents NaN bypass attacks where parseInt returns NaN and disables validators
39
+ */
40
+ function parseEnvInt(value, defaultValue, min, max) {
41
+ if (!value)
42
+ return defaultValue;
43
+ const parsed = parseInt(value, 10);
44
+ // Reject NaN to prevent bypass attacks
45
+ if (isNaN(parsed)) {
46
+ console.warn(`Invalid integer env value: ${value}, using default: ${defaultValue}`);
47
+ return defaultValue;
48
+ }
49
+ // Clamp to safe bounds
50
+ if (parsed < min) {
51
+ console.warn(`Env value ${parsed} below minimum ${min}, using minimum`);
52
+ return min;
53
+ }
54
+ if (parsed > max) {
55
+ console.warn(`Env value ${parsed} above maximum ${max}, using maximum`);
56
+ return max;
57
+ }
58
+ return parsed;
59
+ }
36
60
  /**
37
61
  * Create verifier config from Worker environment
38
62
  *
@@ -44,17 +68,48 @@ export function createConfigFromEnv(env, overrides) {
44
68
  return {
45
69
  ktaBaseUrl: env.KYA_API_URL || "https://knowthat.ai",
46
70
  enableDelegationCheck: true,
47
- clockSkewTolerance: env.XMCP_I_TS_SKEW_SEC
48
- ? parseInt(env.XMCP_I_TS_SKEW_SEC, 10)
49
- : 120,
50
- sessionTimeout: env.XMCP_I_SESSION_TTL
51
- ? parseInt(env.XMCP_I_SESSION_TTL, 10)
52
- : 1800,
71
+ clockSkewTolerance: parseEnvInt(env.XMCP_I_TS_SKEW_SEC, 120, 0, 3600),
72
+ sessionTimeout: parseEnvInt(env.XMCP_I_SESSION_TTL, 1800, 60, 86400),
73
+ proofMaxAge: parseEnvInt(env.PROOF_MAX_AGE_SEC, 300, 60, 3600),
53
74
  kvNamespace: env.NONCE_CACHE,
54
75
  nonceTtl: 1800,
55
76
  ...overrides,
56
77
  };
57
78
  }
79
+ /**
80
+ * Cached config to avoid parsing env on every request
81
+ */
82
+ let cachedConfig = null;
83
+ let cachedEnvSignature = null;
84
+ /**
85
+ * Create a signature from env to detect changes
86
+ */
87
+ function getEnvSignature(env) {
88
+ return [
89
+ env.KYA_API_URL || "",
90
+ env.XMCP_I_TS_SKEW_SEC || "",
91
+ env.XMCP_I_SESSION_TTL || "",
92
+ env.PROOF_MAX_AGE_SEC || "",
93
+ ].join("|");
94
+ }
95
+ /**
96
+ * Get or create config from env with caching
97
+ * Caches config per worker instance to avoid parsing env on every request
98
+ */
99
+ function getConfigFromEnv(env, overrides) {
100
+ const signature = getEnvSignature(env);
101
+ // Return cached config if env hasn't changed
102
+ if (cachedConfig && cachedEnvSignature === signature && !overrides) {
103
+ return cachedConfig;
104
+ }
105
+ // Parse env and cache result
106
+ const config = createConfigFromEnv(env, overrides);
107
+ if (!overrides) {
108
+ cachedConfig = config;
109
+ cachedEnvSignature = signature;
110
+ }
111
+ return config;
112
+ }
58
113
  /**
59
114
  * Cloudflare Worker verifier function
60
115
  *
@@ -62,8 +117,8 @@ export function createConfigFromEnv(env, overrides) {
62
117
  * ```typescript
63
118
  * export default {
64
119
  * async fetch(request: Request, env: WorkerEnv): Promise<Response> {
65
- * const config = createConfigFromEnv(env);
66
- * const result = await verifyWorker(request, config);
120
+ * // Config is automatically cached per worker instance
121
+ * const result = await verifyWorker(request, env);
67
122
  *
68
123
  * if (!result.success) {
69
124
  * return applyVerificationToResponse(result);
@@ -75,11 +130,24 @@ export function createConfigFromEnv(env, overrides) {
75
130
  * ```
76
131
  *
77
132
  * @param request - The incoming request
78
- * @param config - Optional verifier configuration
133
+ * @param envOrConfig - Worker environment or verifier configuration
79
134
  * @returns Promise<VerifierResult> - Verification result with headers or error
80
135
  */
81
- export async function verifyWorker(request, config) {
136
+ export async function verifyWorker(request, envOrConfig) {
82
137
  try {
138
+ // Resolve config from env or use provided config (with caching)
139
+ let config;
140
+ if (!envOrConfig) {
141
+ throw new Error("Either env or config must be provided");
142
+ }
143
+ else if ("NONCE_CACHE" in envOrConfig || "KYA_API_URL" in envOrConfig) {
144
+ // It's a WorkerEnv, use cached config
145
+ config = getConfigFromEnv(envOrConfig);
146
+ }
147
+ else {
148
+ // It's already a config
149
+ config = envOrConfig;
150
+ }
83
151
  // Extract proof from request
84
152
  const proof = await extractProofFromRequest(request);
85
153
  if (!proof) {
@@ -190,15 +258,12 @@ export function applyVerificationToResponse(result, response) {
190
258
  *
191
259
  * src/index.ts:
192
260
  * ```typescript
193
- * import { verifyWorker, applyVerificationToResponse, createConfigFromEnv, type WorkerEnv } from "@kya-os/verifier/worker";
261
+ * import { verifyWorker, applyVerificationToResponse, type WorkerEnv } from "@kya-os/verifier/worker";
194
262
  *
195
263
  * export default {
196
264
  * async fetch(request: Request, env: WorkerEnv): Promise<Response> {
197
- * // Create config from environment
198
- * const config = createConfigFromEnv(env);
199
- *
200
- * // Verify the request
201
- * const result = await verifyWorker(request, config);
265
+ * // Pass env directly - config is automatically cached per worker instance
266
+ * const result = await verifyWorker(request, env);
202
267
  *
203
268
  * if (!result.success) {
204
269
  * return applyVerificationToResponse(result);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/verifier",
3
- "version": "1.3.0",
3
+ "version": "1.3.1-canary.0",
4
4
  "description": "Isomorphic verifier middleware for XMCP-I proof validation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -27,20 +27,24 @@
27
27
  "build": "tsc -p tsconfig.build.json",
28
28
  "dev": "tsc -p tsconfig.build.json --watch",
29
29
  "test": "vitest run",
30
+ "test:coverage": "vitest run --coverage",
30
31
  "test:watch": "vitest",
31
32
  "clean": "rm -rf dist"
32
33
  },
33
34
  "dependencies": {
34
- "@kya-os/contracts": "^1.2.0",
35
- "jose": "^5.2.0"
35
+ "@kya-os/contracts": "workspace:*",
36
+ "jose": "^5.2.0",
37
+ "json-canonicalize": "^2.0.0"
36
38
  },
37
39
  "devDependencies": {
38
40
  "@types/node": "^20.11.0",
41
+ "@vitest/coverage-v8": "^3.2.4",
39
42
  "typescript": "^5.3.0",
40
- "vitest": "^1.2.0"
43
+ "vitest": "^3.2.4"
41
44
  },
42
45
  "peerDependencies": {
43
- "@types/express": "^4.17.0"
46
+ "@types/express": "^4.17.0",
47
+ "json-canonicalize": "^2.0.0"
44
48
  },
45
49
  "peerDependenciesMeta": {
46
50
  "@types/express": {