@kya-os/mcp 1.16.2 → 1.18.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/AUDITABILITY.md +129 -8
- package/CHANGELOG.md +641 -0
- package/CONFORMANCE.md +12 -6
- package/README.md +67 -26
- package/SPEC.md +105 -18
- package/dist/audit/adapters/legacy-audit-log.d.ts +0 -1
- package/dist/audit/adapters/mcp.d.ts +0 -1
- package/dist/audit/adapters/mcp.js +35 -20
- package/dist/audit/adapters/mcp.js.map +1 -1
- package/dist/audit/adapters/references.d.ts +9 -0
- package/dist/audit/adapters/references.js +22 -0
- package/dist/audit/adapters/references.js.map +1 -0
- package/dist/audit/assurance.d.ts +0 -1
- package/dist/audit/checkpoint-coordinator.d.ts +0 -1
- package/dist/audit/checkpoint.d.ts +17 -1
- package/dist/audit/checkpoint.js +76 -21
- package/dist/audit/checkpoint.js.map +1 -1
- package/dist/audit/cli.d.ts +0 -1
- package/dist/audit/crypto.d.ts +0 -1
- package/dist/audit/crypto.js +12 -3
- package/dist/audit/crypto.js.map +1 -1
- package/dist/audit/errors.d.ts +0 -1
- package/dist/audit/evidence.d.ts +0 -1
- package/dist/audit/index.d.ts +0 -1
- package/dist/audit/integrity.d.ts +0 -1
- package/dist/audit/merkle.d.ts +0 -1
- package/dist/audit/mirror-service.d.ts +0 -1
- package/dist/audit/projection.d.ts +1 -1
- package/dist/audit/projection.js +23 -2
- package/dist/audit/projection.js.map +1 -1
- package/dist/audit/providers/anchor.d.ts +0 -1
- package/dist/audit/providers/evidence.d.ts +0 -1
- package/dist/audit/providers/journal.d.ts +0 -1
- package/dist/audit/providers/memory-journal.d.ts +0 -1
- package/dist/audit/providers/observer.d.ts +0 -1
- package/dist/audit/providers/outbox.d.ts +35 -6
- package/dist/audit/providers/outbox.js +46 -8
- package/dist/audit/providers/outbox.js.map +1 -1
- package/dist/audit/providers/recorder-client.d.ts +0 -1
- package/dist/audit/providers/source-state.d.ts +24 -2
- package/dist/audit/providers/source-state.js +65 -44
- package/dist/audit/providers/source-state.js.map +1 -1
- package/dist/audit/read-contract.d.ts +0 -1
- package/dist/audit/read-service.d.ts +2 -3
- package/dist/audit/read-service.js +17 -12
- package/dist/audit/read-service.js.map +1 -1
- package/dist/audit/recorder-service.d.ts +33 -5
- package/dist/audit/recorder-service.js +116 -20
- package/dist/audit/recorder-service.js.map +1 -1
- package/dist/audit/reference-recorder.d.ts +0 -1
- package/dist/audit/replay-bundle.d.ts +0 -1
- package/dist/audit/replay-bundle.js +143 -36
- package/dist/audit/replay-bundle.js.map +1 -1
- package/dist/audit/schemas.d.ts +0 -1
- package/dist/audit/service.d.ts +6 -3
- package/dist/audit/service.js +55 -24
- package/dist/audit/service.js.map +1 -1
- package/dist/audit/testing/index.d.ts +0 -1
- package/dist/audit/testing/provider-contracts.d.ts +1 -2
- package/dist/audit/testing/provider-contracts.js +32 -2
- package/dist/audit/testing/provider-contracts.js.map +1 -1
- package/dist/audit/types.d.ts +0 -1
- package/dist/audit/verifier.d.ts +57 -5
- package/dist/audit/verifier.js +240 -49
- package/dist/audit/verifier.js.map +1 -1
- package/dist/auth/handshake.d.ts +12 -1
- package/dist/auth/handshake.js +44 -11
- package/dist/auth/handshake.js.map +1 -1
- package/dist/auth/index.d.ts +0 -1
- package/dist/auth/types.d.ts +0 -1
- package/dist/authz/accountability.d.ts +0 -1
- package/dist/authz/adapter.d.ts +0 -1
- package/dist/authz/examples/inmemory-oidc.d.ts +0 -1
- package/dist/authz/index.d.ts +0 -1
- package/dist/authz/oidc/authorize.d.ts +0 -1
- package/dist/authz/oidc/metadata.d.ts +0 -1
- package/dist/authz/oidc/oidc-adapter.d.ts +0 -1
- package/dist/authz/oidc/oidc-adapter.js +51 -3
- package/dist/authz/oidc/oidc-adapter.js.map +1 -1
- package/dist/authz/oidc/pending-flow-store.d.ts +6 -1
- package/dist/authz/oidc/pending-flow-store.js +22 -2
- package/dist/authz/oidc/pending-flow-store.js.map +1 -1
- package/dist/authz/oidc/pkce.d.ts +0 -1
- package/dist/authz/registry.d.ts +0 -1
- package/dist/authz/requirement.d.ts +0 -1
- package/dist/card/build.d.ts +0 -1
- package/dist/card/builder.d.ts +0 -1
- package/dist/card/cimd.d.ts +19 -5
- package/dist/card/cimd.js +52 -7
- package/dist/card/cimd.js.map +1 -1
- package/dist/card/delegation.d.ts +12 -4
- package/dist/card/delegation.js +38 -22
- package/dist/card/delegation.js.map +1 -1
- package/dist/card/emit.d.ts +0 -1
- package/dist/card/index.d.ts +0 -1
- package/dist/card/middleware.d.ts +0 -1
- package/dist/card/proof/build.d.ts +0 -1
- package/dist/card/proof/canonical.d.ts +0 -1
- package/dist/card/proof/canonical.js +6 -1
- package/dist/card/proof/canonical.js.map +1 -1
- package/dist/card/proof/http-sig.d.ts +0 -1
- package/dist/card/proof/index.d.ts +0 -1
- package/dist/card/proof/nonce-cache.d.ts +15 -14
- package/dist/card/proof/nonce-cache.js +22 -20
- package/dist/card/proof/nonce-cache.js.map +1 -1
- package/dist/card/proof/signer.d.ts +0 -1
- package/dist/card/proof/types.d.ts +10 -4
- package/dist/card/proof/types.js +2 -2
- package/dist/card/proof/verify.d.ts +0 -1
- package/dist/card/proof/verify.js +17 -3
- package/dist/card/proof/verify.js.map +1 -1
- package/dist/card/resolve.d.ts +0 -1
- package/dist/card/resolve.js +13 -8
- package/dist/card/resolve.js.map +1 -1
- package/dist/card/revocation.d.ts +0 -1
- package/dist/card/revocation.js +18 -6
- package/dist/card/revocation.js.map +1 -1
- package/dist/card/schema.d.ts +7 -6
- package/dist/card/schema.js +7 -3
- package/dist/card/schema.js.map +1 -1
- package/dist/card/verify.d.ts +0 -1
- package/dist/delegation/audience-validator.d.ts +0 -1
- package/dist/delegation/bitstring.d.ts +0 -1
- package/dist/delegation/cascading-revocation.d.ts +1 -2
- package/dist/delegation/cascading-revocation.js +34 -36
- package/dist/delegation/cascading-revocation.js.map +1 -1
- package/dist/delegation/chain-enforcement.d.ts +42 -5
- package/dist/delegation/chain-enforcement.js +127 -34
- package/dist/delegation/chain-enforcement.js.map +1 -1
- package/dist/delegation/delegation-graph.d.ts +30 -1
- package/dist/delegation/delegation-graph.js +33 -0
- package/dist/delegation/delegation-graph.js.map +1 -1
- package/dist/delegation/delegation-registration.d.ts +22 -0
- package/dist/delegation/delegation-registration.js +51 -0
- package/dist/delegation/delegation-registration.js.map +1 -0
- package/dist/delegation/delegation-status-entry.d.ts +22 -0
- package/dist/delegation/delegation-status-entry.js +42 -0
- package/dist/delegation/delegation-status-entry.js.map +1 -0
- package/dist/delegation/did-key-resolver.d.ts +0 -1
- package/dist/delegation/did-key-resolver.js +15 -4
- package/dist/delegation/did-key-resolver.js.map +1 -1
- package/dist/delegation/did-linkage.d.ts +0 -1
- package/dist/delegation/did-resolver-registry.d.ts +0 -1
- package/dist/delegation/did-web-resolver.d.ts +0 -1
- package/dist/delegation/did-web-resolver.js +40 -5
- package/dist/delegation/did-web-resolver.js.map +1 -1
- package/dist/delegation/holder-binding.d.ts +11 -11
- package/dist/delegation/holder-binding.js +8 -17
- package/dist/delegation/holder-binding.js.map +1 -1
- package/dist/delegation/index.d.ts +0 -1
- package/dist/delegation/outbound-headers.d.ts +0 -1
- package/dist/delegation/outbound-proof.d.ts +0 -1
- package/dist/delegation/scope-matcher.d.ts +25 -2
- package/dist/delegation/scope-matcher.js +75 -5
- package/dist/delegation/scope-matcher.js.map +1 -1
- package/dist/delegation/status-cache.d.ts +0 -1
- package/dist/delegation/statuslist-manager.d.ts +18 -2
- package/dist/delegation/statuslist-manager.js +40 -14
- package/dist/delegation/statuslist-manager.js.map +1 -1
- package/dist/delegation/storage/memory-graph-storage.d.ts +9 -3
- package/dist/delegation/storage/memory-graph-storage.js +28 -14
- package/dist/delegation/storage/memory-graph-storage.js.map +1 -1
- package/dist/delegation/storage/memory-statuslist-storage.d.ts +0 -1
- package/dist/delegation/utils.d.ts +5 -5
- package/dist/delegation/utils.js +4 -4
- package/dist/delegation/utils.js.map +1 -1
- package/dist/delegation/vc-issuer.d.ts +0 -1
- package/dist/delegation/vc-jwt-verify.d.ts +7 -2
- package/dist/delegation/vc-jwt-verify.js +55 -3
- package/dist/delegation/vc-jwt-verify.js.map +1 -1
- package/dist/delegation/vc-verification-checks.d.ts +0 -1
- package/dist/delegation/vc-verification-checks.js +9 -5
- package/dist/delegation/vc-verification-checks.js.map +1 -1
- package/dist/delegation/vc-verifier.d.ts +0 -1
- package/dist/delegation/vc-verifier.types.d.ts +0 -1
- package/dist/delegation/verification-method-key.d.ts +0 -1
- package/dist/delegation/verification-method-key.js +4 -3
- package/dist/delegation/verification-method-key.js.map +1 -1
- package/dist/errors.d.ts +0 -1
- package/dist/extension/declaration.d.ts +0 -1
- package/dist/extension/gate.d.ts +0 -1
- package/dist/extension/index.d.ts +0 -1
- package/dist/extension/settings.d.ts +0 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/cheqd/dlr.d.ts +0 -1
- package/dist/integrations/cheqd/dlr.js +6 -1
- package/dist/integrations/cheqd/dlr.js.map +1 -1
- package/dist/integrations/cheqd/index.d.ts +0 -1
- package/dist/integrations/cheqd/linkage.d.ts +0 -1
- package/dist/integrations/cheqd/registrar.d.ts +0 -1
- package/dist/integrations/cheqd/resolver.d.ts +0 -1
- package/dist/integrations/cheqd/statuslist-resolver.d.ts +0 -1
- package/dist/logging/index.d.ts +0 -1
- package/dist/logging/logger.d.ts +0 -1
- package/dist/middleware/index.d.ts +0 -1
- package/dist/middleware/kya-os-transport.d.ts +5 -3
- package/dist/middleware/kya-os-transport.js +58 -24
- package/dist/middleware/kya-os-transport.js.map +1 -1
- package/dist/middleware/with-kya-os-server.d.ts +30 -4
- package/dist/middleware/with-kya-os-server.js +19 -0
- package/dist/middleware/with-kya-os-server.js.map +1 -1
- package/dist/middleware/with-kya-os.config-types.d.ts +32 -4
- package/dist/middleware/with-kya-os.d.ts +0 -1
- package/dist/middleware/with-kya-os.delegation-gate.d.ts +2 -1
- package/dist/middleware/with-kya-os.delegation-gate.js +37 -9
- package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.delegation-verify.d.ts +1 -1
- package/dist/middleware/with-kya-os.delegation-verify.js +52 -9
- package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -1
- package/dist/middleware/with-kya-os.deps.d.ts +0 -1
- package/dist/middleware/with-kya-os.grants.d.ts +13 -6
- package/dist/middleware/with-kya-os.grants.js +56 -18
- package/dist/middleware/with-kya-os.grants.js.map +1 -1
- package/dist/middleware/with-kya-os.helpers.d.ts +0 -1
- package/dist/middleware/with-kya-os.js +14 -4
- package/dist/middleware/with-kya-os.js.map +1 -1
- package/dist/middleware/with-kya-os.policy-gate.d.ts +0 -1
- package/dist/middleware/with-kya-os.policy-gate.js +18 -9
- package/dist/middleware/with-kya-os.policy-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.protocol.d.ts +0 -1
- package/dist/middleware/with-kya-os.session.d.ts +28 -1
- package/dist/middleware/with-kya-os.session.js +146 -7
- package/dist/middleware/with-kya-os.session.js.map +1 -1
- package/dist/middleware/with-kya-os.types.d.ts +28 -5
- package/dist/policy/approval.d.ts +13 -2
- package/dist/policy/approval.js +15 -4
- package/dist/policy/approval.js.map +1 -1
- package/dist/policy/classifier.d.ts +0 -1
- package/dist/policy/default-engine.d.ts +5 -2
- package/dist/policy/default-engine.js +10 -2
- package/dist/policy/default-engine.js.map +1 -1
- package/dist/policy/engine.d.ts +0 -1
- package/dist/policy/index.d.ts +0 -1
- package/dist/policy/projection.d.ts +0 -1
- package/dist/policy/types.d.ts +0 -1
- package/dist/proof/covered-request.d.ts +46 -0
- package/dist/proof/covered-request.js +107 -0
- package/dist/proof/covered-request.js.map +1 -0
- package/dist/proof/errors.d.ts +3 -1
- package/dist/proof/errors.js +5 -0
- package/dist/proof/errors.js.map +1 -1
- package/dist/proof/generator.d.ts +51 -1
- package/dist/proof/generator.js +71 -13
- package/dist/proof/generator.js.map +1 -1
- package/dist/proof/index.d.ts +1 -2
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/verifier.d.ts +50 -12
- package/dist/proof/verifier.js +164 -84
- package/dist/proof/verifier.js.map +1 -1
- package/dist/providers/audit-log.d.ts +0 -1
- package/dist/providers/base.d.ts +19 -1
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/grant-store.d.ts +8 -2
- package/dist/providers/grant-store.js +5 -5
- package/dist/providers/grant-store.js.map +1 -1
- package/dist/providers/index.d.ts +0 -1
- package/dist/providers/memory.d.ts +19 -1
- package/dist/providers/memory.js +53 -7
- package/dist/providers/memory.js.map +1 -1
- package/dist/providers/node-crypto.d.ts +4 -1
- package/dist/providers/node-crypto.js +32 -9
- package/dist/providers/node-crypto.js.map +1 -1
- package/dist/providers/nonce-admission.d.ts +31 -0
- package/dist/providers/nonce-admission.js +47 -0
- package/dist/providers/nonce-admission.js.map +1 -0
- package/dist/providers/nonce-retention.d.ts +8 -0
- package/dist/providers/nonce-retention.js +15 -0
- package/dist/providers/nonce-retention.js.map +1 -0
- package/dist/providers/runtime-fetch.d.ts +0 -1
- package/dist/providers/system-clock.d.ts +0 -1
- package/dist/providers/web-crypto.d.ts +0 -1
- package/dist/providers/web-crypto.js +7 -1
- package/dist/providers/web-crypto.js.map +1 -1
- package/dist/session/index.d.ts +0 -1
- package/dist/session/manager.d.ts +13 -1
- package/dist/session/manager.js +25 -9
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-store.d.ts +0 -1
- package/dist/types/protocol.d.ts +11 -3
- package/dist/types/protocol.js +21 -14
- package/dist/types/protocol.js.map +1 -1
- package/dist/utils/base58.d.ts +16 -3
- package/dist/utils/base58.js +34 -12
- package/dist/utils/base58.js.map +1 -1
- package/dist/utils/base64.d.ts +0 -1
- package/dist/utils/canonical-json.d.ts +7 -1
- package/dist/utils/canonical-json.js +130 -60
- package/dist/utils/canonical-json.js.map +1 -1
- package/dist/utils/crypto-service.d.ts +0 -1
- package/dist/utils/crypto-service.js +22 -2
- package/dist/utils/crypto-service.js.map +1 -1
- package/dist/utils/did-helpers.d.ts +0 -1
- package/dist/utils/ed25519-constants.d.ts +0 -1
- package/dist/utils/ed25519-public-key.d.ts +27 -0
- package/dist/utils/ed25519-public-key.js +86 -0
- package/dist/utils/ed25519-public-key.js.map +1 -0
- package/dist/utils/guards.d.ts +0 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/ip-classifier.d.ts +0 -1
- package/dist/utils/safe-fetch-transports.d.ts +0 -1
- package/dist/utils/safe-fetch-types.d.ts +0 -1
- package/dist/utils/safe-fetch.d.ts +0 -1
- package/dist/utils/statuslist-bits.d.ts +0 -1
- package/dist/utils/statuslist-purpose.d.ts +0 -1
- package/dist/utils/ttl-cache.d.ts +0 -1
- package/dist/utils/url.d.ts +0 -1
- package/package.json +24 -19
- package/schemas/card-delegation-credential.json +4 -1
- package/dist/audit/adapters/legacy-audit-log.d.ts.map +0 -1
- package/dist/audit/adapters/mcp.d.ts.map +0 -1
- package/dist/audit/assurance.d.ts.map +0 -1
- package/dist/audit/checkpoint-coordinator.d.ts.map +0 -1
- package/dist/audit/checkpoint.d.ts.map +0 -1
- package/dist/audit/cli.d.ts.map +0 -1
- package/dist/audit/crypto.d.ts.map +0 -1
- package/dist/audit/errors.d.ts.map +0 -1
- package/dist/audit/evidence.d.ts.map +0 -1
- package/dist/audit/index.d.ts.map +0 -1
- package/dist/audit/integrity.d.ts.map +0 -1
- package/dist/audit/merkle.d.ts.map +0 -1
- package/dist/audit/mirror-service.d.ts.map +0 -1
- package/dist/audit/projection.d.ts.map +0 -1
- package/dist/audit/providers/anchor.d.ts.map +0 -1
- package/dist/audit/providers/evidence.d.ts.map +0 -1
- package/dist/audit/providers/journal.d.ts.map +0 -1
- package/dist/audit/providers/memory-journal.d.ts.map +0 -1
- package/dist/audit/providers/observer.d.ts.map +0 -1
- package/dist/audit/providers/outbox.d.ts.map +0 -1
- package/dist/audit/providers/recorder-client.d.ts.map +0 -1
- package/dist/audit/providers/source-state.d.ts.map +0 -1
- package/dist/audit/read-contract.d.ts.map +0 -1
- package/dist/audit/read-service.d.ts.map +0 -1
- package/dist/audit/recorder-service.d.ts.map +0 -1
- package/dist/audit/reference-recorder.d.ts.map +0 -1
- package/dist/audit/replay-bundle.d.ts.map +0 -1
- package/dist/audit/schemas.d.ts.map +0 -1
- package/dist/audit/service.d.ts.map +0 -1
- package/dist/audit/testing/index.d.ts.map +0 -1
- package/dist/audit/testing/provider-contracts.d.ts.map +0 -1
- package/dist/audit/types.d.ts.map +0 -1
- package/dist/audit/verifier.d.ts.map +0 -1
- package/dist/auth/handshake.d.ts.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/authz/accountability.d.ts.map +0 -1
- package/dist/authz/adapter.d.ts.map +0 -1
- package/dist/authz/examples/inmemory-oidc.d.ts.map +0 -1
- package/dist/authz/index.d.ts.map +0 -1
- package/dist/authz/oidc/authorize.d.ts.map +0 -1
- package/dist/authz/oidc/metadata.d.ts.map +0 -1
- package/dist/authz/oidc/oidc-adapter.d.ts.map +0 -1
- package/dist/authz/oidc/pending-flow-store.d.ts.map +0 -1
- package/dist/authz/oidc/pkce.d.ts.map +0 -1
- package/dist/authz/registry.d.ts.map +0 -1
- package/dist/authz/requirement.d.ts.map +0 -1
- package/dist/card/build.d.ts.map +0 -1
- package/dist/card/builder.d.ts.map +0 -1
- package/dist/card/cimd.d.ts.map +0 -1
- package/dist/card/delegation.d.ts.map +0 -1
- package/dist/card/emit.d.ts.map +0 -1
- package/dist/card/index.d.ts.map +0 -1
- package/dist/card/middleware.d.ts.map +0 -1
- package/dist/card/proof/build.d.ts.map +0 -1
- package/dist/card/proof/canonical.d.ts.map +0 -1
- package/dist/card/proof/http-sig.d.ts.map +0 -1
- package/dist/card/proof/index.d.ts.map +0 -1
- package/dist/card/proof/nonce-cache.d.ts.map +0 -1
- package/dist/card/proof/signer.d.ts.map +0 -1
- package/dist/card/proof/types.d.ts.map +0 -1
- package/dist/card/proof/verify.d.ts.map +0 -1
- package/dist/card/resolve.d.ts.map +0 -1
- package/dist/card/revocation.d.ts.map +0 -1
- package/dist/card/schema.d.ts.map +0 -1
- package/dist/card/verify.d.ts.map +0 -1
- package/dist/delegation/audience-validator.d.ts.map +0 -1
- package/dist/delegation/bitstring.d.ts.map +0 -1
- package/dist/delegation/cascading-revocation.d.ts.map +0 -1
- package/dist/delegation/chain-enforcement.d.ts.map +0 -1
- package/dist/delegation/delegation-graph.d.ts.map +0 -1
- package/dist/delegation/did-key-resolver.d.ts.map +0 -1
- package/dist/delegation/did-linkage.d.ts.map +0 -1
- package/dist/delegation/did-resolver-registry.d.ts.map +0 -1
- package/dist/delegation/did-web-resolver.d.ts.map +0 -1
- package/dist/delegation/holder-binding.d.ts.map +0 -1
- package/dist/delegation/index.d.ts.map +0 -1
- package/dist/delegation/outbound-headers.d.ts.map +0 -1
- package/dist/delegation/outbound-proof.d.ts.map +0 -1
- package/dist/delegation/scope-matcher.d.ts.map +0 -1
- package/dist/delegation/status-cache.d.ts.map +0 -1
- package/dist/delegation/statuslist-manager.d.ts.map +0 -1
- package/dist/delegation/storage/memory-graph-storage.d.ts.map +0 -1
- package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +0 -1
- package/dist/delegation/utils.d.ts.map +0 -1
- package/dist/delegation/vc-issuer.d.ts.map +0 -1
- package/dist/delegation/vc-jwt-verify.d.ts.map +0 -1
- package/dist/delegation/vc-verification-checks.d.ts.map +0 -1
- package/dist/delegation/vc-verifier.d.ts.map +0 -1
- package/dist/delegation/vc-verifier.types.d.ts.map +0 -1
- package/dist/delegation/verification-method-key.d.ts.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/extension/declaration.d.ts.map +0 -1
- package/dist/extension/gate.d.ts.map +0 -1
- package/dist/extension/index.d.ts.map +0 -1
- package/dist/extension/settings.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/integrations/cheqd/dlr.d.ts.map +0 -1
- package/dist/integrations/cheqd/index.d.ts.map +0 -1
- package/dist/integrations/cheqd/linkage.d.ts.map +0 -1
- package/dist/integrations/cheqd/registrar.d.ts.map +0 -1
- package/dist/integrations/cheqd/resolver.d.ts.map +0 -1
- package/dist/integrations/cheqd/statuslist-resolver.d.ts.map +0 -1
- package/dist/logging/index.d.ts.map +0 -1
- package/dist/logging/logger.d.ts.map +0 -1
- package/dist/middleware/index.d.ts.map +0 -1
- package/dist/middleware/kya-os-transport.d.ts.map +0 -1
- package/dist/middleware/with-kya-os-server.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.config-types.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.deps.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.grants.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.helpers.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.policy-gate.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.protocol.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.session.d.ts.map +0 -1
- package/dist/middleware/with-kya-os.types.d.ts.map +0 -1
- package/dist/policy/approval.d.ts.map +0 -1
- package/dist/policy/classifier.d.ts.map +0 -1
- package/dist/policy/default-engine.d.ts.map +0 -1
- package/dist/policy/engine.d.ts.map +0 -1
- package/dist/policy/index.d.ts.map +0 -1
- package/dist/policy/projection.d.ts.map +0 -1
- package/dist/policy/types.d.ts.map +0 -1
- package/dist/proof/errors.d.ts.map +0 -1
- package/dist/proof/generator.d.ts.map +0 -1
- package/dist/proof/index.d.ts.map +0 -1
- package/dist/proof/verifier.d.ts.map +0 -1
- package/dist/providers/audit-log.d.ts.map +0 -1
- package/dist/providers/base.d.ts.map +0 -1
- package/dist/providers/grant-store.d.ts.map +0 -1
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/memory.d.ts.map +0 -1
- package/dist/providers/node-crypto.d.ts.map +0 -1
- package/dist/providers/runtime-fetch.d.ts.map +0 -1
- package/dist/providers/system-clock.d.ts.map +0 -1
- package/dist/providers/web-crypto.d.ts.map +0 -1
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/manager.d.ts.map +0 -1
- package/dist/session/session-store.d.ts.map +0 -1
- package/dist/types/protocol.d.ts.map +0 -1
- package/dist/utils/base58.d.ts.map +0 -1
- package/dist/utils/base64.d.ts.map +0 -1
- package/dist/utils/canonical-json.d.ts.map +0 -1
- package/dist/utils/crypto-service.d.ts.map +0 -1
- package/dist/utils/did-helpers.d.ts.map +0 -1
- package/dist/utils/ed25519-constants.d.ts.map +0 -1
- package/dist/utils/guards.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/ip-classifier.d.ts.map +0 -1
- package/dist/utils/safe-fetch-transports.d.ts.map +0 -1
- package/dist/utils/safe-fetch-types.d.ts.map +0 -1
- package/dist/utils/safe-fetch.d.ts.map +0 -1
- package/dist/utils/statuslist-bits.d.ts.map +0 -1
- package/dist/utils/statuslist-purpose.d.ts.map +0 -1
- package/dist/utils/ttl-cache.d.ts.map +0 -1
- package/dist/utils/url.d.ts.map +0 -1
package/dist/proof/verifier.js
CHANGED
|
@@ -5,17 +5,26 @@
|
|
|
5
5
|
* signatures, enforces nonce replay protection, and checks timestamp skew.
|
|
6
6
|
*/
|
|
7
7
|
import { CryptoService } from "../utils/crypto-service.js";
|
|
8
|
+
import { nonceRetentionSeconds } from "../providers/nonce-retention.js";
|
|
9
|
+
import { admitNonce, checkNonceStore } from "../providers/nonce-admission.js";
|
|
8
10
|
import { validateDetachedProof, } from "../types/protocol.js";
|
|
9
11
|
import { canonicalizeJson } from "../utils/canonical-json.js";
|
|
10
12
|
import { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, } from "./errors.js";
|
|
11
13
|
import { logger } from "../logging/index.js";
|
|
12
|
-
import { buildProofJwsPayload,
|
|
14
|
+
import { buildProofJwsPayload, findContentBindingMismatch, KYA_OS_PROOF_META_KEY, LEGACY_NAMESPACED_PROOF_META_KEY, LEGACY_PROOF_META_KEY, } from "./generator.js";
|
|
13
15
|
/** Default timestamp skew for proof verification (seconds) */
|
|
14
16
|
export const DEFAULT_CLOCK_SKEW_SECONDS = 120;
|
|
15
17
|
/** Minimum allowed clock skew (seconds) */
|
|
16
18
|
export const MIN_CLOCK_SKEW_SECONDS = 30;
|
|
17
19
|
/** Maximum allowed clock skew (seconds) */
|
|
18
20
|
export const MAX_CLOCK_SKEW_SECONDS = 600;
|
|
21
|
+
/** Reject a non-finite or negative duration at construction, not on every request. */
|
|
22
|
+
function requireNonNegativeSeconds(name, value) {
|
|
23
|
+
if (!Number.isFinite(value) || value < 0) {
|
|
24
|
+
throw new RangeError(`${name} must be a finite, non-negative number of seconds`);
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
19
28
|
export class ProofVerifier {
|
|
20
29
|
cryptoService;
|
|
21
30
|
clock;
|
|
@@ -23,6 +32,7 @@ export class ProofVerifier {
|
|
|
23
32
|
fetch;
|
|
24
33
|
timestampSkewSeconds;
|
|
25
34
|
nonceTtlSeconds;
|
|
35
|
+
requireAtomicNonce;
|
|
26
36
|
cryptoProvider;
|
|
27
37
|
constructor(config) {
|
|
28
38
|
this.cryptoService = new CryptoService(config.cryptoProvider);
|
|
@@ -30,8 +40,10 @@ export class ProofVerifier {
|
|
|
30
40
|
this.clock = config.clockProvider;
|
|
31
41
|
this.nonceCache = config.nonceCacheProvider;
|
|
32
42
|
this.fetch = config.fetchProvider;
|
|
33
|
-
this.timestampSkewSeconds = config.timestampSkewSeconds ?? DEFAULT_CLOCK_SKEW_SECONDS;
|
|
34
|
-
this.nonceTtlSeconds = config.nonceTtlSeconds ?? 300;
|
|
43
|
+
this.timestampSkewSeconds = requireNonNegativeSeconds("timestampSkewSeconds", config.timestampSkewSeconds ?? DEFAULT_CLOCK_SKEW_SECONDS);
|
|
44
|
+
this.nonceTtlSeconds = requireNonNegativeSeconds("nonceTtlSeconds", config.nonceTtlSeconds ?? 300);
|
|
45
|
+
this.requireAtomicNonce = config.requireAtomicNonce ?? false;
|
|
46
|
+
checkNonceStore(this.nonceCache, { requireAtomicNonce: this.requireAtomicNonce });
|
|
35
47
|
}
|
|
36
48
|
/**
|
|
37
49
|
* Update the timestamp skew from a server-advertised value.
|
|
@@ -77,19 +89,23 @@ export class ProofVerifier {
|
|
|
77
89
|
* `content` array); for an envelope-profile proof (`prf: "org.kya-os/response-proof.envelope"`)
|
|
78
90
|
* pass the ENTIRE received result object — the verifier removes the
|
|
79
91
|
* top-level `_meta` member itself, so passing the result as received (proof
|
|
80
|
-
* attachment included) is correct.
|
|
92
|
+
* attachment included) is correct. Pass the `request` either as the
|
|
93
|
+
* `tools/call` request you sent (`{method: "tools/call", params: {name,
|
|
94
|
+
* arguments}}`) or in the legacy `{method: <tool name>, params: <arguments>}`
|
|
95
|
+
* shape: a `requestHash` over either shape of that call is accepted (SPEC
|
|
96
|
+
* §7.3; 1.x producers sign the legacy shape).
|
|
97
|
+
* @param options - Optional signer binding: the `did` the proof must come
|
|
98
|
+
* from and the `audience` it must be addressed to. Independently of these,
|
|
99
|
+
* a `kid` naming a key of a DID other than `meta.did` always fails.
|
|
81
100
|
* @returns Verification result
|
|
82
101
|
*/
|
|
83
|
-
async verifyProof(proof, publicKeyJwk, expected) {
|
|
102
|
+
async verifyProof(proof, publicKeyJwk, expected, options = {}) {
|
|
84
103
|
try {
|
|
85
104
|
const structureValidation = await this.validateProofStructure(proof);
|
|
86
105
|
if (!structureValidation.valid)
|
|
87
106
|
return structureValidation;
|
|
88
107
|
const validatedProof = structureValidation.proof;
|
|
89
|
-
|
|
90
|
-
const canonicalPayloadString = this.buildCanonicalPayload(validatedProof.meta);
|
|
91
|
-
const canonicalPayloadBytes = new TextEncoder().encode(canonicalPayloadString);
|
|
92
|
-
return await this.runVerificationPipeline(validatedProof, publicKeyJwk, canonicalPayloadBytes, expected);
|
|
108
|
+
return await this.runVerificationPipeline(validatedProof, publicKeyJwk, this.encodeCanonicalPayload(validatedProof.meta), expected, options);
|
|
93
109
|
}
|
|
94
110
|
catch (error) {
|
|
95
111
|
return this.handleVerificationError(error);
|
|
@@ -109,8 +125,10 @@ export class ProofVerifier {
|
|
|
109
125
|
if (!structureValidation.valid)
|
|
110
126
|
return structureValidation;
|
|
111
127
|
const validatedProof = structureValidation.proof;
|
|
112
|
-
const
|
|
113
|
-
|
|
128
|
+
const signerValidation = this.validateSigner(validatedProof.meta);
|
|
129
|
+
if (!signerValidation.valid)
|
|
130
|
+
return signerValidation;
|
|
131
|
+
const signatureValidation = await this.verifySignature(validatedProof.jws, publicKeyJwk, this.encodeCanonicalPayload(validatedProof.meta), validatedProof.meta.kid);
|
|
114
132
|
if (!signatureValidation.valid)
|
|
115
133
|
return signatureValidation;
|
|
116
134
|
if (expected !== undefined) {
|
|
@@ -123,7 +141,16 @@ export class ProofVerifier {
|
|
|
123
141
|
}
|
|
124
142
|
}
|
|
125
143
|
/**
|
|
126
|
-
* Verify proof with detached payload (for CLI/verifier compatibility)
|
|
144
|
+
* Verify proof with detached payload (for CLI/verifier compatibility).
|
|
145
|
+
*
|
|
146
|
+
* The timestamp and replay checks read `proof.meta`, so the payload the
|
|
147
|
+
* signature is checked over must be the one rebuilt from that meta: a
|
|
148
|
+
* supplied payload that differs from it byte for byte is rejected. Otherwise
|
|
149
|
+
* an accepted proof could be replayed with a fresh `meta.nonce` and the old
|
|
150
|
+
* payload.
|
|
151
|
+
*
|
|
152
|
+
* @deprecated Use {@link verifyProof}. It rebuilds the payload from
|
|
153
|
+
* `proof.meta` itself, so supplying the payload adds nothing.
|
|
127
154
|
* @param proof - The proof to verify
|
|
128
155
|
* @param canonicalPayload - Canonical JSON payload (for detached JWS) as string or Uint8Array
|
|
129
156
|
* @param publicKeyJwk - Ed25519 public key in JWK format
|
|
@@ -131,43 +158,49 @@ export class ProofVerifier {
|
|
|
131
158
|
*/
|
|
132
159
|
async verifyProofDetached(proof, canonicalPayload, publicKeyJwk) {
|
|
133
160
|
try {
|
|
134
|
-
|
|
135
|
-
|
|
161
|
+
const structureValidation = await this.validateProofStructure(proof);
|
|
162
|
+
if (!structureValidation.valid)
|
|
163
|
+
return structureValidation;
|
|
164
|
+
const validatedProof = structureValidation.proof;
|
|
165
|
+
const suppliedPayload = canonicalPayload instanceof Uint8Array
|
|
136
166
|
? canonicalPayload
|
|
137
167
|
: new TextEncoder().encode(canonicalPayload);
|
|
138
|
-
|
|
168
|
+
const metaPayload = this.encodeCanonicalPayload(validatedProof.meta);
|
|
169
|
+
if (!bytesEqual(suppliedPayload, metaPayload)) {
|
|
170
|
+
return {
|
|
171
|
+
valid: false,
|
|
172
|
+
reason: "Detached payload does not match the payload rebuilt from proof.meta",
|
|
173
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.INVALID_JWS_PAYLOAD,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
return await this.runVerificationPipeline(validatedProof, publicKeyJwk, metaPayload);
|
|
139
177
|
}
|
|
140
178
|
catch (error) {
|
|
141
179
|
return this.handleVerificationError(error);
|
|
142
180
|
}
|
|
143
181
|
}
|
|
144
182
|
/**
|
|
145
|
-
* Shared verification pipeline for proof
|
|
183
|
+
* Shared verification pipeline for a structurally valid proof.
|
|
146
184
|
* @private
|
|
147
185
|
*/
|
|
148
|
-
async runVerificationPipeline(
|
|
149
|
-
// 1.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
186
|
+
async runVerificationPipeline(validatedProof, publicKeyJwk, canonicalPayloadBytes, expected, options = {}) {
|
|
187
|
+
// 1. Signer binding: kid belongs to the claimed did, and did and audience
|
|
188
|
+
// are the ones the caller expects.
|
|
189
|
+
const signerValidation = this.validateSigner(validatedProof.meta, options);
|
|
190
|
+
if (!signerValidation.valid) {
|
|
191
|
+
return signerValidation;
|
|
153
192
|
}
|
|
154
|
-
|
|
155
|
-
// 2. Check nonce replay protection (scoped to agent DID to prevent cross-agent replay attacks)
|
|
156
|
-
const nonceValidation = await this.validateNonce(validatedProof.meta.nonce, validatedProof.meta.did);
|
|
157
|
-
if (!nonceValidation.valid) {
|
|
158
|
-
return nonceValidation;
|
|
159
|
-
}
|
|
160
|
-
// 3. Check timestamp skew
|
|
193
|
+
// 2. Check timestamp skew
|
|
161
194
|
const timestampValidation = await this.validateTimestamp(validatedProof.meta.ts);
|
|
162
195
|
if (!timestampValidation.valid) {
|
|
163
196
|
return timestampValidation;
|
|
164
197
|
}
|
|
165
|
-
//
|
|
198
|
+
// 3. Verify JWS signature with canonical payload
|
|
166
199
|
const signatureValidation = await this.verifySignature(validatedProof.jws, publicKeyJwk, canonicalPayloadBytes, validatedProof.meta.kid);
|
|
167
200
|
if (!signatureValidation.valid) {
|
|
168
201
|
return signatureValidation;
|
|
169
202
|
}
|
|
170
|
-
//
|
|
203
|
+
// 4. Content binding (optional): the signature proves the proof is
|
|
171
204
|
// AUTHENTIC, but not that the request/response WE received matches what was
|
|
172
205
|
// signed. When the caller supplies what it actually saw, recompute the
|
|
173
206
|
// canonical hashes and confirm they match the bound hashes — this is what
|
|
@@ -180,60 +213,71 @@ export class ProofVerifier {
|
|
|
180
213
|
return bindingValidation;
|
|
181
214
|
}
|
|
182
215
|
}
|
|
183
|
-
// 5.
|
|
184
|
-
|
|
185
|
-
|
|
216
|
+
// 5. Atomically admit the validated proof (scoped to agent DID). Invalid
|
|
217
|
+
// signatures/bindings must not consume state, and has/add cannot serialize
|
|
218
|
+
// admission across concurrent verifications or distributed instances.
|
|
219
|
+
return this.consumeNonce(validatedProof.meta.nonce, validatedProof.meta.did, validatedProof.meta.ts);
|
|
186
220
|
}
|
|
187
221
|
/**
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
222
|
+
* Bind the signing key to the principal. `kid` names the signing key; when
|
|
223
|
+
* it is an absolute DID URL its DID part must be `meta.did`, or a proof could
|
|
224
|
+
* claim a victim's DID while being signed by a key another DID publishes. A
|
|
225
|
+
* relative `kid` is resolved against `meta.did`. Then apply the caller's
|
|
226
|
+
* expected signer and audience, if given.
|
|
192
227
|
* @private
|
|
193
228
|
*/
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
// is checked with envelope hashing (result minus top-level `_meta`), a body-profile
|
|
198
|
-
// proof (no `prf`) with body hashing. Deriving from the proof — never from
|
|
199
|
-
// verifier configuration — is what lets one verifier accept both profiles
|
|
200
|
-
// without a downgrade path.
|
|
201
|
-
const { requestHash, responseHash } = await computeCanonicalHashes(expected.request, expected.response, (bytes) => this.cryptoProvider.hash(bytes), proof.meta.prf ?? RESPONSE_PROOF_PROFILE_BODY);
|
|
202
|
-
if (proof.meta.requestHash !== requestHash) {
|
|
229
|
+
validateSigner(meta, options = {}) {
|
|
230
|
+
const kidOwner = didOfKid(meta.kid);
|
|
231
|
+
if (kidOwner !== undefined && kidOwner !== meta.did) {
|
|
203
232
|
return {
|
|
204
233
|
valid: false,
|
|
205
|
-
reason: "
|
|
206
|
-
errorCode: PROOF_VERIFICATION_ERROR_CODES.
|
|
234
|
+
reason: "Proof kid names a key of a different DID than meta.did",
|
|
235
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.KID_DID_MISMATCH,
|
|
236
|
+
details: { did: meta.did, kid: meta.kid },
|
|
207
237
|
};
|
|
208
238
|
}
|
|
209
|
-
|
|
210
|
-
// that binds the response body — including a needs_authorization challenge's
|
|
211
|
-
// authorizationUrl. It MUST be checked whenever the proof carries one.
|
|
212
|
-
// Gating the comparison on `expected.response !== undefined` would let a
|
|
213
|
-
// caller who supplies only `request` get { valid: true } while the swapped
|
|
214
|
-
// URL went unverified (the requestHash is identical for a genuine and a
|
|
215
|
-
// MITM'd challenge). So: if the proof binds a responseHash the caller MUST
|
|
216
|
-
// supply the response; if it binds none, the caller must not supply one.
|
|
217
|
-
const proofBindsResponse = proof.meta.responseHash !== undefined;
|
|
218
|
-
const callerSuppliedResponse = expected.response !== undefined;
|
|
219
|
-
if (proofBindsResponse !== callerSuppliedResponse) {
|
|
239
|
+
if (options.expectedDid !== undefined && meta.did !== options.expectedDid) {
|
|
220
240
|
return {
|
|
221
241
|
valid: false,
|
|
222
|
-
reason:
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
errorCode: PROOF_VERIFICATION_ERROR_CODES.CONTENT_BINDING_MISMATCH,
|
|
242
|
+
reason: "Proof was not issued by the expected DID",
|
|
243
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.DID_MISMATCH,
|
|
244
|
+
details: { did: meta.did, expectedDid: options.expectedDid },
|
|
226
245
|
};
|
|
227
246
|
}
|
|
228
|
-
if (
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
247
|
+
if (options.expectedAudience !== undefined) {
|
|
248
|
+
const allowed = Array.isArray(options.expectedAudience)
|
|
249
|
+
? options.expectedAudience
|
|
250
|
+
: [options.expectedAudience];
|
|
251
|
+
if (!allowed.includes(meta.audience)) {
|
|
252
|
+
return {
|
|
253
|
+
valid: false,
|
|
254
|
+
reason: "Proof is addressed to a different audience",
|
|
255
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.AUDIENCE_MISMATCH,
|
|
256
|
+
details: { audience: meta.audience, expectedAudience: options.expectedAudience },
|
|
257
|
+
};
|
|
258
|
+
}
|
|
234
259
|
}
|
|
235
260
|
return { valid: true };
|
|
236
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Recompute the canonical hashes of the request/response the verifier actually
|
|
264
|
+
* received (via the same hashing the signer used) and compare to the proof's
|
|
265
|
+
* bound hashes. Fails CONTENT_BINDING_MISMATCH on any divergence — the check
|
|
266
|
+
* that makes a signed proof tamper-evident against content substitution.
|
|
267
|
+
* @private
|
|
268
|
+
*/
|
|
269
|
+
async validateContentBinding(proof, expected) {
|
|
270
|
+
// The rule (fail-closed response binding, response profile from the
|
|
271
|
+
// proof's own `prf`) is shared with ProofGenerator.verifyProof.
|
|
272
|
+
const mismatch = await findContentBindingMismatch(proof.meta, expected, (bytes) => this.cryptoProvider.hash(bytes));
|
|
273
|
+
if (mismatch === undefined)
|
|
274
|
+
return { valid: true };
|
|
275
|
+
return {
|
|
276
|
+
valid: false,
|
|
277
|
+
reason: CONTENT_BINDING_REASONS[mismatch],
|
|
278
|
+
errorCode: PROOF_VERIFICATION_ERROR_CODES.CONTENT_BINDING_MISMATCH,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
237
281
|
/**
|
|
238
282
|
* Handle verification errors consistently
|
|
239
283
|
* @private
|
|
@@ -272,12 +316,17 @@ export class ProofVerifier {
|
|
|
272
316
|
};
|
|
273
317
|
}
|
|
274
318
|
/**
|
|
275
|
-
*
|
|
319
|
+
* Admit the nonce once every other proof check has passed: atomically through
|
|
320
|
+
* the cache's consume(), or through the has()/add() fallback without it.
|
|
276
321
|
* @private
|
|
277
322
|
*/
|
|
278
|
-
async
|
|
279
|
-
|
|
280
|
-
|
|
323
|
+
async consumeNonce(nonce, agentDid, timestamp) {
|
|
324
|
+
// Cover later setTimestampSkew increases too: its supported ceiling is 600s.
|
|
325
|
+
const ttl = nonceRetentionSeconds(this.nonceTtlSeconds, timestamp + Math.max(this.timestampSkewSeconds, MAX_CLOCK_SKEW_SECONDS), this.clock.now());
|
|
326
|
+
const consumed = await admitNonce(this.nonceCache, nonce, ttl, agentDid, {
|
|
327
|
+
requireAtomicNonce: this.requireAtomicNonce,
|
|
328
|
+
});
|
|
329
|
+
if (!consumed) {
|
|
281
330
|
return {
|
|
282
331
|
valid: false,
|
|
283
332
|
reason: "Nonce already used (replay attack detected)",
|
|
@@ -336,14 +385,6 @@ export class ProofVerifier {
|
|
|
336
385
|
}
|
|
337
386
|
return { valid: true };
|
|
338
387
|
}
|
|
339
|
-
/**
|
|
340
|
-
* Add nonce to cache to prevent replay (scoped to agent DID)
|
|
341
|
-
* @private
|
|
342
|
-
*/
|
|
343
|
-
async addNonceToCache(nonce, agentDid) {
|
|
344
|
-
// Pass TTL in seconds, not absolute timestamp
|
|
345
|
-
await this.nonceCache.add(nonce, this.nonceTtlSeconds, agentDid);
|
|
346
|
-
}
|
|
347
388
|
/**
|
|
348
389
|
* Fetch public key from DID document
|
|
349
390
|
* @param did - DID to resolve
|
|
@@ -353,6 +394,8 @@ export class ProofVerifier {
|
|
|
353
394
|
*/
|
|
354
395
|
async fetchPublicKeyFromDID(did, kid) {
|
|
355
396
|
try {
|
|
397
|
+
// Built before resolving, so a kid naming another DID fails without a fetch.
|
|
398
|
+
const matchesKid = kid ? verificationMethodMatcher(did, kid) : undefined;
|
|
356
399
|
const didDoc = await this.fetch.resolveDID(did);
|
|
357
400
|
if (!didDoc) {
|
|
358
401
|
throw new ProofVerificationError(PROOF_VERIFICATION_ERROR_CODES.DID_DOCUMENT_NOT_FOUND, `DID document not found: ${did}`, { did });
|
|
@@ -364,9 +407,8 @@ export class ProofVerifier {
|
|
|
364
407
|
}
|
|
365
408
|
// Find verification method by kid or use first one
|
|
366
409
|
let verificationMethod;
|
|
367
|
-
if (
|
|
368
|
-
|
|
369
|
-
verificationMethod = doc.verificationMethod.find((vm) => vm.id === kidWithHash || vm.id === `${did}${kidWithHash}`);
|
|
410
|
+
if (matchesKid) {
|
|
411
|
+
verificationMethod = doc.verificationMethod.find(matchesKid);
|
|
370
412
|
if (!verificationMethod) {
|
|
371
413
|
throw new ProofVerificationError(PROOF_VERIFICATION_ERROR_CODES.VERIFICATION_METHOD_NOT_FOUND, `Verification method not found for kid: ${kid}`, {
|
|
372
414
|
did,
|
|
@@ -423,6 +465,44 @@ export class ProofVerifier {
|
|
|
423
465
|
// the same RFC 8785 canonicalization the signer used.
|
|
424
466
|
return canonicalizeJson(buildProofJwsPayload(meta));
|
|
425
467
|
}
|
|
468
|
+
encodeCanonicalPayload(meta) {
|
|
469
|
+
return new TextEncoder().encode(this.buildCanonicalPayload(meta));
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
const CONTENT_BINDING_REASONS = {
|
|
473
|
+
request: "Request hash mismatch: the proof does not bind the request you supplied",
|
|
474
|
+
"response-missing": "Proof binds a response (responseHash present) but no response was supplied to verify against — pass expected.response",
|
|
475
|
+
"response-unexpected": "A response was supplied but the proof binds none — content/proof mismatch",
|
|
476
|
+
response: "Response hash mismatch: received content differs from what the server signed (possible substitution / MITM)",
|
|
477
|
+
};
|
|
478
|
+
/**
|
|
479
|
+
* The DID an absolute DID URL `kid` (`did:…#frag`, the form proofs carry)
|
|
480
|
+
* names, or undefined for a relative `kid` (`frag` or `#frag`), which is
|
|
481
|
+
* resolved against the proof's `did`.
|
|
482
|
+
*/
|
|
483
|
+
function didOfKid(kid) {
|
|
484
|
+
return kid.startsWith("did:") ? kid.split("#")[0] : undefined;
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Match a verification method of `did`'s document against `kid`. An absolute
|
|
488
|
+
* DID URL must name `did` itself and match the method id exactly; a document
|
|
489
|
+
* may list that id relative to the DID. A relative `kid` is resolved against
|
|
490
|
+
* `did`.
|
|
491
|
+
*/
|
|
492
|
+
function verificationMethodMatcher(did, kid) {
|
|
493
|
+
const kidOwner = didOfKid(kid);
|
|
494
|
+
if (kidOwner !== undefined) {
|
|
495
|
+
if (kidOwner !== did) {
|
|
496
|
+
throw new ProofVerificationError(PROOF_VERIFICATION_ERROR_CODES.KID_DID_MISMATCH, `kid ${kid} names a key of a different DID than ${did}`, { did, kid });
|
|
497
|
+
}
|
|
498
|
+
const fragment = kid.slice(kidOwner.length);
|
|
499
|
+
return (vm) => vm.id === kid || (fragment !== "" && vm.id === fragment);
|
|
500
|
+
}
|
|
501
|
+
const kidWithHash = kid.startsWith("#") ? kid : `#${kid}`;
|
|
502
|
+
return (vm) => vm.id === kidWithHash || vm.id === `${did}${kidWithHash}`;
|
|
503
|
+
}
|
|
504
|
+
function bytesEqual(a, b) {
|
|
505
|
+
return a.length === b.length && a.every((byte, index) => byte === b[index]);
|
|
426
506
|
}
|
|
427
507
|
/**
|
|
428
508
|
* MCP-reserved / standard `_meta` keys a KYA-OS verifier MUST tolerate but
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/proof/verifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/proof/verifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAmB,MAAM,4BAA4B,CAAC;AAI5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAE/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,gCAAgC,EAChC,qBAAqB,GAItB,MAAM,gBAAgB,CAAC;AAoCxB,8DAA8D;AAC9D,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,2CAA2C;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C,sFAAsF;AACtF,SAAS,yBAAyB,CAAC,IAAY,EAAE,KAAa;IAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,mDAAmD,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,aAAa;IAChB,aAAa,CAAgB;IAC7B,KAAK,CAAgB;IACrB,UAAU,CAAqB;IAC/B,KAAK,CAAgB;IACrB,oBAAoB,CAAS;IAC7B,eAAe,CAAS;IACxB,kBAAkB,CAAU;IAC5B,cAAc,CAAiB;IAEvC,YAAY,MAA2B;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;QAClC,IAAI,CAAC,oBAAoB,GAAG,yBAAyB,CACnD,sBAAsB,EACtB,MAAM,CAAC,oBAAoB,IAAI,0BAA0B,CAC1D,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,yBAAyB,CAC9C,iBAAiB,EACjB,MAAM,CAAC,eAAe,IAAI,GAAG,CAC9B,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC7D,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAmB;QAClC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAClC,sBAAsB,EACtB,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,KAAK,CAAC,WAAW,CACf,KAAoB,EACpB,YAAwB,EACxB,QAA4D,EAC5D,UAAoC,EAAE;QAEtC,IAAI,CAAC;YACH,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,mBAAmB,CAAC,KAAK;gBAAE,OAAO,mBAAmB,CAAC;YAC3D,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAM,CAAC;YAElD,OAAO,MAAM,IAAI,CAAC,uBAAuB,CACvC,cAAc,EACd,YAAY,EACZ,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,EAChD,QAAQ,EACR,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,mBAAmB,CACvB,KAAoB,EACpB,YAAwB,EACxB,QAA4D;QAE5D,IAAI,CAAC;YACH,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,mBAAmB,CAAC,KAAK;gBAAE,OAAO,mBAAmB,CAAC;YAC3D,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAM,CAAC;YAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,gBAAgB,CAAC,KAAK;gBAAE,OAAO,gBAAgB,CAAC;YAErD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,eAAe,CACpD,cAAc,CAAC,GAAG,EAClB,YAAY,EACZ,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,EAChD,cAAc,CAAC,IAAI,CAAC,GAAG,CACxB,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK;gBAAE,OAAO,mBAAmB,CAAC;YAE3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,mBAAmB,CACvB,KAAoB,EACpB,gBAAqC,EACrC,YAAwB;QAExB,IAAI,CAAC;YACH,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,mBAAmB,CAAC,KAAK;gBAAE,OAAO,mBAAmB,CAAC;YAC3D,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAM,CAAC;YAElD,MAAM,eAAe,GACnB,gBAAgB,YAAY,UAAU;gBACpC,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC9C,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,qEAAqE;oBAC7E,SAAS,EAAE,8BAA8B,CAAC,mBAAmB;iBAC9D,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,uBAAuB,CACnC,cAA6B,EAC7B,YAAwB,EACxB,qBAAiC,EACjC,QAA4D,EAC5D,UAAoC,EAAE;QAEtC,0EAA0E;QAC1E,mCAAmC;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,0BAA0B;QAC1B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACtD,cAAc,CAAC,IAAI,CAAC,EAAE,CACvB,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,iDAAiD;QACjD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,eAAe,CACpD,cAAc,CAAC,GAAG,EAClB,YAAY,EACZ,qBAAqB,EACrB,cAAc,CAAC,IAAI,CAAC,GAAG,CACxB,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,mEAAmE;QACnE,4EAA4E;QAC5E,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,6EAA6E;QAC7E,oCAAoC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACzD,cAAc,EACd,QAAQ,CACT,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC7B,OAAO,iBAAiB,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,2EAA2E;QAC3E,sEAAsE;QACtE,OAAO,IAAI,CAAC,YAAY,CACtB,cAAc,CAAC,IAAI,CAAC,KAAK,EACzB,cAAc,CAAC,IAAI,CAAC,GAAG,EACvB,cAAc,CAAC,IAAI,CAAC,EAAE,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,cAAc,CACpB,IAA2B,EAC3B,UAAoC,EAAE;QAEtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACpD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,wDAAwD;gBAChE,SAAS,EAAE,8BAA8B,CAAC,gBAAgB;gBAC1D,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAC1C,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1E,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,0CAA0C;gBAClD,SAAS,EAAE,8BAA8B,CAAC,YAAY;gBACtD,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;aAC7D,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACrD,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBAC1B,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,4CAA4C;oBACpD,SAAS,EAAE,8BAA8B,CAAC,iBAAiB;oBAC3D,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE;iBACjF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,sBAAsB,CAClC,KAAoB,EACpB,QAA2D;QAE3D,oEAAoE;QACpE,gEAAgE;QAChE,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAC/C,KAAK,CAAC,IAAI,EACV,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAC3C,CAAC;QACF,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC;YACzC,SAAS,EAAE,8BAA8B,CAAC,wBAAwB;SACnE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,uBAAuB,CAAC,KAAc;QAC5C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,0BAA0B;YAClC,SAAS,EAAE,8BAA8B,CAAC,kBAAkB;YAC5D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,EAAE;gBACP,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACrE;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,sBAAsB,CAClC,KAAoB;QAEpB,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,yBAAyB;gBACjC,SAAS,EAAE,8BAA8B,CAAC,uBAAuB;gBACjE,KAAK,EAAE,IAAI,KAAK,CACd,4BAA4B,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,CAC9D;gBACD,OAAO,EAAE;oBACP,eAAe,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO;iBACjD;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,gBAAgB,CAAC,IAAI;SAC7B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,YAAY,CACxB,KAAa,EACb,QAAgB,EAChB,SAAiB;QAEjB,6EAA6E;QAC7E,MAAM,GAAG,GAAG,qBAAqB,CAC/B,IAAI,CAAC,eAAe,EACpB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,EACvE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CACjB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE;YACvE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,6CAA6C;gBACrD,SAAS,EAAE,8BAA8B,CAAC,qBAAqB;gBAC/D,OAAO,EAAE;oBACP,KAAK;oBACL,QAAQ;iBACT;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAC7B,SAAiB;QAEjB,6EAA6E;QAC7E,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACrE,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,uCAAuC,IAAI,CAAC,oBAAoB,IAAI;gBAC5E,SAAS,EAAE,8BAA8B,CAAC,uBAAuB;gBACjE,OAAO,EAAE;oBACP,SAAS;oBACT,WAAW;oBACX,WAAW,EAAE,IAAI,CAAC,oBAAoB;oBACtC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;iBAC9B;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe,CAC3B,GAAW,EACX,YAAwB,EACxB,qBAAiC,EACjC,WAAoB;QAEpB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CACvD,GAAG,EACH,YAAY,EACZ;YACE,eAAe,EAAE,qBAAqB;YACtC,WAAW;YACX,GAAG,EAAE,OAAO;SACb,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,uBAAuB;gBAC/B,SAAS,EAAE,8BAA8B,CAAC,qBAAqB;gBAC/D,OAAO,EAAE;oBACP,SAAS,EAAE,GAAG,CAAC,MAAM;oBACrB,WAAW;oBACX,SAAS,EAAE,YAAY,CAAC,GAAG;iBAC5B;aACF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,GAAW,EACX,GAAY;QAEZ,IAAI,CAAC;YACH,6EAA6E;YAC7E,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,sBAAsB,CAC9B,8BAA8B,CAAC,sBAAsB,EACrD,2BAA2B,GAAG,EAAE,EAChC,EAAE,GAAG,EAAE,CACR,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,MAEX,CAAC;YAEF,IACE,CAAC,GAAG,CAAC,kBAAkB;gBACvB,GAAG,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;gBACD,MAAM,IAAI,sBAAsB,CAC9B,8BAA8B,CAAC,6BAA6B,EAC5D,kDAAkD,GAAG,EAAE,EACvD,EAAE,GAAG,EAAE,CACR,CAAC;YACJ,CAAC;YAED,mDAAmD;YACnD,IAAI,kBAES,CAAC;YACd,IAAI,UAAU,EAAE,CAAC;gBACf,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACxB,MAAM,IAAI,sBAAsB,CAC9B,8BAA8B,CAAC,6BAA6B,EAC5D,0CAA0C,GAAG,EAAE,EAC/C;wBACE,GAAG;wBACH,GAAG;wBACH,aAAa,EAAE,GAAG,CAAC,kBAAkB,CAAC,GAAG,CACvC,CAAC,EAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAC9B;qBACF,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC;gBACtC,MAAM,IAAI,sBAAsB,CAC9B,8BAA8B,CAAC,oBAAoB,EACnD,iDAAiD,EACjD,EAAE,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,YAK9B,CAAC;YAEF,+BAA+B;YAC/B,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,sBAAsB,CAC9B,8BAA8B,CAAC,kBAAkB,EACjD,sCAAsC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,EAC/D,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAClD,CAAC;YACJ,CAAC;YAED,uEAAuE;YACvE,MAAM,MAAM,GAAG,GAAiB,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,kBAAkB,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,GAAG,kBAAkB,CAAC,EAAE,CAAC;YACrC,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;gBAC5C,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,MAAM,IAAI,sBAAsB,CAC9B,8BAA8B,CAAC,qBAAqB,EACpD,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAClF;gBACE,GAAG;gBACH,GAAG;gBACH,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACtE,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,qBAAqB,CAAC,IAA2B;QAC/C,2EAA2E;QAC3E,wEAAwE;QACxE,yFAAyF;QACzF,0EAA0E;QAC1E,sDAAsD;QACtD,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,sBAAsB,CAAC,IAA2B;QACxD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAED,MAAM,uBAAuB,GAA2C;IACtE,OAAO,EAAE,yEAAyE;IAClF,kBAAkB,EAChB,uHAAuH;IACzH,qBAAqB,EACnB,2EAA2E;IAC7E,QAAQ,EACN,6GAA6G;CAChH,CAAC;AAEF;;;;GAIG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAChC,GAAW,EACX,GAAW;IAEX,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,sBAAsB,CAC9B,8BAA8B,CAAC,gBAAgB,EAC/C,OAAO,GAAG,wCAAwC,GAAG,EAAE,EACvD,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAC1D,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,GAAG,WAAW,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,CAAa,EAAE,CAAa;IAC9C,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,CAAC,0BAA0B,CAAU,CAAC;AACzE,MAAM,sBAAsB,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAU,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,OAAO,CACJ,sBAA4C,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC3D,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA6B,EAC7B,SAAqB,QAAQ;IAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CACF,CAAC,KAAK,qBAAqB;QAC3B,CAAC,KAAK,gCAAgC;QACtC,CAAC,KAAK,qBAAqB,CAC9B,CAAC;IAEF,2EAA2E;IAC3E,8EAA8E;IAC9E,8CAA8C;IAC9C,IAAI,MAAM,KAAK,kBAAkB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAA6B,EAC7B,SAAqB,QAAQ;IAE7B,wEAAwE;IACxE,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,KAAK,GACT,IAAI,CAAC,qBAAqB,CAAC;QAC3B,IAAI,CAAC,gCAAgC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,gCAAgC;YACxC,SAAS,EAAE,8BAA8B,CAAC,sBAAsB;SACjE,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpC,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB;YACnE,SAAS,EAAE,8BAA8B,CAAC,uBAAuB;SAClE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,IAAK,EAAE,CAAC;AACzD,CAAC"}
|
package/dist/providers/base.d.ts
CHANGED
|
@@ -41,7 +41,26 @@ export declare abstract class StorageProvider {
|
|
|
41
41
|
abstract list(prefix?: string): Promise<string[]>;
|
|
42
42
|
}
|
|
43
43
|
export declare abstract class NonceCacheProvider {
|
|
44
|
+
/**
|
|
45
|
+
* Atomically record an unseen (agentDid, nonce) for ttlSeconds. Return true only
|
|
46
|
+
* when this call records it, false when an unexpired record already exists.
|
|
47
|
+
* Reject on storage failure; never implement this as separate has/add calls.
|
|
48
|
+
* Shared deployments must implement the operation atomically in their shared
|
|
49
|
+
* backend (for example, a conditional insert with expiry), not a local mutex.
|
|
50
|
+
* Retain a successful claim for at least ttlSeconds. Verifiers sharing this
|
|
51
|
+
* cache must agree on acceptance windows; changing them requires a rollout
|
|
52
|
+
* that also preserves previously admitted records for the new window.
|
|
53
|
+
*
|
|
54
|
+
* Optional for compatibility. Verifiers use it when present. Without it they
|
|
55
|
+
* fall back to has() then add(), which cannot stop concurrent duplicates of
|
|
56
|
+
* one proof, and log a warning once per provider. Set `requireAtomicNonce`
|
|
57
|
+
* on the verifier or middleware to refuse that fallback. Implement this for
|
|
58
|
+
* any deployment that serves concurrent requests.
|
|
59
|
+
*/
|
|
60
|
+
consume?(nonce: string, ttlSeconds: number, agentDid?: string): Promise<boolean>;
|
|
61
|
+
/** Inspection, and the non-atomic fallback when consume is absent. */
|
|
44
62
|
abstract has(nonce: string, agentDid?: string): Promise<boolean>;
|
|
63
|
+
/** Unconditional write, and the non-atomic fallback when consume is absent. */
|
|
45
64
|
abstract add(nonce: string, ttlSeconds: number, agentDid?: string): Promise<void>;
|
|
46
65
|
abstract cleanup(): Promise<void>;
|
|
47
66
|
abstract destroy(): Promise<void>;
|
|
@@ -90,4 +109,3 @@ export declare abstract class IdentityProvider {
|
|
|
90
109
|
abstract rotateKeys(): Promise<AgentIdentity>;
|
|
91
110
|
abstract deleteIdentity(): Promise<void>;
|
|
92
111
|
}
|
|
93
|
-
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,OAAgB,cAAc;CAUnC;AAED,MAAM,OAAgB,aAAa;CAMlC;AAED,MAAM,OAAgB,aAAa;CAKlC;AAED,MAAM,OAAgB,eAAe;CAMpC;AAED,MAAM,OAAgB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,OAAgB,cAAc;CAUnC;AAED,MAAM,OAAgB,aAAa;CAMlC;AAED,MAAM,OAAgB,aAAa;CAKlC;AAED,MAAM,OAAgB,eAAe;CAMpC;AAED,MAAM,OAAgB,kBAAkB;CAwBvC;AA0CD,MAAM,OAAgB,gBAAgB;CAKrC"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* possession is still proven per request by the agent's detached-JWS signature
|
|
21
21
|
* over the request (holder-of-key). Storing a grant never substitutes for that.
|
|
22
22
|
*/
|
|
23
|
+
import type { DelegationCredential } from '../types/protocol.js';
|
|
23
24
|
export interface Grant {
|
|
24
25
|
/** Stable id for this grant (used for revocation). */
|
|
25
26
|
id: string;
|
|
@@ -42,6 +43,12 @@ export interface Grant {
|
|
|
42
43
|
};
|
|
43
44
|
/** The delegation credential (VC-JWT), when one was minted. */
|
|
44
45
|
credentialJwt?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Original signed object credential. Delegation gates reverify this evidence
|
|
48
|
+
* (or credentialJwt) on every reuse; opaque legacy grants re-challenge.
|
|
49
|
+
* Durable providers must preserve the full credential, including its proof.
|
|
50
|
+
*/
|
|
51
|
+
delegationCredential?: DelegationCredential;
|
|
45
52
|
/** When the grant was issued (ms epoch). */
|
|
46
53
|
issuedAt: number;
|
|
47
54
|
/** When the grant expires (ms epoch); omitted means no expiry. */
|
|
@@ -100,8 +107,7 @@ export declare class MemoryGrantStore extends GrantStore {
|
|
|
100
107
|
getById(id: string): Promise<Grant | undefined>;
|
|
101
108
|
revoke(id: string, reason?: string): Promise<void>;
|
|
102
109
|
cleanup(): Promise<void>;
|
|
103
|
-
/** Active =
|
|
110
|
+
/** Active = explicitly active and not past expiry. */
|
|
104
111
|
private activeGrants;
|
|
105
112
|
private coversScopes;
|
|
106
113
|
}
|
|
107
|
-
//# sourceMappingURL=grant-store.d.ts.map
|
|
@@ -42,7 +42,7 @@ export class MemoryGrantStore extends GrantStore {
|
|
|
42
42
|
this.now = options.now ?? (() => Date.now());
|
|
43
43
|
}
|
|
44
44
|
async bind(grant) {
|
|
45
|
-
this.grants.set(grant.id,
|
|
45
|
+
this.grants.set(grant.id, structuredClone(grant));
|
|
46
46
|
}
|
|
47
47
|
async getByAgent(agentDid, requiredScopes) {
|
|
48
48
|
return this.activeGrants().filter((g) => g.agentDid === agentDid && this.coversScopes(g, requiredScopes));
|
|
@@ -52,7 +52,7 @@ export class MemoryGrantStore extends GrantStore {
|
|
|
52
52
|
}
|
|
53
53
|
async getById(id) {
|
|
54
54
|
const grant = this.grants.get(id);
|
|
55
|
-
return grant ?
|
|
55
|
+
return grant ? structuredClone(grant) : undefined;
|
|
56
56
|
}
|
|
57
57
|
async revoke(id, reason) {
|
|
58
58
|
const grant = this.grants.get(id);
|
|
@@ -70,16 +70,16 @@ export class MemoryGrantStore extends GrantStore {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
/** Active =
|
|
73
|
+
/** Active = explicitly active and not past expiry. */
|
|
74
74
|
activeGrants() {
|
|
75
75
|
const now = this.now();
|
|
76
76
|
const out = [];
|
|
77
77
|
for (const grant of this.grants.values()) {
|
|
78
|
-
if (grant.status
|
|
78
|
+
if (grant.status !== 'active')
|
|
79
79
|
continue;
|
|
80
80
|
if (grant.expiresAt !== undefined && grant.expiresAt <= now)
|
|
81
81
|
continue;
|
|
82
|
-
out.push(
|
|
82
|
+
out.push(structuredClone(grant));
|
|
83
83
|
}
|
|
84
84
|
return out;
|
|
85
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant-store.js","sourceRoot":"","sources":["../../src/providers/grant-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"grant-store.js","sourceRoot":"","sources":["../../src/providers/grant-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,4 +6,3 @@ export { SystemClockProvider } from './system-clock.js';
|
|
|
6
6
|
export { RuntimeFetchProvider } from './runtime-fetch.js';
|
|
7
7
|
export { AuditLogProvider, MemoryAuditLogProvider, NoopAuditLogProvider, buildAuditRecord, } from './audit-log.js';
|
|
8
8
|
export { GrantStore, MemoryGrantStore, type Grant, type MemoryGrantStoreOptions } from './grant-store.js';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -12,11 +12,30 @@ export declare class MemoryStorageProvider extends StorageProvider {
|
|
|
12
12
|
exists(key: string): Promise<boolean>;
|
|
13
13
|
list(prefix?: string): Promise<string[]>;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* In-memory replay store, and the default one for `withKyaOs` and
|
|
17
|
+
* `SessionManager`. Single process only. Expired entries are swept as the
|
|
18
|
+
* cache is written to (every {@link SWEEP_EVERY} writes, or after
|
|
19
|
+
* {@link SWEEP_INTERVAL_MS}), so a long-running server stays bounded by its
|
|
20
|
+
* live nonces without anyone scheduling {@link cleanup}.
|
|
21
|
+
*/
|
|
15
22
|
export declare class MemoryNonceCacheProvider extends NonceCacheProvider {
|
|
16
23
|
private nonces;
|
|
24
|
+
private writesSinceSweep;
|
|
25
|
+
private lastSweepAt;
|
|
26
|
+
/** Atomic within this cache instance: no await separates the read and write. */
|
|
27
|
+
consume(nonce: string, ttlSeconds: number, agentDid?: string): Promise<boolean>;
|
|
28
|
+
private key;
|
|
17
29
|
has(nonce: string, agentDid?: string): Promise<boolean>;
|
|
18
30
|
add(nonce: string, ttlSeconds: number, agentDid?: string): Promise<void>;
|
|
19
31
|
cleanup(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Amortised eviction: every admitted nonce is a write, so sweeping on writes
|
|
34
|
+
* keeps the map bounded by live entries. The count trigger bounds a busy
|
|
35
|
+
* cache; the interval trigger releases a quiet one's dead entries too.
|
|
36
|
+
*/
|
|
37
|
+
private sweepIfDue;
|
|
38
|
+
private evictExpired;
|
|
20
39
|
destroy(): Promise<void>;
|
|
21
40
|
}
|
|
22
41
|
export declare class MemoryIdentityProvider extends IdentityProvider {
|
|
@@ -30,4 +49,3 @@ export declare class MemoryIdentityProvider extends IdentityProvider {
|
|
|
30
49
|
private generateIdentity;
|
|
31
50
|
private generateDIDFromPublicKey;
|
|
32
51
|
}
|
|
33
|
-
//# sourceMappingURL=memory.d.ts.map
|