@kya-os/mcp-i-cloudflare 1.14.1 → 1.14.2

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.
Files changed (111) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +23 -5
  3. package/dist/agent.js.map +1 -1
  4. package/dist/audit/deployment-binding.d.ts +54 -54
  5. package/dist/config.d.ts +4 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +2 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/delegation-http/anchor-do.d.ts.map +1 -1
  10. package/dist/delegation-http/anchor-do.js +108 -10
  11. package/dist/delegation-http/anchor-do.js.map +1 -1
  12. package/dist/delegation-http/anchor-registration-validate.d.ts +4 -0
  13. package/dist/delegation-http/anchor-registration-validate.d.ts.map +1 -1
  14. package/dist/delegation-http/anchor-registration-validate.js +9 -0
  15. package/dist/delegation-http/anchor-registration-validate.js.map +1 -1
  16. package/dist/delegation-http/anchor-registration.d.ts.map +1 -1
  17. package/dist/delegation-http/anchor-registration.js +119 -29
  18. package/dist/delegation-http/anchor-registration.js.map +1 -1
  19. package/dist/delegation-http/bearer-retry.d.ts +6 -14
  20. package/dist/delegation-http/bearer-retry.d.ts.map +1 -1
  21. package/dist/delegation-http/bearer-retry.js +37 -73
  22. package/dist/delegation-http/bearer-retry.js.map +1 -1
  23. package/dist/delegation-http/challenge.d.ts +4 -6
  24. package/dist/delegation-http/challenge.d.ts.map +1 -1
  25. package/dist/delegation-http/challenge.js +10 -8
  26. package/dist/delegation-http/challenge.js.map +1 -1
  27. package/dist/delegation-http/consent-anchor-bridge.d.ts +5 -8
  28. package/dist/delegation-http/consent-anchor-bridge.d.ts.map +1 -1
  29. package/dist/delegation-http/consent-anchor-bridge.js +236 -40
  30. package/dist/delegation-http/consent-anchor-bridge.js.map +1 -1
  31. package/dist/delegation-http/constants.d.ts +2 -0
  32. package/dist/delegation-http/constants.d.ts.map +1 -1
  33. package/dist/delegation-http/constants.js +2 -0
  34. package/dist/delegation-http/constants.js.map +1 -1
  35. package/dist/delegation-http/credential-consent.d.ts +3 -1
  36. package/dist/delegation-http/credential-consent.d.ts.map +1 -1
  37. package/dist/delegation-http/credential-consent.js +11 -1
  38. package/dist/delegation-http/credential-consent.js.map +1 -1
  39. package/dist/delegation-http/native-capabilities.d.ts +4 -0
  40. package/dist/delegation-http/native-capabilities.d.ts.map +1 -0
  41. package/dist/delegation-http/native-capabilities.js +53 -0
  42. package/dist/delegation-http/native-capabilities.js.map +1 -0
  43. package/dist/delegation-http/native-fetch.d.ts +3 -0
  44. package/dist/delegation-http/native-fetch.d.ts.map +1 -0
  45. package/dist/delegation-http/native-fetch.js +13 -0
  46. package/dist/delegation-http/native-fetch.js.map +1 -0
  47. package/dist/delegation-http/native-http.d.ts +102 -0
  48. package/dist/delegation-http/native-http.d.ts.map +1 -0
  49. package/dist/delegation-http/native-http.js +191 -0
  50. package/dist/delegation-http/native-http.js.map +1 -0
  51. package/dist/delegation-http/native-oauth.d.ts +26 -0
  52. package/dist/delegation-http/native-oauth.d.ts.map +1 -0
  53. package/dist/delegation-http/native-oauth.js +369 -0
  54. package/dist/delegation-http/native-oauth.js.map +1 -0
  55. package/dist/delegation-http/native-pickup.d.ts +20 -0
  56. package/dist/delegation-http/native-pickup.d.ts.map +1 -0
  57. package/dist/delegation-http/native-pickup.js +227 -0
  58. package/dist/delegation-http/native-pickup.js.map +1 -0
  59. package/dist/delegation-http/pickup-routes.d.ts +1 -0
  60. package/dist/delegation-http/pickup-routes.d.ts.map +1 -1
  61. package/dist/delegation-http/pickup-routes.js +55 -1
  62. package/dist/delegation-http/pickup-routes.js.map +1 -1
  63. package/dist/delegation-http/register.d.ts.map +1 -1
  64. package/dist/delegation-http/register.js +4 -7
  65. package/dist/delegation-http/register.js.map +1 -1
  66. package/dist/delegation-http/remote-issuer.d.ts +37 -0
  67. package/dist/delegation-http/remote-issuer.d.ts.map +1 -0
  68. package/dist/delegation-http/remote-issuer.js +289 -0
  69. package/dist/delegation-http/remote-issuer.js.map +1 -0
  70. package/dist/delegation-http/sid.d.ts +5 -2
  71. package/dist/delegation-http/sid.d.ts.map +1 -1
  72. package/dist/delegation-http/sid.js +8 -2
  73. package/dist/delegation-http/sid.js.map +1 -1
  74. package/dist/delegation-http/types.d.ts +18 -5
  75. package/dist/delegation-http/types.d.ts.map +1 -1
  76. package/dist/delegation-http/well-known-capability.d.ts.map +1 -1
  77. package/dist/delegation-http/well-known-capability.js +5 -0
  78. package/dist/delegation-http/well-known-capability.js.map +1 -1
  79. package/dist/helpers/env-mapper.d.ts.map +1 -1
  80. package/dist/helpers/env-mapper.js +4 -0
  81. package/dist/helpers/env-mapper.js.map +1 -1
  82. package/dist/index.d.ts +4 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +2 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/proof-generator.d.ts +2 -0
  87. package/dist/proof-generator.d.ts.map +1 -1
  88. package/dist/proof-generator.js +1 -0
  89. package/dist/proof-generator.js.map +1 -1
  90. package/dist/runtime/oauth-handler.d.ts.map +1 -1
  91. package/dist/runtime/oauth-handler.js +44 -1
  92. package/dist/runtime/oauth-handler.js.map +1 -1
  93. package/dist/security/mcp-admission.d.ts +43 -0
  94. package/dist/security/mcp-admission.d.ts.map +1 -0
  95. package/dist/security/mcp-admission.js +165 -0
  96. package/dist/security/mcp-admission.js.map +1 -0
  97. package/dist/security/mcp-holder-admission.d.ts +19 -0
  98. package/dist/security/mcp-holder-admission.d.ts.map +1 -0
  99. package/dist/security/mcp-holder-admission.js +52 -0
  100. package/dist/security/mcp-holder-admission.js.map +1 -0
  101. package/dist/security/presented-delegation.d.ts +13 -0
  102. package/dist/security/presented-delegation.d.ts.map +1 -0
  103. package/dist/security/presented-delegation.js +73 -0
  104. package/dist/security/presented-delegation.js.map +1 -0
  105. package/dist/services/consent.service.d.ts +10 -0
  106. package/dist/services/consent.service.d.ts.map +1 -1
  107. package/dist/services/consent.service.js +15 -3
  108. package/dist/services/consent.service.js.map +1 -1
  109. package/dist/types.d.ts +4 -0
  110. package/dist/types.d.ts.map +1 -1
  111. package/package.json +3 -3
