@kya-os/mcp-i-core 1.0.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 +302 -0
- package/dist/did/resolver.d.ts +92 -0
- package/dist/did/resolver.d.ts.map +1 -0
- package/dist/did/resolver.js +203 -0
- package/dist/did/resolver.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/proof/proof-engine.d.ts +89 -0
- package/dist/proof/proof-engine.d.ts.map +1 -0
- package/dist/proof/proof-engine.js +249 -0
- package/dist/proof/proof-engine.js.map +1 -0
- package/dist/providers/base.d.ts +76 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +43 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/memory.d.ts +42 -0
- package/dist/providers/memory.d.ts.map +1 -0
- package/dist/providers/memory.js +117 -0
- package/dist/providers/memory.js.map +1 -0
- package/dist/runtime/base-v2.d.ts +117 -0
- package/dist/runtime/base-v2.d.ts.map +1 -0
- package/dist/runtime/base-v2.js +328 -0
- package/dist/runtime/base-v2.js.map +1 -0
- package/dist/runtime/base.d.ts +97 -0
- package/dist/runtime/base.d.ts.map +1 -0
- package/dist/runtime/base.js +316 -0
- package/dist/runtime/base.js.map +1 -0
- package/dist/types/providers.d.ts +142 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +43 -0
- package/dist/types/providers.js.map +1 -0
- package/dist/verification/interfaces.d.ts +125 -0
- package/dist/verification/interfaces.d.ts.map +1 -0
- package/dist/verification/interfaces.js +101 -0
- package/dist/verification/interfaces.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProofEngine abstraction for multiple proof formats
|
|
3
|
+
* Supports JWT-VC, Data Integrity (Ed25519Signature2020), and JWS
|
|
4
|
+
*/
|
|
5
|
+
import { CryptoProvider } from "../types/providers";
|
|
6
|
+
export interface ProofFormat {
|
|
7
|
+
type: 'JWT-VC' | 'DataIntegrity' | 'JWS' | 'DetachedJWS';
|
|
8
|
+
algorithm: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ProofOptions {
|
|
11
|
+
format: ProofFormat;
|
|
12
|
+
canonicalize?: boolean;
|
|
13
|
+
includeMeta?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface VerificationResult {
|
|
16
|
+
valid: boolean;
|
|
17
|
+
format: ProofFormat;
|
|
18
|
+
errors?: string[];
|
|
19
|
+
metadata?: any;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Abstract proof engine for creating and verifying proofs
|
|
23
|
+
*/
|
|
24
|
+
export declare abstract class ProofEngine {
|
|
25
|
+
protected crypto: CryptoProvider;
|
|
26
|
+
constructor(crypto: CryptoProvider);
|
|
27
|
+
/**
|
|
28
|
+
* Create a proof for data in the specified format
|
|
29
|
+
*/
|
|
30
|
+
abstract createProof(data: any, privateKey: string, options: ProofOptions): Promise<any>;
|
|
31
|
+
/**
|
|
32
|
+
* Verify a proof
|
|
33
|
+
*/
|
|
34
|
+
abstract verifyProof(data: any, proof: any, publicKey: string, options: ProofOptions): Promise<VerificationResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Canonicalize data (JCS - RFC 8785)
|
|
37
|
+
*/
|
|
38
|
+
abstract canonicalize(data: any): string;
|
|
39
|
+
/**
|
|
40
|
+
* Get supported proof formats
|
|
41
|
+
*/
|
|
42
|
+
abstract getSupportedFormats(): ProofFormat[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Default proof engine implementation
|
|
46
|
+
*/
|
|
47
|
+
export declare class DefaultProofEngine extends ProofEngine {
|
|
48
|
+
/**
|
|
49
|
+
* Create a proof based on format
|
|
50
|
+
*/
|
|
51
|
+
createProof(data: any, privateKey: string, options: ProofOptions): Promise<any>;
|
|
52
|
+
/**
|
|
53
|
+
* Verify a proof based on format
|
|
54
|
+
*/
|
|
55
|
+
verifyProof(data: any, proof: any, publicKey: string, options: ProofOptions): Promise<VerificationResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Create detached JWS proof
|
|
58
|
+
*/
|
|
59
|
+
private createDetachedJWS;
|
|
60
|
+
/**
|
|
61
|
+
* Verify detached JWS proof
|
|
62
|
+
*/
|
|
63
|
+
private verifyDetachedJWS;
|
|
64
|
+
/**
|
|
65
|
+
* Create Data Integrity proof (Ed25519Signature2020)
|
|
66
|
+
*/
|
|
67
|
+
private createDataIntegrityProof;
|
|
68
|
+
/**
|
|
69
|
+
* Verify Data Integrity proof
|
|
70
|
+
*/
|
|
71
|
+
private verifyDataIntegrityProof;
|
|
72
|
+
/**
|
|
73
|
+
* Create JWT-VC
|
|
74
|
+
*/
|
|
75
|
+
private createJWTVC;
|
|
76
|
+
/**
|
|
77
|
+
* Verify JWT-VC
|
|
78
|
+
*/
|
|
79
|
+
private verifyJWTVC;
|
|
80
|
+
/**
|
|
81
|
+
* Canonicalize JSON (JCS - RFC 8785)
|
|
82
|
+
*/
|
|
83
|
+
canonicalize(obj: any): string;
|
|
84
|
+
/**
|
|
85
|
+
* Get supported formats
|
|
86
|
+
*/
|
|
87
|
+
getSupportedFormats(): ProofFormat[];
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=proof-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-engine.d.ts","sourceRoot":"","sources":["../../src/proof/proof-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,eAAe,GAAG,KAAK,GAAG,aAAa,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,8BAAsB,WAAW;IACnB,SAAS,CAAC,MAAM,EAAE,cAAc;gBAAtB,MAAM,EAAE,cAAc;IAE5C;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,GAAG,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAExC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,IAAI,WAAW,EAAE;CAC9C;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,GAAG,CAAC;IAgBf;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAyB9B;;OAEG;YACW,iBAAiB;IAmB/B;;OAEG;YACW,iBAAiB;IAgC/B;;OAEG;YACW,wBAAwB;IA0BtC;;OAEG;YACW,wBAAwB;IA4BtC;;OAEG;YACW,WAAW;IAgCzB;;OAEG;YACW,WAAW;IAoDzB;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAqB9B;;OAEG;IACH,mBAAmB,IAAI,WAAW,EAAE;CAOrC"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ProofEngine abstraction for multiple proof formats
|
|
4
|
+
* Supports JWT-VC, Data Integrity (Ed25519Signature2020), and JWS
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DefaultProofEngine = exports.ProofEngine = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Abstract proof engine for creating and verifying proofs
|
|
10
|
+
*/
|
|
11
|
+
class ProofEngine {
|
|
12
|
+
crypto;
|
|
13
|
+
constructor(crypto) {
|
|
14
|
+
this.crypto = crypto;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ProofEngine = ProofEngine;
|
|
18
|
+
/**
|
|
19
|
+
* Default proof engine implementation
|
|
20
|
+
*/
|
|
21
|
+
class DefaultProofEngine extends ProofEngine {
|
|
22
|
+
/**
|
|
23
|
+
* Create a proof based on format
|
|
24
|
+
*/
|
|
25
|
+
async createProof(data, privateKey, options) {
|
|
26
|
+
const canonical = options.canonicalize ? this.canonicalize(data) : JSON.stringify(data);
|
|
27
|
+
const dataBytes = new TextEncoder().encode(canonical);
|
|
28
|
+
switch (options.format.type) {
|
|
29
|
+
case 'DetachedJWS':
|
|
30
|
+
return this.createDetachedJWS(dataBytes, privateKey, options);
|
|
31
|
+
case 'DataIntegrity':
|
|
32
|
+
return this.createDataIntegrityProof(data, privateKey, options);
|
|
33
|
+
case 'JWT-VC':
|
|
34
|
+
return this.createJWTVC(data, privateKey, options);
|
|
35
|
+
default:
|
|
36
|
+
throw new Error(`Unsupported proof format: ${options.format.type}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Verify a proof based on format
|
|
41
|
+
*/
|
|
42
|
+
async verifyProof(data, proof, publicKey, options) {
|
|
43
|
+
try {
|
|
44
|
+
switch (options.format.type) {
|
|
45
|
+
case 'DetachedJWS':
|
|
46
|
+
return this.verifyDetachedJWS(data, proof, publicKey, options);
|
|
47
|
+
case 'DataIntegrity':
|
|
48
|
+
return this.verifyDataIntegrityProof(data, proof, publicKey, options);
|
|
49
|
+
case 'JWT-VC':
|
|
50
|
+
return this.verifyJWTVC(proof, publicKey, options);
|
|
51
|
+
default:
|
|
52
|
+
return {
|
|
53
|
+
valid: false,
|
|
54
|
+
format: options.format,
|
|
55
|
+
errors: [`Unsupported proof format: ${options.format.type}`]
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return {
|
|
61
|
+
valid: false,
|
|
62
|
+
format: options.format,
|
|
63
|
+
errors: [error instanceof Error ? error.message : String(error)]
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create detached JWS proof
|
|
69
|
+
*/
|
|
70
|
+
async createDetachedJWS(data, privateKey, options) {
|
|
71
|
+
// Create signature
|
|
72
|
+
const signature = await this.crypto.sign(data, privateKey);
|
|
73
|
+
// Create hash for reference
|
|
74
|
+
const hash = await this.crypto.hash(data);
|
|
75
|
+
return {
|
|
76
|
+
format: 'DetachedJWS',
|
|
77
|
+
signature: Buffer.from(signature).toString('base64url'),
|
|
78
|
+
hash: Buffer.from(hash).toString('base64'),
|
|
79
|
+
algorithm: options.format.algorithm || 'Ed25519'
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Verify detached JWS proof
|
|
84
|
+
*/
|
|
85
|
+
async verifyDetachedJWS(data, proof, publicKey, options) {
|
|
86
|
+
const canonical = options.canonicalize ? this.canonicalize(data) : JSON.stringify(data);
|
|
87
|
+
const dataBytes = new TextEncoder().encode(canonical);
|
|
88
|
+
// Verify hash matches
|
|
89
|
+
const hash = await this.crypto.hash(dataBytes);
|
|
90
|
+
const hashBase64 = Buffer.from(hash).toString('base64');
|
|
91
|
+
if (hashBase64 !== proof.hash) {
|
|
92
|
+
return {
|
|
93
|
+
valid: false,
|
|
94
|
+
format: options.format,
|
|
95
|
+
errors: ['Hash mismatch']
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// Verify signature
|
|
99
|
+
const signatureBytes = Buffer.from(proof.signature, 'base64url');
|
|
100
|
+
const valid = await this.crypto.verify(dataBytes, signatureBytes, publicKey);
|
|
101
|
+
return {
|
|
102
|
+
valid,
|
|
103
|
+
format: options.format,
|
|
104
|
+
metadata: { hash: hashBase64 }
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create Data Integrity proof (Ed25519Signature2020)
|
|
109
|
+
*/
|
|
110
|
+
async createDataIntegrityProof(data, privateKey, options) {
|
|
111
|
+
const proof = {
|
|
112
|
+
type: 'Ed25519Signature2020',
|
|
113
|
+
created: new Date().toISOString(),
|
|
114
|
+
verificationMethod: '', // Will be set by runtime
|
|
115
|
+
proofPurpose: 'assertionMethod'
|
|
116
|
+
};
|
|
117
|
+
// Canonicalize document + proof
|
|
118
|
+
const docWithProof = { ...data, proof };
|
|
119
|
+
const canonical = this.canonicalize(docWithProof);
|
|
120
|
+
const dataBytes = new TextEncoder().encode(canonical);
|
|
121
|
+
// Sign
|
|
122
|
+
const signature = await this.crypto.sign(dataBytes, privateKey);
|
|
123
|
+
return {
|
|
124
|
+
...proof,
|
|
125
|
+
proofValue: Buffer.from(signature).toString('base64')
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Verify Data Integrity proof
|
|
130
|
+
*/
|
|
131
|
+
async verifyDataIntegrityProof(data, proof, publicKey, options) {
|
|
132
|
+
// Remove proofValue for verification
|
|
133
|
+
const { proofValue, ...proofWithoutValue } = proof;
|
|
134
|
+
const docWithProof = { ...data, proof: proofWithoutValue };
|
|
135
|
+
// Canonicalize
|
|
136
|
+
const canonical = this.canonicalize(docWithProof);
|
|
137
|
+
const dataBytes = new TextEncoder().encode(canonical);
|
|
138
|
+
// Verify signature
|
|
139
|
+
const signatureBytes = Buffer.from(proofValue, 'base64');
|
|
140
|
+
const valid = await this.crypto.verify(dataBytes, signatureBytes, publicKey);
|
|
141
|
+
return {
|
|
142
|
+
valid,
|
|
143
|
+
format: options.format,
|
|
144
|
+
metadata: {
|
|
145
|
+
created: proof.created,
|
|
146
|
+
type: proof.type
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Create JWT-VC
|
|
152
|
+
*/
|
|
153
|
+
async createJWTVC(data, privateKey, options) {
|
|
154
|
+
// Create JWT header
|
|
155
|
+
const header = {
|
|
156
|
+
alg: 'EdDSA',
|
|
157
|
+
typ: 'JWT'
|
|
158
|
+
};
|
|
159
|
+
// Create payload
|
|
160
|
+
const payload = {
|
|
161
|
+
vc: data,
|
|
162
|
+
iat: Math.floor(Date.now() / 1000),
|
|
163
|
+
exp: Math.floor(Date.now() / 1000) + 3600 // 1 hour
|
|
164
|
+
};
|
|
165
|
+
// Encode parts
|
|
166
|
+
const headerB64 = Buffer.from(JSON.stringify(header)).toString('base64url');
|
|
167
|
+
const payloadB64 = Buffer.from(JSON.stringify(payload)).toString('base64url');
|
|
168
|
+
// Sign
|
|
169
|
+
const message = `${headerB64}.${payloadB64}`;
|
|
170
|
+
const signature = await this.crypto.sign(new TextEncoder().encode(message), privateKey);
|
|
171
|
+
return `${message}.${Buffer.from(signature).toString('base64url')}`;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Verify JWT-VC
|
|
175
|
+
*/
|
|
176
|
+
async verifyJWTVC(jwt, publicKey, options) {
|
|
177
|
+
const parts = jwt.split('.');
|
|
178
|
+
if (parts.length !== 3) {
|
|
179
|
+
return {
|
|
180
|
+
valid: false,
|
|
181
|
+
format: options.format,
|
|
182
|
+
errors: ['Invalid JWT format']
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const [headerB64, payloadB64, signatureB64] = parts;
|
|
186
|
+
// Verify signature
|
|
187
|
+
const message = `${headerB64}.${payloadB64}`;
|
|
188
|
+
const signature = Buffer.from(signatureB64, 'base64url');
|
|
189
|
+
const valid = await this.crypto.verify(new TextEncoder().encode(message), signature, publicKey);
|
|
190
|
+
if (!valid) {
|
|
191
|
+
return {
|
|
192
|
+
valid: false,
|
|
193
|
+
format: options.format,
|
|
194
|
+
errors: ['Invalid signature']
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
// Decode and check expiry
|
|
198
|
+
const payload = JSON.parse(Buffer.from(payloadB64, 'base64url').toString());
|
|
199
|
+
const now = Math.floor(Date.now() / 1000);
|
|
200
|
+
if (payload.exp && payload.exp < now) {
|
|
201
|
+
return {
|
|
202
|
+
valid: false,
|
|
203
|
+
format: options.format,
|
|
204
|
+
errors: ['JWT expired']
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
valid: true,
|
|
209
|
+
format: options.format,
|
|
210
|
+
metadata: payload
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Canonicalize JSON (JCS - RFC 8785)
|
|
215
|
+
*/
|
|
216
|
+
canonicalize(obj) {
|
|
217
|
+
if (obj === null)
|
|
218
|
+
return 'null';
|
|
219
|
+
if (typeof obj === 'boolean')
|
|
220
|
+
return obj.toString();
|
|
221
|
+
if (typeof obj === 'number')
|
|
222
|
+
return JSON.stringify(obj);
|
|
223
|
+
if (typeof obj === 'string')
|
|
224
|
+
return JSON.stringify(obj);
|
|
225
|
+
if (Array.isArray(obj)) {
|
|
226
|
+
return '[' + obj.map(item => this.canonicalize(item)).join(',') + ']';
|
|
227
|
+
}
|
|
228
|
+
if (typeof obj === 'object') {
|
|
229
|
+
const keys = Object.keys(obj).sort();
|
|
230
|
+
const pairs = keys.map(key => {
|
|
231
|
+
return JSON.stringify(key) + ':' + this.canonicalize(obj[key]);
|
|
232
|
+
});
|
|
233
|
+
return '{' + pairs.join(',') + '}';
|
|
234
|
+
}
|
|
235
|
+
throw new Error('Unsupported type for canonicalization');
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get supported formats
|
|
239
|
+
*/
|
|
240
|
+
getSupportedFormats() {
|
|
241
|
+
return [
|
|
242
|
+
{ type: 'DetachedJWS', algorithm: 'Ed25519' },
|
|
243
|
+
{ type: 'DataIntegrity', algorithm: 'Ed25519Signature2020' },
|
|
244
|
+
{ type: 'JWT-VC', algorithm: 'EdDSA' }
|
|
245
|
+
];
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
exports.DefaultProofEngine = DefaultProofEngine;
|
|
249
|
+
//# sourceMappingURL=proof-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-engine.js","sourceRoot":"","sources":["../../src/proof/proof-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Provider Classes
|
|
3
|
+
*
|
|
4
|
+
* Abstract classes that define the provider interfaces for
|
|
5
|
+
* platform-specific implementations.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Cryptographic operations provider
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class CryptoProvider {
|
|
11
|
+
abstract sign(data: Uint8Array, privateKey: string): Promise<Uint8Array>;
|
|
12
|
+
abstract verify(data: Uint8Array, signature: Uint8Array, publicKey: string): Promise<boolean>;
|
|
13
|
+
abstract generateKeyPair(): Promise<{
|
|
14
|
+
privateKey: string;
|
|
15
|
+
publicKey: string;
|
|
16
|
+
}>;
|
|
17
|
+
abstract hash(data: Uint8Array): Promise<Uint8Array>;
|
|
18
|
+
abstract randomBytes(length: number): Promise<Uint8Array>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Clock/timing operations provider
|
|
22
|
+
*/
|
|
23
|
+
export declare abstract class ClockProvider {
|
|
24
|
+
abstract now(): number;
|
|
25
|
+
abstract isWithinSkew(timestamp: number, skewSeconds: number): boolean;
|
|
26
|
+
abstract hasExpired(expiresAt: number): boolean;
|
|
27
|
+
abstract calculateExpiry(ttlSeconds: number): number;
|
|
28
|
+
abstract format(timestamp: number): string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Network fetch operations provider
|
|
32
|
+
*/
|
|
33
|
+
export declare abstract class FetchProvider {
|
|
34
|
+
abstract resolveDID(did: string): Promise<any>;
|
|
35
|
+
abstract fetchStatusList(url: string): Promise<any>;
|
|
36
|
+
abstract fetchDelegationChain(id: string): Promise<any[]>;
|
|
37
|
+
abstract fetch(url: string, options?: any): Promise<Response>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Storage operations provider
|
|
41
|
+
*/
|
|
42
|
+
export declare abstract class StorageProvider {
|
|
43
|
+
abstract get(key: string): Promise<string | null>;
|
|
44
|
+
abstract set(key: string, value: string): Promise<void>;
|
|
45
|
+
abstract delete(key: string): Promise<void>;
|
|
46
|
+
abstract exists(key: string): Promise<boolean>;
|
|
47
|
+
abstract list(prefix?: string): Promise<string[]>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Nonce cache provider for replay attack prevention
|
|
51
|
+
*/
|
|
52
|
+
export declare abstract class NonceCacheProvider {
|
|
53
|
+
abstract has(nonce: string): Promise<boolean>;
|
|
54
|
+
abstract add(nonce: string, expiresAt: number): Promise<void>;
|
|
55
|
+
abstract cleanup(): Promise<void>;
|
|
56
|
+
abstract destroy(): Promise<void>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Identity provider for managing agent identities
|
|
60
|
+
*/
|
|
61
|
+
export interface AgentIdentity {
|
|
62
|
+
did: string;
|
|
63
|
+
keyId: string;
|
|
64
|
+
privateKey: string;
|
|
65
|
+
publicKey: string;
|
|
66
|
+
createdAt: string;
|
|
67
|
+
type: 'development' | 'production';
|
|
68
|
+
metadata?: Record<string, any>;
|
|
69
|
+
}
|
|
70
|
+
export declare abstract class IdentityProvider {
|
|
71
|
+
abstract getIdentity(): Promise<AgentIdentity>;
|
|
72
|
+
abstract saveIdentity(identity: AgentIdentity): Promise<void>;
|
|
73
|
+
abstract rotateKeys(): Promise<AgentIdentity>;
|
|
74
|
+
abstract deleteIdentity(): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base Provider Classes
|
|
4
|
+
*
|
|
5
|
+
* Abstract classes that define the provider interfaces for
|
|
6
|
+
* platform-specific implementations.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.IdentityProvider = exports.NonceCacheProvider = exports.StorageProvider = exports.FetchProvider = exports.ClockProvider = exports.CryptoProvider = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Cryptographic operations provider
|
|
12
|
+
*/
|
|
13
|
+
class CryptoProvider {
|
|
14
|
+
}
|
|
15
|
+
exports.CryptoProvider = CryptoProvider;
|
|
16
|
+
/**
|
|
17
|
+
* Clock/timing operations provider
|
|
18
|
+
*/
|
|
19
|
+
class ClockProvider {
|
|
20
|
+
}
|
|
21
|
+
exports.ClockProvider = ClockProvider;
|
|
22
|
+
/**
|
|
23
|
+
* Network fetch operations provider
|
|
24
|
+
*/
|
|
25
|
+
class FetchProvider {
|
|
26
|
+
}
|
|
27
|
+
exports.FetchProvider = FetchProvider;
|
|
28
|
+
/**
|
|
29
|
+
* Storage operations provider
|
|
30
|
+
*/
|
|
31
|
+
class StorageProvider {
|
|
32
|
+
}
|
|
33
|
+
exports.StorageProvider = StorageProvider;
|
|
34
|
+
/**
|
|
35
|
+
* Nonce cache provider for replay attack prevention
|
|
36
|
+
*/
|
|
37
|
+
class NonceCacheProvider {
|
|
38
|
+
}
|
|
39
|
+
exports.NonceCacheProvider = NonceCacheProvider;
|
|
40
|
+
class IdentityProvider {
|
|
41
|
+
}
|
|
42
|
+
exports.IdentityProvider = IdentityProvider;
|
|
43
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACH,MAAsB,cAAc;CAMnC;AAND,wCAMC;AAED;;GAEG;AACH,MAAsB,aAAa;CAMlC;AAND,sCAMC;AAED;;GAEG;AACH,MAAsB,aAAa;CAKlC;AALD,sCAKC;AAED;;GAEG;AACH,MAAsB,eAAe;CAMpC;AAND,0CAMC;AAED;;GAEG;AACH,MAAsB,kBAAkB;CAKvC;AALD,gDAKC;AAeD,MAAsB,gBAAgB;CAKrC;AALD,4CAKC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory-based provider implementations
|
|
3
|
+
*
|
|
4
|
+
* Simple in-memory implementations for development and testing.
|
|
5
|
+
*/
|
|
6
|
+
import { StorageProvider, NonceCacheProvider, IdentityProvider, AgentIdentity } from './base';
|
|
7
|
+
/**
|
|
8
|
+
* In-memory storage provider
|
|
9
|
+
*/
|
|
10
|
+
export declare class MemoryStorageProvider extends StorageProvider {
|
|
11
|
+
private store;
|
|
12
|
+
get(key: string): Promise<string | null>;
|
|
13
|
+
set(key: string, value: string): Promise<void>;
|
|
14
|
+
delete(key: string): Promise<void>;
|
|
15
|
+
exists(key: string): Promise<boolean>;
|
|
16
|
+
list(prefix?: string): Promise<string[]>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* In-memory nonce cache provider
|
|
20
|
+
*/
|
|
21
|
+
export declare class MemoryNonceCacheProvider extends NonceCacheProvider {
|
|
22
|
+
private nonces;
|
|
23
|
+
has(nonce: string): Promise<boolean>;
|
|
24
|
+
add(nonce: string, expiresAt: number): Promise<void>;
|
|
25
|
+
cleanup(): Promise<void>;
|
|
26
|
+
destroy(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* In-memory identity provider
|
|
30
|
+
*/
|
|
31
|
+
export declare class MemoryIdentityProvider extends IdentityProvider {
|
|
32
|
+
private identity?;
|
|
33
|
+
private cryptoProvider;
|
|
34
|
+
constructor(cryptoProvider?: any);
|
|
35
|
+
getIdentity(): Promise<AgentIdentity>;
|
|
36
|
+
saveIdentity(identity: AgentIdentity): Promise<void>;
|
|
37
|
+
rotateKeys(): Promise<AgentIdentity>;
|
|
38
|
+
deleteIdentity(): Promise<void>;
|
|
39
|
+
private generateIdentity;
|
|
40
|
+
private generateDIDFromPublicKey;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,QAAQ,CAAC;AAEhB;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,KAAK,CAAkC;IAEzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAO/C;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,OAAO,CAAC,MAAM,CAAkC;IAE1C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,gBAAgB;IAC1D,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAM;gBAEhB,cAAc,CAAC,EAAE,GAAG;IAK1B,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAOrC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAKpC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAIvB,gBAAgB;IAkB9B,OAAO,CAAC,wBAAwB;CAOjC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Memory-based provider implementations
|
|
4
|
+
*
|
|
5
|
+
* Simple in-memory implementations for development and testing.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.MemoryIdentityProvider = exports.MemoryNonceCacheProvider = exports.MemoryStorageProvider = void 0;
|
|
9
|
+
const base_1 = require("./base");
|
|
10
|
+
/**
|
|
11
|
+
* In-memory storage provider
|
|
12
|
+
*/
|
|
13
|
+
class MemoryStorageProvider extends base_1.StorageProvider {
|
|
14
|
+
store = new Map();
|
|
15
|
+
async get(key) {
|
|
16
|
+
return this.store.get(key) || null;
|
|
17
|
+
}
|
|
18
|
+
async set(key, value) {
|
|
19
|
+
this.store.set(key, value);
|
|
20
|
+
}
|
|
21
|
+
async delete(key) {
|
|
22
|
+
this.store.delete(key);
|
|
23
|
+
}
|
|
24
|
+
async exists(key) {
|
|
25
|
+
return this.store.has(key);
|
|
26
|
+
}
|
|
27
|
+
async list(prefix) {
|
|
28
|
+
const keys = Array.from(this.store.keys());
|
|
29
|
+
if (prefix) {
|
|
30
|
+
return keys.filter(k => k.startsWith(prefix));
|
|
31
|
+
}
|
|
32
|
+
return keys;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.MemoryStorageProvider = MemoryStorageProvider;
|
|
36
|
+
/**
|
|
37
|
+
* In-memory nonce cache provider
|
|
38
|
+
*/
|
|
39
|
+
class MemoryNonceCacheProvider extends base_1.NonceCacheProvider {
|
|
40
|
+
nonces = new Map();
|
|
41
|
+
async has(nonce) {
|
|
42
|
+
const expiry = this.nonces.get(nonce);
|
|
43
|
+
if (!expiry)
|
|
44
|
+
return false;
|
|
45
|
+
if (Date.now() > expiry) {
|
|
46
|
+
this.nonces.delete(nonce);
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
async add(nonce, expiresAt) {
|
|
52
|
+
this.nonces.set(nonce, expiresAt);
|
|
53
|
+
}
|
|
54
|
+
async cleanup() {
|
|
55
|
+
const now = Date.now();
|
|
56
|
+
for (const [nonce, expiry] of this.nonces) {
|
|
57
|
+
if (now > expiry) {
|
|
58
|
+
this.nonces.delete(nonce);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async destroy() {
|
|
63
|
+
this.nonces.clear();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.MemoryNonceCacheProvider = MemoryNonceCacheProvider;
|
|
67
|
+
/**
|
|
68
|
+
* In-memory identity provider
|
|
69
|
+
*/
|
|
70
|
+
class MemoryIdentityProvider extends base_1.IdentityProvider {
|
|
71
|
+
identity;
|
|
72
|
+
cryptoProvider;
|
|
73
|
+
constructor(cryptoProvider) {
|
|
74
|
+
super();
|
|
75
|
+
this.cryptoProvider = cryptoProvider;
|
|
76
|
+
}
|
|
77
|
+
async getIdentity() {
|
|
78
|
+
if (!this.identity) {
|
|
79
|
+
this.identity = await this.generateIdentity();
|
|
80
|
+
}
|
|
81
|
+
return this.identity;
|
|
82
|
+
}
|
|
83
|
+
async saveIdentity(identity) {
|
|
84
|
+
this.identity = identity;
|
|
85
|
+
}
|
|
86
|
+
async rotateKeys() {
|
|
87
|
+
this.identity = await this.generateIdentity();
|
|
88
|
+
return this.identity;
|
|
89
|
+
}
|
|
90
|
+
async deleteIdentity() {
|
|
91
|
+
this.identity = undefined;
|
|
92
|
+
}
|
|
93
|
+
async generateIdentity() {
|
|
94
|
+
if (!this.cryptoProvider) {
|
|
95
|
+
throw new Error('Crypto provider required for identity generation');
|
|
96
|
+
}
|
|
97
|
+
const keyPair = await this.cryptoProvider.generateKeyPair();
|
|
98
|
+
const did = this.generateDIDFromPublicKey(keyPair.publicKey);
|
|
99
|
+
return {
|
|
100
|
+
did,
|
|
101
|
+
keyId: `${did}#key-1`,
|
|
102
|
+
privateKey: keyPair.privateKey,
|
|
103
|
+
publicKey: keyPair.publicKey,
|
|
104
|
+
createdAt: new Date().toISOString(),
|
|
105
|
+
type: 'development'
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
generateDIDFromPublicKey(publicKey) {
|
|
109
|
+
// Simplified DID generation
|
|
110
|
+
const keyHash = Buffer.from(publicKey, 'base64')
|
|
111
|
+
.toString('base64url')
|
|
112
|
+
.substring(0, 32);
|
|
113
|
+
return `did:key:z${keyHash}`;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.MemoryIdentityProvider = MemoryIdentityProvider;
|
|
117
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"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"}
|