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.
- package/README.md +2 -2
- package/dist/src/adapters/mutual-auth-a2a.d.ts +53 -0
- package/dist/src/adapters/mutual-auth-a2a.d.ts.map +1 -0
- package/dist/src/adapters/mutual-auth-a2a.js +108 -0
- package/dist/src/adapters/mutual-auth-a2a.js.map +1 -0
- package/dist/src/adapters/mutual-auth-mcp.d.ts +55 -0
- package/dist/src/adapters/mutual-auth-mcp.d.ts.map +1 -0
- package/dist/src/adapters/mutual-auth-mcp.js +107 -0
- package/dist/src/adapters/mutual-auth-mcp.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/v2/cognitive-attestation/disputes.d.ts +50 -0
- package/dist/src/v2/cognitive-attestation/disputes.d.ts.map +1 -0
- package/dist/src/v2/cognitive-attestation/disputes.js +12 -0
- package/dist/src/v2/cognitive-attestation/disputes.js.map +1 -0
- package/dist/src/v2/cognitive-attestation/envelope.d.ts +44 -0
- package/dist/src/v2/cognitive-attestation/envelope.d.ts.map +1 -0
- package/dist/src/v2/cognitive-attestation/envelope.js +341 -0
- package/dist/src/v2/cognitive-attestation/envelope.js.map +1 -0
- package/dist/src/v2/cognitive-attestation/index.d.ts +6 -0
- package/dist/src/v2/cognitive-attestation/index.d.ts.map +1 -0
- package/dist/src/v2/cognitive-attestation/index.js +23 -0
- package/dist/src/v2/cognitive-attestation/index.js.map +1 -0
- package/dist/src/v2/cognitive-attestation/types.d.ts +111 -0
- package/dist/src/v2/cognitive-attestation/types.d.ts.map +1 -0
- package/dist/src/v2/cognitive-attestation/types.js +13 -0
- package/dist/src/v2/cognitive-attestation/types.js.map +1 -0
- package/dist/src/v2/cognitive-attestation/verify.d.ts +67 -0
- package/dist/src/v2/cognitive-attestation/verify.d.ts.map +1 -0
- package/dist/src/v2/cognitive-attestation/verify.js +125 -0
- package/dist/src/v2/cognitive-attestation/verify.js.map +1 -0
- package/dist/src/v2/index.d.ts +2 -0
- package/dist/src/v2/index.d.ts.map +1 -1
- package/dist/src/v2/index.js +7 -0
- package/dist/src/v2/index.js.map +1 -1
- package/dist/src/v2/mutual-auth/certificate.d.ts +39 -0
- package/dist/src/v2/mutual-auth/certificate.d.ts.map +1 -0
- package/dist/src/v2/mutual-auth/certificate.js +89 -0
- package/dist/src/v2/mutual-auth/certificate.js.map +1 -0
- package/dist/src/v2/mutual-auth/handshake.d.ts +37 -0
- package/dist/src/v2/mutual-auth/handshake.d.ts.map +1 -0
- package/dist/src/v2/mutual-auth/handshake.js +216 -0
- package/dist/src/v2/mutual-auth/handshake.js.map +1 -0
- package/dist/src/v2/mutual-auth/index.d.ts +8 -0
- package/dist/src/v2/mutual-auth/index.d.ts.map +1 -0
- package/dist/src/v2/mutual-auth/index.js +8 -0
- package/dist/src/v2/mutual-auth/index.js.map +1 -0
- package/dist/src/v2/mutual-auth/trust-bundle.d.ts +20 -0
- package/dist/src/v2/mutual-auth/trust-bundle.d.ts.map +1 -0
- package/dist/src/v2/mutual-auth/trust-bundle.js +45 -0
- package/dist/src/v2/mutual-auth/trust-bundle.js.map +1 -0
- package/dist/src/v2/mutual-auth/types.d.ts +145 -0
- package/dist/src/v2/mutual-auth/types.d.ts.map +1 -0
- package/dist/src/v2/mutual-auth/types.js +19 -0
- package/dist/src/v2/mutual-auth/types.js.map +1 -0
- package/dist/src/v2/wallet-binding/bind.d.ts +12 -0
- package/dist/src/v2/wallet-binding/bind.d.ts.map +1 -1
- package/dist/src/v2/wallet-binding/bind.js +8 -9
- package/dist/src/v2/wallet-binding/bind.js.map +1 -1
- 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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"}
|
package/dist/src/v2/index.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/src/v2/index.js
CHANGED
|
@@ -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";
|
package/dist/src/v2/index.js.map
CHANGED
|
@@ -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":"AAAA,0EAA0E;AAC1E;;;GAGG;AAuBH,8DAA8D;AAC9D,OAAO,EACL,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAC5C,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAClE,gBAAgB,EAAE,gBAAgB,EAClC,wBAAwB,EAAE,uBAAuB,EACjD,oBAAoB,EACpB,0BAA0B,EAAE,uBAAuB,EACnD,kBAAkB,GACnB,MAAM,aAAa,CAAA;AAEpB,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAC5D,kBAAkB,EAAE,oBAAoB,EACxC,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAC3D,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,sBAAsB,EAC5C,gBAAgB,EAAE,gBAAgB,GACnC,MAAM,oBAAoB,CAAA;AAG3B,0BAA0B;AAC1B,OAAO,EACL,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EACnE,kBAAkB,EAAE,qBAAqB,EACzC,wBAAwB,EAAE,2BAA2B,EACrD,qBAAqB,EAAE,yBAAyB,EAChD,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,sEAAsE;AACtE,kEAAkE;AAClE,yEAAyE;AACzE,OAAO,EACL,+BAA+B,GAChC,MAAM,iBAAiB,CAAA;AAExB,wBAAwB;AACxB,OAAO,EACL,wBAAwB,EAAE,mBAAmB,EAC7C,oBAAoB,EAAE,iBAAiB,EACvC,YAAY,EAAE,0BAA0B,EACxC,eAAe,EAAE,sBAAsB,EACvC,mBAAmB,EAAE,sBAAsB,GAC5C,MAAM,mBAAmB,CAAA;AAG1B,qEAAqE;AACrE,sEAAsE;AACtE,gEAAgE;AAChE,OAAO,EACL,6BAA6B,GAC9B,MAAM,mBAAmB,CAAA;AAE1B,4DAA4D;AAC5D,wEAAwE;AACxE,iBAAiB;AACjB,OAAO,EACL,eAAe,EAAE,0BAA0B,GAC5C,MAAM,qBAAqB,CAAA;AAG5B,+DAA+D;AAC/D,8DAA8D;AAC9D,iCAAiC;AACjC,OAAO,EACL,eAAe,EAAE,oBAAoB,GACtC,MAAM,qBAAqB,CAAA;AAE5B,kDAAkD;AAClD,OAAO,EACL,aAAa,EAAE,eAAe,EAAE,iBAAiB,EACjD,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAC3C,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA;AAGjC,oEAAoE;AACpE,OAAO,EACL,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EACtD,cAAc,EAAE,wBAAwB,GACzC,MAAM,qBAAqB,CAAA;AAG5B,sEAAsE;AACtE,qEAAqE;AACrE,iCAAiC;AACjC,OAAO,EACL,2BAA2B,GAC5B,MAAM,uBAAuB,CAAA;AAG9B,oCAAoC;AACpC,OAAO,EACL,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAClD,sBAAsB,EAAE,aAAa,EACrC,kBAAkB,EAAE,UAAU,EAAE,wBAAwB,GACzD,MAAM,sBAAsB,CAAA;AAG7B,oEAAoE;AACpE,OAAO,EACL,kBAAkB,EAAE,cAAc,EAClC,cAAc,EAAE,sBAAsB,GACvC,MAAM,2BAA2B,CAAA;AAOlC,+DAA+D;AAC/D,OAAO,EACL,uBAAuB,EAAE,wBAAwB,EAAE,uBAAuB,EAC1E,uBAAuB,EAAE,mBAAmB,EAAE,2BAA2B,EACzE,iBAAiB,EAAE,8BAA8B,GAClD,MAAM,uBAAuB,CAAA;AAO9B,uDAAuD;AACvD,OAAO,EACL,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,GAC/D,MAAM,2BAA2B,CAAA;AAKlC,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,6EAA6E;AAC7E,yEAAyE;AACzE,sBAAsB;AACtB,OAAO,EACL,gBAAgB,EAAE,uBAAuB,EACzC,eAAe,IAAI,wBAAwB,EAC3C,0BAA0B,EAAE,sBAAsB,EAAE,wBAAwB,EAC5E,eAAe,IAAI,mCAAmC,EACtD,yBAAyB,EACzB,qBAAqB,EAAE,cAAc,GACtC,MAAM,kCAAkC,CAAA;AAczC,wEAAwE;AACxE,qEAAqE;AACrE,OAAO,EACL,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,GAC1D,MAAM,oCAAoC,CAAA;AAM3C,mEAAmE;AACnE,4CAA4C;AAC5C,OAAO,EACL,wBAAwB,EAAE,sBAAsB,EAChD,wBAAwB,EAAE,sBAAsB,EAAE,WAAW,GAC9D,MAAM,gCAAgC,CAAA;AAMvC,6EAA6E;AAC7E,gFAAgF;AAChF,OAAO,EACL,iBAAiB,EAAE,SAAS,EAAE,qBAAqB,EACnD,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAC/D,gBAAgB,EAAE,cAAc,EAAE,uBAAuB,EACzD,eAAe,GAChB,MAAM,kCAAkC,CAAA;AAOzC,uEAAuE;AACvE,sEAAsE;AACtE,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,qBAAqB,GACtB,MAAM,gCAAgC,CAAA;AAWvC,uEAAuE;AACvE,iEAAiE;AACjE,wEAAwE;AACxE,wDAAwD;AACxD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,IAAI,yBAAyB,EAC5C,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,gBAAgB,IAAI,0BAA0B,EAC9C,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAmB1C,uEAAuE;AACvE,8DAA8D;AAC9D,uEAAuE;AACvE,uEAAuE;AACvE,OAAO,EACL,qBAAqB,EAAE,kBAAkB,EACzC,oBAAoB,EAAE,iBAAiB,EAAE,qBAAqB,EAC9D,wBAAwB,EAAE,gBAAgB,EAC1C,kBAAkB,IAAI,6BAA6B,EACnD,gBAAgB,IAAI,2BAA2B,EAC/C,0BAA0B,EAAE,2BAA2B,EACvD,6BAA6B,EAAE,aAAa,EAC5C,YAAY,EAAE,QAAQ,EACtB,aAAa,EAAE,mBAAmB,EAClC,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAClD,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,0BAA0B,EAC3C,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAC/C,cAAc,EACd,0BAA0B,EAAE,2BAA2B,GACxD,MAAM,kCAAkC,CAAA"}
|
|
@@ -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"}
|