@@ -0,0 +1,52 @@
1
+ import { KYA_OS_CARD_PROOF_META_KEY, requireProof, } from "@kya-os/mcp/card";
2
+ import { hasMcpRequestProof } from "./presented-delegation";
3
+ function deny(code) {
4
+ return {
5
+ allowed: false,
6
+ result: {
7
+ isError: true,
8
+ content: [{ type: "text", text: JSON.stringify({ error: code }) }],
9
+ },
10
+ };
11
+ }
12
+ /**
13
+ * Authenticate the live invoker before the existing consent/delegation gate.
14
+ * This grants no authority: the runtime must still verify the grant, account,
15
+ * provider and scopes. Invalid native proofs never fall back to an executor.
16
+ */
17
+ export function createMcpHolderAdmission(options) {
18
+ return async (request, context) => {
19
+ try {
20
+ const { _meta, ...params } = request.params ?? {};
21
+ if (request.method !== "tools/call" || typeof params.name !== "string")
22
+ return deny("invalid_request");
23
+ const mode = await options.modeForTool(params.name);
24
+ if (!["native", "runtime-executor", "public"].includes(mode))
25
+ return deny("policy_unavailable");
26
+ if (mode === "native" || hasMcpRequestProof(_meta)) {
27
+ // The canonical carrier wins even when null/malformed. Published core
28
+ // 1.15 uses nullish fallback; do not let a legacy proof replace an
29
+ // explicitly empty canonical proof on this required admission path.
30
+ if (_meta &&
31
+ Object.prototype.hasOwnProperty.call(_meta, KYA_OS_CARD_PROOF_META_KEY) &&
32
+ _meta[KYA_OS_CARD_PROOF_META_KEY] == null)
33
+ return deny("proof_missing");
34
+ const guard = requireProof(await options.proof(context));
35
+ const proof = await guard({ method: request.method, params }, _meta);
36
+ return proof.ok
37
+ ? { allowed: true, holder: { did: proof.did, level: proof.level } }
38
+ : deny(proof.error.code);
39
+ }
40
+ if (mode === "runtime-executor") {
41
+ return (await options.authorizeExecutor?.(request, context)) === true
42
+ ? { allowed: true }
43
+ : deny("executor_not_authorized");
44
+ }
45
+ return { allowed: true };
46
+ }
47
+ catch {
48
+ return deny("authorization_unavailable");
49
+ }
50
+ };
51
+ }
52
+ //# sourceMappingURL=mcp-holder-admission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-holder-admission.js","sourceRoot":"","sources":["../../src/security/mcp-holder-admission.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,YAAY,GAEb,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAuB5D,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SACnE;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACpE,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC1D,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,sEAAsE;gBACtE,mEAAmE;gBACnE,oEAAoE;gBACpE,IACE,KAAK;oBACL,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,KAAK,EACL,0BAA0B,CAC3B;oBACD,KAAK,CAAC,0BAA0B,CAAC,IAAI,IAAI;oBAEzC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;gBACrE,OAAO,KAAK,CAAC,EAAE;oBACb,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE;oBACnE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI;oBACnE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;oBACnB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { JSONRPCRequest } from "@modelcontextprotocol/sdk/types.js";
2
+ /** Parsing identifies a credential carrier only. It establishes no authority. */
3
+ export declare function decodeJwtPayload(jwt: string): Record<string, unknown> | null;
4
+ export declare class InvalidDelegationPresentation extends Error {
5
+ constructor();
6
+ }
7
+ export declare function readHeaderDelegation(getHeader: (name: string) => string | null): string | undefined;
8
+ /** Presence, including malformed values, must never select an unsigned lane. */
9
+ export declare function hasMcpRequestProof(meta: unknown): boolean;
10
+ /** Keep the original request intact; handlers consume this unverified token
11
+ * out of band and still require the existing delegation verifier to accept it. */
12
+ export declare function readPresentedMcpDelegation(request: JSONRPCRequest, headers?: Record<string, string | string[] | undefined>): string | undefined;
13
+ //# sourceMappingURL=presented-delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presented-delegation.d.ts","sourceRoot":"","sources":["../../src/security/presented-delegation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAc5E;AAED,qBAAa,6BAA8B,SAAQ,KAAK;;CAIvD;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GACzC,MAAM,GAAG,SAAS,CAiBpB;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAQzD;AAED;kFACkF;AAClF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAM,GAC1D,MAAM,GAAG,SAAS,CA4BpB"}
@@ -0,0 +1,73 @@
1
+ import { KYA_OS_CARD_PROOF_META_KEY, LEGACY_CARD_PROOF_META_KEY, } from "@kya-os/mcp/card";
2
+ import { FALLBACK_DELEGATION_HEADER } from "../delegation-http/constants";
3
+ /** Parsing identifies a credential carrier only. It establishes no authority. */
4
+ export function decodeJwtPayload(jwt) {
5
+ const parts = jwt.split(".");
6
+ if (parts.length !== 3)
7
+ return null;
8
+ try {
9
+ const b64 = parts[1].replace(/-/g, "+").replace(/_/g, "/");
10
+ const payload = JSON.parse(atob(b64 + "=".repeat((4 - (b64.length % 4)) % 4)));
11
+ return payload && typeof payload === "object" && !Array.isArray(payload)
12
+ ? payload
13
+ : null;
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ }
19
+ export class InvalidDelegationPresentation extends Error {
20
+ constructor() {
21
+ super("Invalid or conflicting delegation carriers");
22
+ }
23
+ }
24
+ export function readHeaderDelegation(getHeader) {
25
+ const auth = getHeader("Authorization");
26
+ const bearer = auth
27
+ ? /^Bearer\s+(.+)$/i.exec(auth.trim())?.[1].trim()
28
+ : undefined;
29
+ const bearerPayload = bearer ? decodeJwtPayload(bearer) : null;
30
+ const credential = bearerPayload && "vc" in bearerPayload ? bearer : undefined;
31
+ const fallback = getHeader(FALLBACK_DELEGATION_HEADER);
32
+ if (fallback !== null) {
33
+ const token = fallback.trim();
34
+ const payload = decodeJwtPayload(token);
35
+ if (!payload || !("vc" in payload) || (credential && credential !== token))
36
+ throw new InvalidDelegationPresentation();
37
+ return token;
38
+ }
39
+ return credential;
40
+ }
41
+ /** Presence, including malformed values, must never select an unsigned lane. */
42
+ export function hasMcpRequestProof(meta) {
43
+ return (meta !== null &&
44
+ typeof meta === "object" &&
45
+ [KYA_OS_CARD_PROOF_META_KEY, LEGACY_CARD_PROOF_META_KEY].some((key) => Object.prototype.hasOwnProperty.call(meta, key)));
46
+ }
47
+ /** Keep the original request intact; handlers consume this unverified token
48
+ * out of band and still require the existing delegation verifier to accept it. */
49
+ export function readPresentedMcpDelegation(request, headers = {}) {
50
+ const headerToken = readHeaderDelegation((name) => {
51
+ const matches = Object.entries(headers).filter(([key, value]) => key.toLowerCase() === name.toLowerCase() && value !== undefined);
52
+ if (matches.length > 1)
53
+ throw new InvalidDelegationPresentation();
54
+ const value = matches[0]?.[1];
55
+ if (Array.isArray(value)) {
56
+ if (value.length !== 1)
57
+ throw new InvalidDelegationPresentation();
58
+ return value[0];
59
+ }
60
+ return value ?? null;
61
+ });
62
+ const params = request.params;
63
+ if (!params ||
64
+ !Object.prototype.hasOwnProperty.call(params, "delegationToken"))
65
+ return headerToken;
66
+ const bodyToken = params.delegationToken;
67
+ if (typeof bodyToken !== "string" ||
68
+ !bodyToken.trim() ||
69
+ (headerToken !== undefined && bodyToken !== headerToken))
70
+ throw new InvalidDelegationPresentation();
71
+ return bodyToken;
72
+ }
73
+ //# sourceMappingURL=presented-delegation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presented-delegation.js","sourceRoot":"","sources":["../../src/security/presented-delegation.ts"],"names":[],"mappings":"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"}
@@ -650,6 +650,7 @@ export declare class ConsentService {
650
650
  tool: string;
651
651
  scopes: string[];
652
652
  projectId: string;
653
+ binding?: string;
653
654
  }): Promise<string>;
