@kya-os/mcp 1.2.0 → 1.3.1
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 +114 -10
- package/LICENSE +1 -1
- package/README.md +50 -33
- package/dist/auth/handshake.d.ts +1 -1
- package/dist/auth/handshake.js +1 -1
- package/dist/delegation/cascading-revocation.d.ts +1 -1
- package/dist/delegation/cascading-revocation.js +1 -1
- package/dist/delegation/delegation-graph.d.ts +1 -1
- package/dist/delegation/delegation-graph.js +1 -1
- package/dist/delegation/did-web-resolver.d.ts +51 -1
- package/dist/delegation/did-web-resolver.d.ts.map +1 -1
- package/dist/delegation/did-web-resolver.js +108 -0
- package/dist/delegation/did-web-resolver.js.map +1 -1
- package/dist/delegation/outbound-headers.d.ts +14 -14
- package/dist/delegation/outbound-headers.d.ts.map +1 -1
- package/dist/delegation/outbound-headers.js +15 -15
- package/dist/delegation/outbound-headers.js.map +1 -1
- package/dist/delegation/outbound-proof.d.ts +2 -2
- package/dist/delegation/outbound-proof.js +2 -2
- package/dist/delegation/vc-issuer.d.ts +1 -1
- package/dist/delegation/vc-issuer.js +1 -1
- package/dist/delegation/vc-verifier.d.ts +2 -1
- package/dist/delegation/vc-verifier.d.ts.map +1 -1
- package/dist/delegation/vc-verifier.js +1 -1
- package/dist/delegation/vc-verifier.js.map +1 -1
- package/dist/errors.d.ts +6 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -3
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/logging/logger.d.ts +1 -1
- package/dist/logging/logger.js +1 -1
- package/dist/middleware/index.d.ts +6 -6
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +6 -6
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/{mcpi-transport.d.ts → kya-os-transport.d.ts} +8 -8
- package/dist/middleware/kya-os-transport.d.ts.map +1 -0
- package/dist/middleware/{mcpi-transport.js → kya-os-transport.js} +9 -9
- package/dist/middleware/kya-os-transport.js.map +1 -0
- package/dist/middleware/{with-mcpi-server.d.ts → with-kya-os-server.d.ts} +24 -24
- package/dist/middleware/with-kya-os-server.d.ts.map +1 -0
- package/dist/middleware/{with-mcpi-server.js → with-kya-os-server.js} +26 -26
- package/dist/middleware/with-kya-os-server.js.map +1 -0
- package/dist/middleware/{with-mcpi.d.ts → with-kya-os.d.ts} +41 -60
- package/dist/middleware/with-kya-os.d.ts.map +1 -0
- package/dist/middleware/{with-mcpi.js → with-kya-os.js} +66 -42
- package/dist/middleware/with-kya-os.js.map +1 -0
- package/dist/proof/errors.d.ts +1 -0
- package/dist/proof/errors.d.ts.map +1 -1
- package/dist/proof/errors.js +2 -0
- package/dist/proof/errors.js.map +1 -1
- package/dist/proof/generator.d.ts +1 -1
- package/dist/proof/generator.js +1 -1
- package/dist/proof/index.d.ts +1 -1
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +1 -1
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/verifier.d.ts +49 -1
- package/dist/proof/verifier.d.ts.map +1 -1
- package/dist/proof/verifier.js +85 -2
- package/dist/proof/verifier.js.map +1 -1
- package/dist/providers/base.d.ts +32 -3
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/node-crypto.d.ts +2 -2
- package/dist/providers/node-crypto.js +2 -2
- package/dist/session/manager.d.ts +8 -6
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +16 -10
- package/dist/session/manager.js.map +1 -1
- package/dist/types/protocol.d.ts +15 -3
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +7 -3
- package/dist/types/protocol.js.map +1 -1
- package/package.json +4 -4
- package/schemas/README.md +6 -6
- package/schemas/delegation-credential.json +4 -4
- package/schemas/detached-proof.json +1 -1
- package/schemas/handshake-request.json +3 -3
- package/schemas/handshake-response.json +2 -2
- package/schemas/well-known-mcpi.json +14 -7
- package/dist/middleware/mcpi-transport.d.ts.map +0 -1
- package/dist/middleware/mcpi-transport.js.map +0 -1
- package/dist/middleware/with-mcpi-server.d.ts.map +0 -1
- package/dist/middleware/with-mcpi-server.js.map +0 -1
- package/dist/middleware/with-mcpi.d.ts.map +0 -1
- package/dist/middleware/with-mcpi.js.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* KYA-OS Middleware — Core Implementation
|
|
3
3
|
*
|
|
4
4
|
* Adds identity, session management, and proof generation to MCP servers.
|
|
5
5
|
*
|
|
6
|
-
* For most use cases, prefer the high-level `
|
|
7
|
-
* `./with-
|
|
6
|
+
* For most use cases, prefer the high-level `withKyaOs()` adapter from
|
|
7
|
+
* `./with-kya-os-server.ts` which (by default) auto-registers the handshake
|
|
8
8
|
* tool and auto-attaches proofs to all tool responses:
|
|
9
9
|
*
|
|
10
|
-
* import {
|
|
11
|
-
* await
|
|
10
|
+
* import { withKyaOs } from '@kya-os/mcp';
|
|
11
|
+
* await withKyaOs(server, { crypto: new NodeCryptoProvider() });
|
|
12
12
|
*
|
|
13
|
-
* `
|
|
14
|
-
* internally by `
|
|
13
|
+
* `createKyaOsMiddleware()` in this file is the lower-level API used
|
|
14
|
+
* internally by `withKyaOs()` and for advanced use cases like the
|
|
15
15
|
* low-level `Server` API or custom request handler patterns.
|
|
16
16
|
*/
|
|
17
17
|
import { FetchProvider, } from "../providers/base.js";
|
|
@@ -24,10 +24,10 @@ import { createDidWebResolver } from "../delegation/did-web-resolver.js";
|
|
|
24
24
|
import { verifyDelegationAudience } from "../delegation/audience-validator.js";
|
|
25
25
|
import { createNeedsAuthorizationError, extractDelegationFromVC, } from "../types/protocol.js";
|
|
26
26
|
import { logger } from "../logging/index.js";
|
|
27
|
-
import {
|
|
27
|
+
import { KYA_OS_ERROR_CODES } from "../errors.js";
|
|
28
28
|
import { canonicalizeJSON, parseVCJWT } from "../delegation/utils.js";
|
|
29
29
|
import { base64urlDecodeToBytes, base64urlEncodeFromBytes, bytesToBase64 } from "../utils/base64.js";
|
|
30
|
-
export const
|
|
30
|
+
export const KYA_OS_ACTIONS = ["handshake", "identity", "reputation"];
|
|
31
31
|
class RuntimeFetchProvider extends FetchProvider {
|
|
32
32
|
async resolveDID() {
|
|
33
33
|
return null;
|
|
@@ -79,13 +79,13 @@ function validateScopeAttenuation(parentCredential, childCredential) {
|
|
|
79
79
|
return { valid: true };
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
|
-
* Create
|
|
82
|
+
* Create KYA-OS middleware for a standard MCP SDK Server.
|
|
83
83
|
*
|
|
84
|
-
* For most use cases, prefer {@link
|
|
84
|
+
* For most use cases, prefer {@link withKyaOs} from `./with-kya-os-server.ts`
|
|
85
85
|
* which wraps this function and (by default) auto-registers handshake +
|
|
86
86
|
* auto-attaches proofs.
|
|
87
87
|
*
|
|
88
|
-
* Use `
|
|
88
|
+
* Use `createKyaOsMiddleware` directly when:
|
|
89
89
|
* - You use the low-level `Server` API (not `McpServer`)
|
|
90
90
|
* - You need custom request handler patterns
|
|
91
91
|
* - You want per-tool control over proof/delegation wrapping
|
|
@@ -100,7 +100,12 @@ function validateScopeAttenuation(parentCredential, childCredential) {
|
|
|
100
100
|
* deployments behind a load balancer. For distributed deployments, implement a custom
|
|
101
101
|
* `SessionStore` backed by Redis, DynamoDB, or similar and pass it via `config.session`.
|
|
102
102
|
*/
|
|
103
|
-
|
|
103
|
+
// Module-level warn-once flags for unsafe configuration. Per-process,
|
|
104
|
+
// not per-session, so long-running servers don't spam logs on every new
|
|
105
|
+
// session.
|
|
106
|
+
let warnedAudienceOptOut = false;
|
|
107
|
+
let warnedLegacyUnsafeDelegation = false;
|
|
108
|
+
export function createKyaOsMiddleware(config, cryptoProvider) {
|
|
104
109
|
const identity = {
|
|
105
110
|
did: config.identity.did,
|
|
106
111
|
kid: config.identity.kid,
|
|
@@ -118,8 +123,8 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
118
123
|
// Active session tracking — set after handshake (manual or auto)
|
|
119
124
|
let activeSessionId;
|
|
120
125
|
const handshakeTool = {
|
|
121
|
-
name: "
|
|
122
|
-
description: "
|
|
126
|
+
name: "_kyaos_handshake",
|
|
127
|
+
description: "KYA-OS identity handshake — establishes a cryptographic session",
|
|
123
128
|
inputSchema: {
|
|
124
129
|
type: "object",
|
|
125
130
|
properties: {
|
|
@@ -137,15 +142,15 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
137
142
|
required: ["nonce", "audience", "timestamp"],
|
|
138
143
|
},
|
|
139
144
|
};
|
|
140
|
-
const
|
|
141
|
-
name: "
|
|
142
|
-
description: "
|
|
145
|
+
const kyaOsTool = {
|
|
146
|
+
name: "_kyaos",
|
|
147
|
+
description: "KYA-OS protocol — identity verification, session handshake, and server metadata",
|
|
143
148
|
inputSchema: {
|
|
144
149
|
type: "object",
|
|
145
150
|
properties: {
|
|
146
151
|
action: {
|
|
147
152
|
type: "string",
|
|
148
|
-
enum: [...
|
|
153
|
+
enum: [...KYA_OS_ACTIONS],
|
|
149
154
|
description: "Protocol operation to perform",
|
|
150
155
|
},
|
|
151
156
|
nonce: { type: "string", description: "Client-generated unique nonce" },
|
|
@@ -171,7 +176,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
171
176
|
text: JSON.stringify({
|
|
172
177
|
success: false,
|
|
173
178
|
error: {
|
|
174
|
-
code:
|
|
179
|
+
code: KYA_OS_ERROR_CODES.handshake_failed,
|
|
175
180
|
message: "Invalid handshake format: requires nonce (string), audience (string), and timestamp (positive integer)",
|
|
176
181
|
},
|
|
177
182
|
}),
|
|
@@ -214,12 +219,13 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
214
219
|
name: config.identity.agentName ?? identity.did,
|
|
215
220
|
capabilities: ["handshake", "signing", "verification"],
|
|
216
221
|
protocolVersion: "1.0.0",
|
|
222
|
+
clockSkewSeconds: sessionManager.getStats().config.timestampSkewSeconds,
|
|
217
223
|
}),
|
|
218
224
|
},
|
|
219
225
|
],
|
|
220
226
|
};
|
|
221
227
|
}
|
|
222
|
-
async function
|
|
228
|
+
async function handleKyaOs(args) {
|
|
223
229
|
const action = typeof args.action === "string"
|
|
224
230
|
? args.action
|
|
225
231
|
: undefined;
|
|
@@ -236,7 +242,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
236
242
|
text: JSON.stringify({
|
|
237
243
|
success: false,
|
|
238
244
|
error: {
|
|
239
|
-
code:
|
|
245
|
+
code: KYA_OS_ERROR_CODES.runtime_error,
|
|
240
246
|
message: 'action: "reputation" is not yet implemented.',
|
|
241
247
|
},
|
|
242
248
|
}),
|
|
@@ -252,8 +258,8 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
252
258
|
text: JSON.stringify({
|
|
253
259
|
success: false,
|
|
254
260
|
error: {
|
|
255
|
-
code:
|
|
256
|
-
message: `Unknown
|
|
261
|
+
code: KYA_OS_ERROR_CODES.invalid_request,
|
|
262
|
+
message: `Unknown _kyaos action: "${action ?? "(missing)"}". Valid actions: ${KYA_OS_ACTIONS.join(", ")}`,
|
|
257
263
|
},
|
|
258
264
|
}),
|
|
259
265
|
},
|
|
@@ -264,8 +270,8 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
264
270
|
}
|
|
265
271
|
/**
|
|
266
272
|
* Auto-create a session for proof generation when no handshake has occurred.
|
|
267
|
-
* In production,
|
|
268
|
-
* This convenience mode allows non-
|
|
273
|
+
* In production, KYA-OS-aware runtimes should execute handshake before tool calls.
|
|
274
|
+
* This convenience mode allows non-KYA-OS clients (like MCP Inspector) to
|
|
269
275
|
* still see proofs without manual handshake.
|
|
270
276
|
*/
|
|
271
277
|
async function ensureSession() {
|
|
@@ -315,7 +321,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
315
321
|
result._meta = { proof };
|
|
316
322
|
}
|
|
317
323
|
catch (error) {
|
|
318
|
-
logger.error("[
|
|
324
|
+
logger.error("[kya-os] Proof generation failed", {
|
|
319
325
|
tool: toolName,
|
|
320
326
|
error: error instanceof Error ? error.message : String(error),
|
|
321
327
|
});
|
|
@@ -328,6 +334,19 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
328
334
|
}
|
|
329
335
|
function wrapWithDelegation(toolName, config, handler) {
|
|
330
336
|
const legacyUnsafeDelegationEnabled = delegationConfig?.allowLegacyUnsafeDelegation === true;
|
|
337
|
+
if (legacyUnsafeDelegationEnabled && !warnedLegacyUnsafeDelegation) {
|
|
338
|
+
warnedLegacyUnsafeDelegation = true;
|
|
339
|
+
console.warn("⚠️ KYA-OS: allowLegacyUnsafeDelegation=true disables delegation-chain " +
|
|
340
|
+
"resolution and StatusList revocation checks. This is unsafe for production. " +
|
|
341
|
+
"See SECURITY.md (Unsafe Delegation Modes).");
|
|
342
|
+
}
|
|
343
|
+
if (delegationConfig?.requireAudienceOnRedelegation === false &&
|
|
344
|
+
!warnedAudienceOptOut) {
|
|
345
|
+
warnedAudienceOptOut = true;
|
|
346
|
+
console.warn("⚠️ KYA-OS: requireAudienceOnRedelegation=false disables confused-deputy " +
|
|
347
|
+
"protection on re-delegations. The default is true as of 1.3.x. " +
|
|
348
|
+
"See SECURITY.md (Unsafe Delegation Modes).");
|
|
349
|
+
}
|
|
331
350
|
const didKeyResolver = createDidKeyResolver();
|
|
332
351
|
const fetchProvider = delegationConfig?.fetchProvider ??
|
|
333
352
|
(typeof globalThis.fetch === "function"
|
|
@@ -408,7 +427,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
408
427
|
if (leafDelegation.parentId) {
|
|
409
428
|
if (!delegationConfig?.resolveDelegationChain) {
|
|
410
429
|
if (legacyUnsafeDelegationEnabled) {
|
|
411
|
-
logger.warn(`[
|
|
430
|
+
logger.warn(`[kya-os] Legacy delegation mode enabled: accepting parent-linked credential ${leafDelegation.id} without resolveDelegationChain`);
|
|
412
431
|
return { valid: true };
|
|
413
432
|
}
|
|
414
433
|
return {
|
|
@@ -457,7 +476,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
457
476
|
seenIds.add(delegation.id);
|
|
458
477
|
if (credential.credentialStatus && !delegationConfig?.statusListResolver) {
|
|
459
478
|
if (legacyUnsafeDelegationEnabled) {
|
|
460
|
-
logger.warn(`[
|
|
479
|
+
logger.warn(`[kya-os] Legacy delegation mode enabled: skipping status-list verification for ${delegation.id}`);
|
|
461
480
|
}
|
|
462
481
|
else {
|
|
463
482
|
return {
|
|
@@ -489,7 +508,12 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
489
508
|
// credential in the chain MUST have an audience constraint.
|
|
490
509
|
// This prevents confused-deputy attacks where re-delegated
|
|
491
510
|
// credentials are forwarded to unintended servers.
|
|
492
|
-
|
|
511
|
+
//
|
|
512
|
+
// Defaults to `true`. Set explicitly to `false` to preserve
|
|
513
|
+
// legacy behavior (logged once per process — see opt-out warning
|
|
514
|
+
// below).
|
|
515
|
+
const requireAudienceOnRedelegation = delegationConfig?.requireAudienceOnRedelegation !== false;
|
|
516
|
+
if (requireAudienceOnRedelegation &&
|
|
493
517
|
delegation.parentId &&
|
|
494
518
|
!delegation.constraints.audience) {
|
|
495
519
|
return {
|
|
@@ -537,7 +561,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
537
561
|
return { valid: true };
|
|
538
562
|
};
|
|
539
563
|
return async (args, sessionId) => {
|
|
540
|
-
const delegationArg = args["
|
|
564
|
+
const delegationArg = args["_kyaos_delegation"];
|
|
541
565
|
if (delegationArg === undefined || delegationArg === null) {
|
|
542
566
|
// No delegation provided — return needs_authorization response
|
|
543
567
|
const tokenBytes = await cryptoProvider.randomBytes(16);
|
|
@@ -571,7 +595,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
571
595
|
if (typeof delegationArg === "string") {
|
|
572
596
|
const parsed = parseVCJWT(delegationArg);
|
|
573
597
|
if (!parsed || !parsed.payload.vc) {
|
|
574
|
-
return buildDelegationErrorResponse(
|
|
598
|
+
return buildDelegationErrorResponse(KYA_OS_ERROR_CODES.delegation_invalid, "Invalid VC-JWT format");
|
|
575
599
|
}
|
|
576
600
|
vc = parsed.payload.vc;
|
|
577
601
|
// VC-JWTs don't have an embedded proof — the JWT signature is the
|
|
@@ -592,21 +616,21 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
592
616
|
skipSignature: isVCJWT,
|
|
593
617
|
});
|
|
594
618
|
if (!verificationResult.valid) {
|
|
595
|
-
logger.warn(`[
|
|
596
|
-
return buildDelegationErrorResponse(
|
|
619
|
+
logger.warn(`[kya-os] Delegation verification failed for "${toolName}": ${verificationResult.reason}`);
|
|
620
|
+
return buildDelegationErrorResponse(KYA_OS_ERROR_CODES.delegation_invalid, verificationResult.reason ?? "Unknown delegation validation error");
|
|
597
621
|
}
|
|
598
622
|
const scopes = getDelegationScopes(vc);
|
|
599
623
|
if (!scopes.includes(config.scopeId)) {
|
|
600
|
-
logger.warn(`[
|
|
601
|
-
return buildDelegationErrorResponse(
|
|
624
|
+
logger.warn(`[kya-os] Delegation missing required scope "${config.scopeId}" for "${toolName}"`);
|
|
625
|
+
return buildDelegationErrorResponse(KYA_OS_ERROR_CODES.insufficient_scope, `Required scope "${config.scopeId}" not in delegation scopes`);
|
|
602
626
|
}
|
|
603
|
-
// Strip
|
|
627
|
+
// Strip _kyaos_delegation from args before passing to handler
|
|
604
628
|
const cleanArgs = {};
|
|
605
629
|
for (const [k, v] of Object.entries(args)) {
|
|
606
|
-
if (k !== "
|
|
630
|
+
if (k !== "_kyaos_delegation")
|
|
607
631
|
cleanArgs[k] = v;
|
|
608
632
|
}
|
|
609
|
-
logger.debug(`[
|
|
633
|
+
logger.debug(`[kya-os] Delegation verified for "${toolName}", scope "${config.scopeId}"`);
|
|
610
634
|
return handler(cleanArgs, sessionId);
|
|
611
635
|
};
|
|
612
636
|
}
|
|
@@ -614,12 +638,12 @@ export function createMCPIMiddleware(config, cryptoProvider) {
|
|
|
614
638
|
identity: config.identity,
|
|
615
639
|
sessionManager,
|
|
616
640
|
proofGenerator,
|
|
617
|
-
|
|
641
|
+
kyaOsTool,
|
|
618
642
|
handshakeTool,
|
|
619
|
-
|
|
643
|
+
handleKyaOs,
|
|
620
644
|
handleHandshake,
|
|
621
645
|
wrapWithProof,
|
|
622
646
|
wrapWithDelegation,
|
|
623
647
|
};
|
|
624
648
|
}
|
|
625
|
-
//# sourceMappingURL=with-
|
|
649
|
+
//# sourceMappingURL=with-kya-os.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-kya-os.js","sourceRoot":"","sources":["../../src/middleware/with-kya-os.ts"],"names":[],"mappings":"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"}
|
package/dist/proof/errors.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export declare const PROOF_VERIFICATION_ERROR_CODES: {
|
|
|
30
30
|
readonly VERIFICATION_METHOD_NOT_FOUND: "VERIFICATION_METHOD_NOT_FOUND";
|
|
31
31
|
readonly PUBLIC_KEY_NOT_FOUND: "PUBLIC_KEY_NOT_FOUND";
|
|
32
32
|
readonly UNSUPPORTED_DID_METHOD: "UNSUPPORTED_DID_METHOD";
|
|
33
|
+
readonly META_POLICY_VIOLATION: "META_POLICY_VIOLATION";
|
|
33
34
|
readonly VERIFICATION_ERROR: "VERIFICATION_ERROR";
|
|
34
35
|
readonly INTERNAL_ERROR: "INTERNAL_ERROR";
|
|
35
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,OAAO,8BAA8B,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAErF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,IAAI,EAAE,0BAA0B;aAEhC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,0BAA0B,EAChD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,0BAA0B,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,sBAAsB,CAExB"}
|
package/dist/proof/errors.js
CHANGED
|
@@ -35,6 +35,8 @@ export const PROOF_VERIFICATION_ERROR_CODES = {
|
|
|
35
35
|
VERIFICATION_METHOD_NOT_FOUND: "VERIFICATION_METHOD_NOT_FOUND",
|
|
36
36
|
PUBLIC_KEY_NOT_FOUND: "PUBLIC_KEY_NOT_FOUND",
|
|
37
37
|
UNSUPPORTED_DID_METHOD: "UNSUPPORTED_DID_METHOD",
|
|
38
|
+
// Meta policy errors
|
|
39
|
+
META_POLICY_VIOLATION: "META_POLICY_VIOLATION",
|
|
38
40
|
// Generic errors
|
|
39
41
|
VERIFICATION_ERROR: "VERIFICATION_ERROR",
|
|
40
42
|
INTERNAL_ERROR: "INTERNAL_ERROR",
|
package/dist/proof/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,yBAAyB;IACzB,uBAAuB,EAAE,yBAAyB;IAClD,sBAAsB,EAAE,wBAAwB;IAEhD,kBAAkB;IAClB,qBAAqB,EAAE,uBAAuB;IAC9C,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IAEtC,mBAAmB;IACnB,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,4BAA4B,EAAE,8BAA8B;IAC5D,qBAAqB,EAAE,uBAAuB;IAE9C,aAAa;IACb,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IAEpC,wBAAwB;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAEhD,iBAAiB;IACjB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAKX;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IAEA;IAHlB,YACkB,IAAgC,EAChD,OAAe,EACC,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAA4B;QAEhC,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAgC,EAChC,OAAe,EACf,OAAiC;IAEjC,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,yBAAyB;IACzB,uBAAuB,EAAE,yBAAyB;IAClD,sBAAsB,EAAE,wBAAwB;IAEhD,kBAAkB;IAClB,qBAAqB,EAAE,uBAAuB;IAC9C,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IAEtC,mBAAmB;IACnB,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,4BAA4B,EAAE,8BAA8B;IAC5D,qBAAqB,EAAE,uBAAuB;IAE9C,aAAa;IACb,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IAEpC,wBAAwB;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAEhD,qBAAqB;IACrB,qBAAqB,EAAE,uBAAuB;IAE9C,iBAAiB;IACjB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAKX;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IAEA;IAHlB,YACkB,IAAgC,EAChD,OAAe,EACC,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAA4B;QAEhC,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAgC,EAChC,OAAe,EACf,OAAiC;IAEjC,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Proof Generation — Platform-agnostic Protocol Reference
|
|
3
3
|
*
|
|
4
4
|
* Handles JCS canonicalization, SHA-256 digest generation, and Ed25519 JWS
|
|
5
|
-
* signing (compact format) according to
|
|
5
|
+
* signing (compact format) according to KYA-OS requirements 5.1, 5.2, 5.3, 5.6.
|
|
6
6
|
*
|
|
7
7
|
* This module is the authoritative proof implementation. All platform adapters
|
|
8
8
|
* (Node.js, Cloudflare Workers) inject a CryptoProvider and delegate here.
|
package/dist/proof/generator.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Proof Generation — Platform-agnostic Protocol Reference
|
|
3
3
|
*
|
|
4
4
|
* Handles JCS canonicalization, SHA-256 digest generation, and Ed25519 JWS
|
|
5
|
-
* signing (compact format) according to
|
|
5
|
+
* signing (compact format) according to KYA-OS requirements 5.1, 5.2, 5.3, 5.6.
|
|
6
6
|
*
|
|
7
7
|
* This module is the authoritative proof implementation. All platform adapters
|
|
8
8
|
* (Node.js, Cloudflare Workers) inject a CryptoProvider and delegate here.
|
package/dist/proof/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { ProofGenerator, createProofResponse, extractCanonicalData, type ProofAgentIdentity, type ToolRequest, type ToolResponse, type ProofOptions, } from './generator.js';
|
|
2
|
-
export { ProofVerifier, type ProofVerifierConfig, type ProofVerificationResult, } from './verifier.js';
|
|
2
|
+
export { ProofVerifier, validateMetaStructure, extractProofFromMeta, DEFAULT_CLOCK_SKEW_SECONDS, MIN_CLOCK_SKEW_SECONDS, MAX_CLOCK_SKEW_SECONDS, type ProofVerifierConfig, type ProofVerificationResult, } from './verifier.js';
|
|
3
3
|
export { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, createProofVerificationError, type ProofVerificationErrorCode, } from './errors.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC"}
|
package/dist/proof/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { ProofGenerator, createProofResponse, extractCanonicalData, } from './generator.js';
|
|
2
|
-
export { ProofVerifier, } from './verifier.js';
|
|
2
|
+
export { ProofVerifier, validateMetaStructure, extractProofFromMeta, DEFAULT_CLOCK_SKEW_SECONDS, MIN_CLOCK_SKEW_SECONDS, MAX_CLOCK_SKEW_SECONDS, } from './verifier.js';
|
|
3
3
|
export { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, createProofVerificationError, } from './errors.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/proof/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,GAE7B,MAAM,aAAa,CAAC"}
|
package/dist/proof/verifier.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { CryptoProvider } from "../providers/base.js";
|
|
|
9
9
|
import { ClockProvider } from "../providers/base.js";
|
|
10
10
|
import { NonceCacheProvider } from "../providers/base.js";
|
|
11
11
|
import { FetchProvider } from "../providers/base.js";
|
|
12
|
-
import { type DetachedProof } from "../types/protocol.js";
|
|
12
|
+
import { type DetachedProof, type MetaPolicy } from "../types/protocol.js";
|
|
13
13
|
import { type ProofVerificationErrorCode } from "./errors.js";
|
|
14
14
|
export interface ProofVerificationResult {
|
|
15
15
|
valid: boolean;
|
|
@@ -26,6 +26,12 @@ export interface ProofVerifierConfig {
|
|
|
26
26
|
timestampSkewSeconds?: number;
|
|
27
27
|
nonceTtlSeconds?: number;
|
|
28
28
|
}
|
|
29
|
+
/** Default timestamp skew for proof verification (seconds) */
|
|
30
|
+
export declare const DEFAULT_CLOCK_SKEW_SECONDS = 120;
|
|
31
|
+
/** Minimum allowed clock skew (seconds) */
|
|
32
|
+
export declare const MIN_CLOCK_SKEW_SECONDS = 30;
|
|
33
|
+
/** Maximum allowed clock skew (seconds) */
|
|
34
|
+
export declare const MAX_CLOCK_SKEW_SECONDS = 600;
|
|
29
35
|
export declare class ProofVerifier {
|
|
30
36
|
private cryptoService;
|
|
31
37
|
private clock;
|
|
@@ -34,6 +40,18 @@ export declare class ProofVerifier {
|
|
|
34
40
|
private timestampSkewSeconds;
|
|
35
41
|
private nonceTtlSeconds;
|
|
36
42
|
constructor(config: ProofVerifierConfig);
|
|
43
|
+
/**
|
|
44
|
+
* Update the timestamp skew from a server-advertised value.
|
|
45
|
+
* Clients SHOULD call this with the server's clockSkewSeconds from /.well-known/mcp.
|
|
46
|
+
* The value is clamped to [30, 600] seconds.
|
|
47
|
+
*
|
|
48
|
+
* @param skewSeconds - Server-advertised clock skew in seconds
|
|
49
|
+
*/
|
|
50
|
+
setTimestampSkew(skewSeconds: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get the current timestamp skew setting.
|
|
53
|
+
*/
|
|
54
|
+
getTimestampSkew(): number;
|
|
37
55
|
/**
|
|
38
56
|
* Verify a DetachedProof
|
|
39
57
|
* Automatically reconstructs canonical payload from proof.meta for signature verification
|
|
@@ -105,4 +123,34 @@ export declare class ProofVerifier {
|
|
|
105
123
|
*/
|
|
106
124
|
buildCanonicalPayload(meta: DetachedProof["meta"]): string;
|
|
107
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Validate _meta structure according to meta policy.
|
|
128
|
+
*
|
|
129
|
+
* In 'strict' mode, _meta must contain only 'proof'.
|
|
130
|
+
* In 'allow-extensions' mode, additional keys are permitted.
|
|
131
|
+
*
|
|
132
|
+
* @param meta - The _meta object from a response
|
|
133
|
+
* @param policy - Meta policy ('strict' or 'allow-extensions')
|
|
134
|
+
* @returns Validation result with valid flag and optional reason
|
|
135
|
+
*/
|
|
136
|
+
export declare function validateMetaStructure(meta: Record<string, unknown>, policy?: MetaPolicy): {
|
|
137
|
+
valid: boolean;
|
|
138
|
+
reason?: string;
|
|
139
|
+
extraKeys?: string[];
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Extract proof from _meta with policy validation.
|
|
143
|
+
*
|
|
144
|
+
* @param meta - The _meta object from a response
|
|
145
|
+
* @param policy - Meta policy ('strict' or 'allow-extensions')
|
|
146
|
+
* @returns Extracted proof or error result
|
|
147
|
+
*/
|
|
148
|
+
export declare function extractProofFromMeta(meta: Record<string, unknown>, policy?: MetaPolicy): {
|
|
149
|
+
success: true;
|
|
150
|
+
proof: DetachedProof;
|
|
151
|
+
} | {
|
|
152
|
+
success: false;
|
|
153
|
+
reason: string;
|
|
154
|
+
errorCode: string;
|
|
155
|
+
};
|
|
108
156
|
//# sourceMappingURL=verifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/proof/verifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAEL,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/proof/verifier.ts"],"names":[],"mappings":"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"}
|
package/dist/proof/verifier.js
CHANGED
|
@@ -9,6 +9,12 @@ import { validateDetachedProof, } from "../types/protocol.js";
|
|
|
9
9
|
import { canonicalize } from "json-canonicalize";
|
|
10
10
|
import { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, } from "./errors.js";
|
|
11
11
|
import { logger } from "../logging/index.js";
|
|
12
|
+
/** Default timestamp skew for proof verification (seconds) */
|
|
13
|
+
export const DEFAULT_CLOCK_SKEW_SECONDS = 120;
|
|
14
|
+
/** Minimum allowed clock skew (seconds) */
|
|
15
|
+
export const MIN_CLOCK_SKEW_SECONDS = 30;
|
|
16
|
+
/** Maximum allowed clock skew (seconds) */
|
|
17
|
+
export const MAX_CLOCK_SKEW_SECONDS = 600;
|
|
12
18
|
export class ProofVerifier {
|
|
13
19
|
cryptoService;
|
|
14
20
|
clock;
|
|
@@ -21,9 +27,28 @@ export class ProofVerifier {
|
|
|
21
27
|
this.clock = config.clockProvider;
|
|
22
28
|
this.nonceCache = config.nonceCacheProvider;
|
|
23
29
|
this.fetch = config.fetchProvider;
|
|
24
|
-
this.timestampSkewSeconds = config.timestampSkewSeconds ??
|
|
30
|
+
this.timestampSkewSeconds = config.timestampSkewSeconds ?? DEFAULT_CLOCK_SKEW_SECONDS;
|
|
25
31
|
this.nonceTtlSeconds = config.nonceTtlSeconds ?? 300; // Default 5 minutes
|
|
26
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Update the timestamp skew from a server-advertised value.
|
|
35
|
+
* Clients SHOULD call this with the server's clockSkewSeconds from /.well-known/mcp.
|
|
36
|
+
* The value is clamped to [30, 600] seconds.
|
|
37
|
+
*
|
|
38
|
+
* @param skewSeconds - Server-advertised clock skew in seconds
|
|
39
|
+
*/
|
|
40
|
+
setTimestampSkew(skewSeconds) {
|
|
41
|
+
if (typeof skewSeconds !== 'number' || !Number.isFinite(skewSeconds)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.timestampSkewSeconds = Math.max(MIN_CLOCK_SKEW_SECONDS, Math.min(MAX_CLOCK_SKEW_SECONDS, Math.floor(skewSeconds)));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the current timestamp skew setting.
|
|
48
|
+
*/
|
|
49
|
+
getTimestampSkew() {
|
|
50
|
+
return this.timestampSkewSeconds;
|
|
51
|
+
}
|
|
27
52
|
/**
|
|
28
53
|
* Verify a DetachedProof
|
|
29
54
|
* Automatically reconstructs canonical payload from proof.meta for signature verification
|
|
@@ -280,7 +305,7 @@ export class ProofVerifier {
|
|
|
280
305
|
aud: meta.audience, // Audience (who the token is for)
|
|
281
306
|
sub: meta.did, // Subject (agent DID)
|
|
282
307
|
iss: meta.did, // Issuer (agent DID - self-issued)
|
|
283
|
-
// Custom
|
|
308
|
+
// Custom KYA-OS proof claims
|
|
284
309
|
requestHash: meta.requestHash,
|
|
285
310
|
responseHash: meta.responseHash,
|
|
286
311
|
ts: meta.ts,
|
|
@@ -296,4 +321,62 @@ export class ProofVerifier {
|
|
|
296
321
|
return canonicalize(payload);
|
|
297
322
|
}
|
|
298
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Validate _meta structure according to meta policy.
|
|
326
|
+
*
|
|
327
|
+
* In 'strict' mode, _meta must contain only 'proof'.
|
|
328
|
+
* In 'allow-extensions' mode, additional keys are permitted.
|
|
329
|
+
*
|
|
330
|
+
* @param meta - The _meta object from a response
|
|
331
|
+
* @param policy - Meta policy ('strict' or 'allow-extensions')
|
|
332
|
+
* @returns Validation result with valid flag and optional reason
|
|
333
|
+
*/
|
|
334
|
+
export function validateMetaStructure(meta, policy = 'strict') {
|
|
335
|
+
const keys = Object.keys(meta);
|
|
336
|
+
const extraKeys = keys.filter(k => k !== 'proof');
|
|
337
|
+
if (policy === 'strict' && extraKeys.length > 0) {
|
|
338
|
+
return {
|
|
339
|
+
valid: false,
|
|
340
|
+
reason: `_meta contains keys other than 'proof' in strict mode: ${extraKeys.join(', ')}`,
|
|
341
|
+
extraKeys,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
return { valid: true };
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Extract proof from _meta with policy validation.
|
|
348
|
+
*
|
|
349
|
+
* @param meta - The _meta object from a response
|
|
350
|
+
* @param policy - Meta policy ('strict' or 'allow-extensions')
|
|
351
|
+
* @returns Extracted proof or error result
|
|
352
|
+
*/
|
|
353
|
+
export function extractProofFromMeta(meta, policy = 'strict') {
|
|
354
|
+
// Check for required proof field first
|
|
355
|
+
const proof = meta.proof;
|
|
356
|
+
if (!proof) {
|
|
357
|
+
return {
|
|
358
|
+
success: false,
|
|
359
|
+
reason: '_meta does not contain proof',
|
|
360
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.MISSING_REQUIRED_FIELD,
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
// Validate meta structure according to policy
|
|
364
|
+
const validation = validateMetaStructure(meta, policy);
|
|
365
|
+
if (!validation.valid) {
|
|
366
|
+
return {
|
|
367
|
+
success: false,
|
|
368
|
+
reason: validation.reason,
|
|
369
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.META_POLICY_VIOLATION,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
const proofValidation = validateDetachedProof(proof);
|
|
373
|
+
if (!proofValidation.success) {
|
|
374
|
+
return {
|
|
375
|
+
success: false,
|
|
376
|
+
reason: proofValidation.error?.message ?? 'Invalid proof structure',
|
|
377
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.INVALID_PROOF_STRUCTURE,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
return { success: true, proof: proofValidation.data };
|
|
381
|
+
}
|
|
299
382
|
//# sourceMappingURL=verifier.js.map
|