agent-passport-system 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +2 -2
  2. package/dist/src/adapters/mutual-auth-a2a.d.ts +53 -0
  3. package/dist/src/adapters/mutual-auth-a2a.d.ts.map +1 -0
  4. package/dist/src/adapters/mutual-auth-a2a.js +108 -0
  5. package/dist/src/adapters/mutual-auth-a2a.js.map +1 -0
  6. package/dist/src/adapters/mutual-auth-mcp.d.ts +55 -0
  7. package/dist/src/adapters/mutual-auth-mcp.d.ts.map +1 -0
  8. package/dist/src/adapters/mutual-auth-mcp.js +107 -0
  9. package/dist/src/adapters/mutual-auth-mcp.js.map +1 -0
  10. package/dist/src/index.d.ts +6 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +4 -0
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/v2/cognitive-attestation/disputes.d.ts +50 -0
  15. package/dist/src/v2/cognitive-attestation/disputes.d.ts.map +1 -0
  16. package/dist/src/v2/cognitive-attestation/disputes.js +12 -0
  17. package/dist/src/v2/cognitive-attestation/disputes.js.map +1 -0
  18. package/dist/src/v2/cognitive-attestation/envelope.d.ts +44 -0
  19. package/dist/src/v2/cognitive-attestation/envelope.d.ts.map +1 -0
  20. package/dist/src/v2/cognitive-attestation/envelope.js +341 -0
  21. package/dist/src/v2/cognitive-attestation/envelope.js.map +1 -0
  22. package/dist/src/v2/cognitive-attestation/index.d.ts +6 -0
  23. package/dist/src/v2/cognitive-attestation/index.d.ts.map +1 -0
  24. package/dist/src/v2/cognitive-attestation/index.js +23 -0
  25. package/dist/src/v2/cognitive-attestation/index.js.map +1 -0
  26. package/dist/src/v2/cognitive-attestation/types.d.ts +111 -0
  27. package/dist/src/v2/cognitive-attestation/types.d.ts.map +1 -0
  28. package/dist/src/v2/cognitive-attestation/types.js +13 -0
  29. package/dist/src/v2/cognitive-attestation/types.js.map +1 -0
  30. package/dist/src/v2/cognitive-attestation/verify.d.ts +67 -0
  31. package/dist/src/v2/cognitive-attestation/verify.d.ts.map +1 -0
  32. package/dist/src/v2/cognitive-attestation/verify.js +125 -0
  33. package/dist/src/v2/cognitive-attestation/verify.js.map +1 -0
  34. package/dist/src/v2/index.d.ts +2 -0
  35. package/dist/src/v2/index.d.ts.map +1 -1
  36. package/dist/src/v2/index.js +7 -0
  37. package/dist/src/v2/index.js.map +1 -1
  38. package/dist/src/v2/mutual-auth/certificate.d.ts +39 -0
  39. package/dist/src/v2/mutual-auth/certificate.d.ts.map +1 -0
  40. package/dist/src/v2/mutual-auth/certificate.js +89 -0
  41. package/dist/src/v2/mutual-auth/certificate.js.map +1 -0
  42. package/dist/src/v2/mutual-auth/handshake.d.ts +37 -0
  43. package/dist/src/v2/mutual-auth/handshake.d.ts.map +1 -0
  44. package/dist/src/v2/mutual-auth/handshake.js +216 -0
  45. package/dist/src/v2/mutual-auth/handshake.js.map +1 -0
  46. package/dist/src/v2/mutual-auth/index.d.ts +8 -0
  47. package/dist/src/v2/mutual-auth/index.d.ts.map +1 -0
  48. package/dist/src/v2/mutual-auth/index.js +8 -0
  49. package/dist/src/v2/mutual-auth/index.js.map +1 -0
  50. package/dist/src/v2/mutual-auth/trust-bundle.d.ts +20 -0
  51. package/dist/src/v2/mutual-auth/trust-bundle.d.ts.map +1 -0
  52. package/dist/src/v2/mutual-auth/trust-bundle.js +45 -0
  53. package/dist/src/v2/mutual-auth/trust-bundle.js.map +1 -0
  54. package/dist/src/v2/mutual-auth/types.d.ts +145 -0
  55. package/dist/src/v2/mutual-auth/types.d.ts.map +1 -0
  56. package/dist/src/v2/mutual-auth/types.js +19 -0
  57. package/dist/src/v2/mutual-auth/types.js.map +1 -0
  58. package/dist/src/v2/wallet-binding/bind.d.ts +12 -0
  59. package/dist/src/v2/wallet-binding/bind.d.ts.map +1 -1
  60. package/dist/src/v2/wallet-binding/bind.js +8 -9
  61. package/dist/src/v2/wallet-binding/bind.js.map +1 -1
  62. package/package.json +3 -3