654
655
  /**
655
656
  * Verify a grant-bound identity assertion minted by `mintIdentityAssertion`.
@@ -669,6 +670,15 @@ export declare class ConsentService {
669
670
  * bypass belongs at the call site (see `isDevConsentTestMode`'s
670
671
  * docstring), never as a predictable/empty signing key inside this helper.
671
672
  */
673
+ verifyNativeIdentityAssertion(token: string, expected: {
674
+ sid: string;
675
+ agentDid: string;
676
+ tool: string;
677
+ scopes: string[];
678
+ projectId: string;
679
+ provider: string;
680
+ binding: string;
681
+ }): Promise<string | null>;
672
682
  private verifyIdentityAssertion;
673
683
  /**
674
684
  * Build full DelegationRecord format request (future format)
@@ -1 +1 @@
1
- {"version":3,"file":"consent.service.d.ts","sourceRoot":"","sources":["../../src/services/consent.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consent.service.d.ts","sourceRoot":"","sources":["../../src/services/consent.service.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  import { ConsentConfigService } from "./consent-config.service";
10
10
  import { TemplateRenderer } from "./consent-templates/template-renderer";
11
11
  import { DEFAULT_AGENTSHIELD_URL, DEFAULT_SESSION_CACHE_TTL, KEY_PAIR_TTL_SECONDS, CONSENT_PROVIDER_TYPES, } from "../constants";
12
- import { STORAGE_KEYS, isPendingDelegationId, } from "../constants/storage-keys";
12
+ import { STORAGE_KEYS, isPendingDelegationId } from "../constants/storage-keys";
13
13
  import { loadDay0Config, getDelegationFieldName } from "../utils/day0-config";
14
14
  import { buildProviderAuthorizeUrl } from "../runtime/oidc/authorize-url.js";
15
15
  import { resolveIdpScopes } from "../runtime/oidc/idp-scopes.js";
@@ -5162,6 +5162,7 @@ export class ConsentService {
5162
5162
  tool: params.tool,
5163
5163
  scopesHash,
5164
5164
  projectId: params.projectId,
5165
+ ...(params.binding ? { binding: params.binding } : {}),
5165
5166
  exp,
5166
5167
  });
5167
5168
  const payloadB64 = this.base64UrlEncodeString(payload);
@@ -5187,6 +5188,11 @@ export class ConsentService {
5187
5188
  * bypass belongs at the call site (see `isDevConsentTestMode`'s
5188
5189
  * docstring), never as a predictable/empty signing key inside this helper.
5189
5190
  */