@@ -0,0 +1,67 @@
1
+ import type { CognitiveAttestation, SignerRole } from './types.js';
2
+ /**
3
+ * Verify that at least one signature entry for `signerDid` validates against
4
+ * `publicKey`. Returns false on tamper, wrong DID, malformed signature, or
5
+ * key mismatch.
6
+ */
7
+ export declare function verifySignature(att: CognitiveAttestation, publicKey: Uint8Array, signerDid: string): boolean;
8
+ export interface RequiredRoleCoverage {
9
+ ok: boolean;
10
+ missing: SignerRole[];
11
+ present: SignerRole[];
12
+ }
13
+ /**
14
+ * Confirm every role in `aggregation_policy.required_signer_roles` is
15
+ * represented by at least one signature entry with that role. Structural
16
+ * check only — does NOT verify signature cryptographically. Callers should
17
+ * pair this with `verifySignature` per signer for full Stage 1.
18
+ */
19
+ export declare function verifyRequiredSignerRoles(att: CognitiveAttestation): RequiredRoleCoverage;
20
+ export interface RegistryResolver {
21
+ /** Return true if the model_version_hash is known to the caller's model registry. */
22
+ isKnownModel(modelId: string, modelVersionHash: string): Promise<boolean>;
23
+ /** Return true if the dictionary_version_hash is known to the caller's SAE/feature-dict registry. */
24
+ isKnownDictionary(dictionaryId: string, dictionaryVersionHash: string): Promise<boolean>;
25
+ }
26
+ export interface RegistryVerificationResult {
27
+ ok: boolean;
28
+ model_known: boolean;
29
+ dictionary_known: boolean;
30
+ errors: string[];
31
+ }
32
+ /**
33
+ * Stage 2. Checks that the referenced model and dictionary versions exist in
34
+ * the resolver's registry view. The SDK ships no registry client — integrators
35
+ * (or the private gateway) implement `RegistryResolver`.
36
+ */
37
+ export declare function verifyAgainstRegistry(att: CognitiveAttestation, registryResolver: RegistryResolver): Promise<RegistryVerificationResult>;
38
+ export interface ReplayBackend {
39
+ /**
40
+ * Replay the attested token range through the referenced model + SAE and
41
+ * compare feature activations against the envelope within the policy's
42
+ * attestation_epsilon. Implementations live outside the SDK.
43
+ */
44
+ replay(att: CognitiveAttestation): Promise<ReplayVerificationResult>;
45
+ }
46
+ export interface ReplayVerificationResult {
47
+ ok: boolean;
48
+ /** Per-feature deltas keyed by feature_id. */
49
+ per_feature_delta: Record<number, number>;
50
+ /** Features whose |delta| exceeded aggregation_policy.attestation_epsilon. */
51
+ over_epsilon: number[];
52
+ /** Features claimed by the envelope but not observed during replay. */
53
+ missing_from_replay: number[];
54
+ /** Features observed above threshold during replay but absent from the envelope. */
55
+ unexpected_in_replay: number[];
56
+ }
57
+ /**
58
+ * Stage 3. Requires an injected `ReplayBackend`. Running an SAE live is
59
+ * outside what a pure SDK primitive should bundle — use a private backend
60
+ * or the gateway's replay service.
61
+ *
62
+ * TODO: Once a reference replay backend exists (gateway-side, not SDK),
63
+ * document its contract here and ship test vectors covering
64
+ * threshold-delta, missing-feature, and unexpected-feature cases.
65
+ */
66
+ export declare function verifyByReplay(att: CognitiveAttestation, replayer: ReplayBackend): Promise<ReplayVerificationResult>;
67
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/v2/cognitive-attestation/verify.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAoBlE;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,oBAAoB,EACzB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAgBT;AAMD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,oBAAoB,GAAG,oBAAoB,CAUzF;AAMD,MAAM,WAAW,gBAAgB;IAC/B,qFAAqF;IACrF,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzE,qGAAqG;IACrG,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACzF;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,OAAO,CAAA;IACX,WAAW,EAAE,OAAO,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,oBAAoB,EACzB,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAuCrC;AAMD,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;CACrE;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAA;IACX,8CAA8C;IAC9C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,uEAAuE;IACvE,mBAAmB,EAAE,MAAM,EAAE,CAAA;IAC7B,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,oBAAoB,EACzB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAQnC"}
@@ -0,0 +1,125 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // Cognitive Attestation — three-stage verification
4
+ // ══════════════════════════════════════════════════════════════════
5
+ // Paper: "Cognitive Attestation" — Zenodo DOI 10.5281/zenodo.19646276, §4
6
+ //
7
+ // Stage 1 (cryptographic): verifySignature + verifyRequiredSignerRoles — ships.
8
+ // Stage 2 (registry): verifyAgainstRegistry — interface + basic impl;
9
+ // concrete resolvers injected by integrators/gateway.
10
+ // Stage 3 (replay): verifyByReplay — typed shape only; the SDK does
11
+ // not bundle a running SAE. Throws "not implemented"
12
+ // until a ReplayBackend is wired.
13
+ // ══════════════════════════════════════════════════════════════════
14
+ import { verify as edVerifyHex } from '../../crypto/keys.js';
15
+ import { canonicalizeAttestation } from './envelope.js';
16
+ function bytesToHex(bytes) {
17
+ let out = '';
18
+ for (let i = 0; i < bytes.length; i++)
19
+ out += bytes[i].toString(16).padStart(2, '0');
20
+ return out;
21
+ }
22
+ function base64ToHex(b64) {
23
+ try {
24
+ return Buffer.from(b64, 'base64').toString('hex');
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ // ──────────────────────────────────────────────────────────────────
31
+ // Stage 1a — cryptographic single-signer check.
32
+ // ──────────────────────────────────────────────────────────────────
33
+ /**
34
+ * Verify that at least one signature entry for `signerDid` validates against
35
+ * `publicKey`. Returns false on tamper, wrong DID, malformed signature, or
36
+ * key mismatch.
37
+ */
38
+ export function verifySignature(att, publicKey, signerDid) {
39
+ if (!(publicKey instanceof Uint8Array) || publicKey.length !== 32)
40
+ return false;
41
+ const canonicalBytes = canonicalizeAttestation(att);
42
+ const canonicalString = new TextDecoder().decode(canonicalBytes);
43
+ const publicKeyHex = bytesToHex(publicKey);
44
+ const matches = att.signatures.filter((s) => s.signer_did === signerDid);
45
+ if (matches.length === 0)
46
+ return false;
47
+ for (const entry of matches) {
48
+ const sigHex = base64ToHex(entry.signature);
49
+ if (!sigHex)
50
+ continue;
51
+ if (edVerifyHex(canonicalString, sigHex, publicKeyHex))
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ /**
57
+ * Confirm every role in `aggregation_policy.required_signer_roles` is
58
+ * represented by at least one signature entry with that role. Structural
59
+ * check only — does NOT verify signature cryptographically. Callers should
60
+ * pair this with `verifySignature` per signer for full Stage 1.
61
+ */
62
+ export function verifyRequiredSignerRoles(att) {
63
+ const required = new Set(att.aggregation_policy.required_signer_roles);
64
+ const presentRoles = new Set(att.signatures.map((s) => s.signer_role));
65
+ const missing = [];
66
+ for (const role of required)
67
+ if (!presentRoles.has(role))
68
+ missing.push(role);
69
+ return {
70
+ ok: missing.length === 0,
71
+ missing,
72
+ present: Array.from(presentRoles),
73
+ };
74
+ }
75
+ /**
76
+ * Stage 2. Checks that the referenced model and dictionary versions exist in
77
+ * the resolver's registry view. The SDK ships no registry client — integrators
78
+ * (or the private gateway) implement `RegistryResolver`.
79
+ */
80
+ export async function verifyAgainstRegistry(att, registryResolver) {
81
+ const errors = [];
82
+ let model_known = false;
83
+ let dictionary_known = false;
84
+ try {
85
+ model_known = await registryResolver.isKnownModel(att.model_ref.model_id, att.model_ref.model_version_hash);
86
+ if (!model_known) {
87
+ errors.push(`unknown model_version_hash for model_id="${att.model_ref.model_id}"`);
88
+ }
89
+ }
90
+ catch (e) {
91
+ errors.push(`model resolver error: ${e instanceof Error ? e.message : String(e)}`);
92
+ }
93
+ try {
94
+ dictionary_known = await registryResolver.isKnownDictionary(att.dictionary_ref.dictionary_id, att.dictionary_ref.dictionary_version_hash);
95
+ if (!dictionary_known) {
96
+ errors.push(`unknown dictionary_version_hash for dictionary_id="${att.dictionary_ref.dictionary_id}"`);
97
+ }
98
+ }
99
+ catch (e) {
100
+ errors.push(`dictionary resolver error: ${e instanceof Error ? e.message : String(e)}`);
101
+ }
102
+ return {
103
+ ok: errors.length === 0 && model_known && dictionary_known,
104
+ model_known,
105
+ dictionary_known,
106
+ errors,
107
+ };
108
+ }
109
+ /**
110
+ * Stage 3. Requires an injected `ReplayBackend`. Running an SAE live is
111
+ * outside what a pure SDK primitive should bundle — use a private backend
112
+ * or the gateway's replay service.
113
+ *
114
+ * TODO: Once a reference replay backend exists (gateway-side, not SDK),
115
+ * document its contract here and ship test vectors covering
116
+ * threshold-delta, missing-feature, and unexpected-feature cases.
117
+ */
118
+ export async function verifyByReplay(att, replayer) {
119
+ if (!replayer || typeof replayer.replay !== 'function') {
120
+ throw new Error('verifyByReplay: not implemented in SDK. Inject a ReplayBackend ' +
121
+ 'or use a private backend (e.g. gateway replay service).');
122
+ }
123
+ return replayer.replay(att);
124
+ }
125
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../../src/v2/cognitive-attestation/verify.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export { checkEscalationRequired, requestOwnerConfirmation, recordOwnerConfirmat
27
27
  export type { EscalationAction, EscalationCheck, RecordConfirmationParams, ConfirmationVerdict, VerifyForActionResult, } from './human-escalation.js';
28
28
  export { bindWallet, unbindWallet, verifyBoundWallet, verifyUnbindEvent, } from "./wallet-binding/index.js";
29
29
  export type { BoundWallet, WalletChain, WalletVerificationChallenge, UnbindEvent, } from "./wallet-binding/index.js";
30
+ export { buildAttestation, canonicalizeAttestation, signAttestation as signCognitiveAttestation, cognitiveAttestationDigest, sortFeatureActivations, validateAttestationShape, verifySignature as verifyCognitiveAttestationSignature, verifyRequiredSignerRoles, verifyAgainstRegistry, verifyByReplay, } from './cognitive-attestation/index.js';
31
+ export type { CognitiveAttestation, ModelRef, DictionaryRef, TokenRange, FeatureActivation, AggregationPolicy, Signature as CognitiveAttestationSignature, SignerRole as CognitiveAttestationSignerRole, ExecutionEnvironment, Precision, AttachmentPoint, SAEType, ActivationStatistic, CompletenessClaim, TiebreakerRule, BuildAttestationInput, RequiredRoleCoverage, RegistryResolver, RegistryVerificationResult, ReplayBackend, ReplayVerificationResult, ThresholdDispute, ExclusionDispute, ComputationalDispute, DecompositionAdequacyDispute, FacetedReinterpretationDispute, InterpretiveDispute, Dispute, } from './cognitive-attestation/index.js';
30
32
  export { verifyOnAccept, evaluateCredentialCheck, resolveCheckMode, } from "./credential-check-policy/index.js";
31
33
  export type { CredentialCheckMode, CredentialCheckPolicy, CredentialCheckResult, CredentialCheckDenialCode, AcceptanceStamp, } from "./credential-check-policy/index.js";
32
34
  export { createAttributionReceipt, signAttributionConsent, verifyAttributionConsent, checkArtifactCitations, receiptCore, } from './attribution-consent/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,13 @@ export { subDelegateAdvisor, consultAdvisor, getAdvisorUses, clearAdvisorUseTrac
43
43
  export { checkEscalationRequired, requestOwnerConfirmation, recordOwnerConfirmation, verifyOwnerConfirmation, isConfirmationValid, verifyV2DelegationForAction, hashActionDetails, DEFAULT_FLAGGED_ACTION_CLASSES, } from './human-escalation.js';
44
44
  // Wallet Binding (agent-native structural attestation)
45
45
  export { bindWallet, unbindWallet, verifyBoundWallet, verifyUnbindEvent, } from "./wallet-binding/index.js";
46
+ // Cognitive Attestation (Paper 7 — Zenodo DOI 10.5281/zenodo.19646276)
47
+ // Signed declarations of feature-level model computation. SDK ships the
48
+ // envelope, JCS canonicalization, Ed25519 signing, Stage 1 verification,
49
+ // Stage 2 registry interface, Stage 3 replay stub, typed dispute primitives.
50
+ // Dispute resolution / transparency logs / cross-tenant correlation live
51
+ // in @aeoess/gateway.
52
+ export { buildAttestation, canonicalizeAttestation, signAttestation as signCognitiveAttestation, cognitiveAttestationDigest, sortFeatureActivations, validateAttestationShape, verifySignature as verifyCognitiveAttestationSignature, verifyRequiredSignerRoles, verifyAgainstRegistry, verifyByReplay, } from './cognitive-attestation/index.js';
46
53
  // Credential Check Policy (verification timing for governance metadata)
47
54
  // Proposed by @piiiico on a2aproject/A2A governance metadata thread.
48
55
  export { verifyOnAccept, evaluateCredentialCheck, resolveCheckMode, } from "./credential-check-policy/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { MutualAuthCertificate, MutualAuthRole, TrustAnchor } from './types.js';
2
+ export interface BuildCertificateInput {
3
+ role: MutualAuthRole;
4
+ subject_id: string;
5
+ subject_pubkey_hex: string;
6
+ issuer_id: string;
7
+ issuer_role: MutualAuthRole | 'trust_anchor';
8
+ binding: string;
9
+ not_before: number;
10
+ not_after: number;
11
+ supported_versions: string[];
12
+ attestation_grade?: 0 | 1 | 2 | 3;
13
+ capabilities?: string[];
14
+ }
15
+ /** Build an unsigned certificate. Call signCertificate next. */
16
+ export declare function buildCertificate(input: BuildCertificateInput, issuer_pubkey_hex: string): Omit<MutualAuthCertificate, 'signature_b64'>;
17
+ /** Sign an unsigned certificate with the issuer's private key (hex). */
18
+ export declare function signCertificate(unsigned: Omit<MutualAuthCertificate, 'signature_b64'>, issuer_sk_hex: string): MutualAuthCertificate;
19
+ /** Stable content-hash identifier for a certificate (for session_id
20
+ * derivation, audit references, etc.). Does not include the signature
21
+ * so equivalent unsigned certificates produce the same id. */
22
+ export declare function certificateId(cert: MutualAuthCertificate): string;
23
+ export interface VerifyCertificateOutcome {
24
+ ok: boolean;
25
+ reason?: 'signature_invalid' | 'expired' | 'not_yet_valid' | 'version_empty';
26
+ }
27
+ export declare function verifyCertificateSignature(cert: MutualAuthCertificate): VerifyCertificateOutcome;
28
+ /** Check validity window using a supplied now() (unix ms). */
29
+ export declare function isCertificateTemporallyValid(cert: MutualAuthCertificate, now_ms: number, max_clock_skew_ms?: number): VerifyCertificateOutcome;
30
+ export interface AnchorCheckOutcome {
31
+ ok: boolean;
32
+ anchor?: TrustAnchor;
33
+ reason?: 'unknown_issuer' | 'revoked_anchor' | 'binding_mismatch';
34
+ }
35
+ /** Given a certificate and a local trust-anchor list, determine if
36
+ * the certificate was issued by a trusted anchor and whether the
37
+ * anchor's binding constraints (if any) permit this cert's binding. */
38
+ export declare function checkAnchor(cert: MutualAuthCertificate, anchors: TrustAnchor[], revoked_anchor_ids?: string[]): AnchorCheckOutcome;
39
+ //# sourceMappingURL=certificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.d.ts","sourceRoot":"","sources":["../../../../src/v2/mutual-auth/certificate.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAA;AAMnB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,cAAc,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,cAAc,GAAG,cAAc,CAAA;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,iBAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,iBAAiB,EAAE,MAAM,GACxB,IAAI,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAgB9C;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,eAAe,CAAC,EACtD,aAAa,EAAE,MAAM,GACpB,qBAAqB,CAKvB;AAED;;+DAE+D;AAC/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAIjE;AAID,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,eAAe,GAAG,eAAe,CAAA;CAC7E;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,qBAAqB,GAC1B,wBAAwB,CAU1B;AAED,8DAA8D;AAC9D,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,qBAAqB,EAC3B,MAAM,EAAE,MAAM,EACd,iBAAiB,SAAI,GACpB,wBAAwB,CAQ1B;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;CAClE;AAED;;wEAEwE;AACxE,wBAAgB,WAAW,CACzB,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,WAAW,EAAE,EACtB,kBAAkB,GAAE,MAAM,EAAO,GAChC,kBAAkB,CAapB"}
@@ -0,0 +1,89 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // Mutual Authentication v1 — certificate build, sign, verify
4
+ // ══════════════════════════════════════════════════════════════════
5
+ import { createHash } from 'node:crypto';
6
+ import { canonicalizeJCS } from '../../core/canonical-jcs.js';
7
+ import { sign as edSignHex, verify as edVerifyHex } from '../../crypto/keys.js';
8
+ const SPEC_VERSION = '1.0';
9
+ /** Build an unsigned certificate. Call signCertificate next. */
10
+ export function buildCertificate(input, issuer_pubkey_hex) {
11
+ return {
12
+ spec_version: SPEC_VERSION,
13
+ role: input.role,
14
+ subject_id: input.subject_id,
15
+ issuer_id: input.issuer_id,
16
+ issuer_role: input.issuer_role,
17
+ issuer_pubkey_hex,
18
+ subject_pubkey_hex: input.subject_pubkey_hex,
19
+ not_before: input.not_before,
20
+ not_after: input.not_after,
21
+ binding: input.binding,
22
+ attestation_grade: input.attestation_grade,
23
+ supported_versions: input.supported_versions,
24
+ capabilities: input.capabilities,
25
+ };
26
+ }
27
+ /** Sign an unsigned certificate with the issuer's private key (hex). */
28
+ export function signCertificate(unsigned, issuer_sk_hex) {
29
+ const canonical = canonicalizeJCS(unsigned);
30
+ const sig_hex = edSignHex(canonical, issuer_sk_hex);
31
+ const sig_b64 = Buffer.from(sig_hex, 'hex').toString('base64');
32
+ return { ...unsigned, signature_b64: sig_b64 };
33
+ }
34
+ /** Stable content-hash identifier for a certificate (for session_id
35
+ * derivation, audit references, etc.). Does not include the signature
36
+ * so equivalent unsigned certificates produce the same id. */
37
+ export function certificateId(cert) {
38
+ const { signature_b64: _sig, ...rest } = cert;
39
+ const canonical = canonicalizeJCS(rest);
40
+ return 'sha256:' + createHash('sha256').update(canonical).digest('hex');
41
+ }
42
+ export function verifyCertificateSignature(cert) {
43
+ if (!cert.supported_versions || cert.supported_versions.length === 0) {
44
+ return { ok: false, reason: 'version_empty' };
45
+ }
46
+ const { signature_b64, ...rest } = cert;
47
+ const canonical = canonicalizeJCS(rest);
48
+ const sig_hex = Buffer.from(signature_b64, 'base64').toString('hex');
49
+ const ok = edVerifyHex(canonical, sig_hex, cert.issuer_pubkey_hex);
50
+ if (!ok)
51
+ return { ok: false, reason: 'signature_invalid' };
52
+ return { ok: true };
53
+ }
54
+ /** Check validity window using a supplied now() (unix ms). */
55
+ export function isCertificateTemporallyValid(cert, now_ms, max_clock_skew_ms = 0) {
56
+ if (now_ms + max_clock_skew_ms < cert.not_before) {
57
+ return { ok: false, reason: 'not_yet_valid' };
58
+ }
59
+ if (now_ms - max_clock_skew_ms > cert.not_after) {
60
+ return { ok: false, reason: 'expired' };
61
+ }
62
+ return { ok: true };
63
+ }
64
+ /** Given a certificate and a local trust-anchor list, determine if
65
+ * the certificate was issued by a trusted anchor and whether the
66
+ * anchor's binding constraints (if any) permit this cert's binding. */
67
+ export function checkAnchor(cert, anchors, revoked_anchor_ids = []) {
68
+ const anchor = anchors.find((a) => a.pubkey_hex === cert.issuer_pubkey_hex);
69
+ if (!anchor)
70
+ return { ok: false, reason: 'unknown_issuer' };
71
+ if (revoked_anchor_ids.includes(anchor.anchor_id)) {
72
+ return { ok: false, anchor, reason: 'revoked_anchor' };
73
+ }
74
+ if (anchor.binding_constraints && anchor.binding_constraints.length > 0) {
75
+ const matched = anchor.binding_constraints.some((pat) => matchBinding(pat, cert.binding));
76
+ if (!matched)
77
+ return { ok: false, anchor, reason: 'binding_mismatch' };
78
+ }
79
+ return { ok: true, anchor };
80
+ }
81
+ function matchBinding(pattern, binding) {
82
+ if (pattern === binding)
83
+ return true;
84
+ if (pattern.endsWith('*')) {
85
+ return binding.startsWith(pattern.slice(0, -1));
86
+ }
87
+ return false;
88
+ }
89
+ //# sourceMappingURL=certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../../../src/v2/mutual-auth/certificate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { MutualAuthAttest, MutualAuthCertificate, MutualAuthFailureReason, MutualAuthHello, MutualAuthPolicy, MutualAuthResult, MutualAuthRole, MutualAuthSession, TrustAnchor } from './types.js';
2
+ export declare function newNonce(): string;
3
+ export declare function buildHello(role: MutualAuthRole, supported_versions: string[], now_ms: number, nonce_b64?: string): MutualAuthHello;
4
+ /** Choose the highest mutually supported version. Returns null if
5
+ * there is no overlap. Both sides MUST run the same algorithm. */
6
+ export declare function chooseVersion(peer_supported: string[], own_accepted: string[]): string | null;
7
+ export interface BuildAttestInput {
8
+ role: MutualAuthRole;
9
+ chosen_version: string;
10
+ own_nonce_b64: string;
11
+ peer_nonce_b64: string;
12
+ certificate: MutualAuthCertificate;
13
+ now_ms: number;
14
+ }
15
+ export declare function buildAttest(input: BuildAttestInput, own_sk_hex: string): MutualAuthAttest;
16
+ export interface VerifyAttestInput {
17
+ attest: MutualAuthAttest;
18
+ expected_peer_nonce_b64: string;
19
+ expected_own_nonce_b64: string;
20
+ policy: MutualAuthPolicy;
21
+ trust_anchors: TrustAnchor[];
22
+ revoked_anchor_ids?: string[];
23
+ now_ms: number;
24
+ }
25
+ export interface VerifyAttestOutcome {
26
+ ok: boolean;
27
+ reason?: MutualAuthFailureReason;
28
+ detail?: string;
29
+ }
30
+ export declare function verifyAttest(input: VerifyAttestInput): VerifyAttestOutcome;
31
+ /** Derive the shared session record from both sides' Attests. Both
32
+ * parties MUST compute identical session_id values given identical
33
+ * inputs (canonical JCS + sha256). */
34
+ export declare function deriveSession(agent_attest: MutualAuthAttest, is_attest: MutualAuthAttest, policy: MutualAuthPolicy, now_ms: number): MutualAuthResult;
35
+ /** Check whether a MutualAuthSession is still alive. */
36
+ export declare function isSessionActive(session: MutualAuthSession, now_ms: number): boolean;
37
+ //# sourceMappingURL=handshake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../../../src/v2/mutual-auth/handshake.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAA;AAMnB,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAID,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,SAAa,GACrB,eAAe,CAQjB;AAID;mEACmE;AACnE,wBAAgB,aAAa,CAC3B,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,GAAG,IAAI,CAKf;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,qBAAqB,CAAA;IAClC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,GACjB,gBAAgB,CAgBlB;AAID,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,gBAAgB,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,gBAAgB,CAAA;IACxB,aAAa,EAAE,WAAW,EAAE,CAAA;IAC5B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,CA6G1E;AAID;;uCAEuC;AACvC,wBAAgB,aAAa,CAC3B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,gBAAgB,CAsDlB;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAOT"}