5191
+ async verifyNativeIdentityAssertion(token, expected) {
5192
+ if (!expected.provider || !expected.binding || token.length > 16384)
5193
+ return null;
5194
+ return this.verifyIdentityAssertion(token, expected);
5195
+ }
5190
5196
  async verifyIdentityAssertion(token, expected) {
5191
5197
  const secret = this.env.OAUTH_ENCRYPTION_SECRET;
5192
5198
  if (!secret) {
@@ -5203,6 +5209,10 @@ export class ConsentService {
5203
5209
  const payloadB64 = token.substring(dotIndex + 1);
5204
5210
  const payloadJson = this.base64UrlDecodeString(payloadB64);
5205
5211
  const payload = JSON.parse(payloadJson);
5212
+ if ((expected.provider !== undefined &&
5213
+ payload.provider !== expected.provider) ||
5214
+ (expected.binding !== undefined && payload.binding !== expected.binding))
5215
+ return null;
5206
5216
  if (payload.sid !== expected.sid) {
5207
5217
  logger.warn("[ConsentService] Identity assertion sid mismatch");
5208
5218
  return null;
@@ -5225,7 +5235,7 @@ export class ConsentService {
5225
5235
  return null;
5226
5236
  }
5227
5237
  if (typeof payload.exp !== "number" ||
5228
- payload.exp < Math.floor(Date.now() / 1000)) {
5238
+ payload.exp <= Math.floor(Date.now() / 1000)) {
5229
5239
  logger.warn("[ConsentService] Identity assertion expired");
5230
5240
  return null;
5231
5241
  }
@@ -5244,7 +5254,9 @@ export class ConsentService {
5244
5254
  return payload.userDid;
5245
5255
  }
5246
5256
  catch (error) {
5247
- logger.error("[ConsentService] Identity assertion verification error:", error);
5257
+ if (expected.binding === undefined) {
5258
+ logger.error("[ConsentService] Identity assertion verification error:", error);
5259
+ }
5248
5260
  return null;
5249
5261
  }
5250
5262
  }