@kya-os/mcp-i-core 1.1.13-canary.2 → 1.2.1-canary.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/dist/__tests__/utils/mock-providers.d.ts +5 -3
- package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
- package/dist/__tests__/utils/mock-providers.js +23 -12
- package/dist/__tests__/utils/mock-providers.js.map +1 -1
- package/dist/index.d.ts +33 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/base.d.ts +18 -3
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +5 -1
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/memory.d.ts +2 -2
- package/dist/providers/memory.d.ts.map +1 -1
- package/dist/providers/memory.js +9 -5
- package/dist/providers/memory.js.map +1 -1
- package/dist/runtime/base.d.ts +40 -1
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +148 -20
- package/dist/runtime/base.js.map +1 -1
- package/dist/services/access-control.service.d.ts +121 -0
- package/dist/services/access-control.service.d.ts.map +1 -0
- package/dist/services/access-control.service.js +458 -0
- package/dist/services/access-control.service.js.map +1 -0
- package/dist/services/crypto.service.d.ts +69 -0
- package/dist/services/crypto.service.d.ts.map +1 -0
- package/dist/services/crypto.service.js +225 -0
- package/dist/services/crypto.service.js.map +1 -0
- package/dist/services/errors.d.ts +49 -0
- package/dist/services/errors.d.ts.map +1 -0
- package/dist/services/errors.js +66 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/index.d.ts +5 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/proof-verifier.d.ts +98 -0
- package/dist/services/proof-verifier.d.ts.map +1 -0
- package/dist/services/proof-verifier.js +319 -0
- package/dist/services/proof-verifier.js.map +1 -0
- package/dist/services/storage.service.d.ts +116 -0
- package/dist/services/storage.service.d.ts.map +1 -0
- package/dist/services/storage.service.js +405 -0
- package/dist/services/storage.service.js.map +1 -0
- package/dist/utils/base64.d.ts +31 -0
- package/dist/utils/base64.d.ts.map +1 -0
- package/dist/utils/base64.js +138 -0
- package/dist/utils/base64.js.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/storage-keys.d.ts +120 -0
- package/dist/utils/storage-keys.d.ts.map +1 -0
- package/dist/utils/storage-keys.js +217 -0
- package/dist/utils/storage-keys.js.map +1 -0
- package/package.json +5 -4
- package/dist/compliance/schema-verifier-v2.d.ts +0 -110
- package/dist/compliance/schema-verifier-v2.d.ts.map +0 -1
- package/dist/compliance/schema-verifier-v2.js +0 -510
- package/dist/compliance/schema-verifier-v2.js.map +0 -1
- package/dist/did/resolver.d.ts +0 -92
- package/dist/did/resolver.d.ts.map +0 -1
- package/dist/did/resolver.js +0 -203
- package/dist/did/resolver.js.map +0 -1
- package/dist/proof/proof-engine.d.ts +0 -89
- package/dist/proof/proof-engine.d.ts.map +0 -1
- package/dist/proof/proof-engine.js +0 -249
- package/dist/proof/proof-engine.js.map +0 -1
- package/dist/runtime/base-v2.d.ts +0 -117
- package/dist/runtime/base-v2.d.ts.map +0 -1
- package/dist/runtime/base-v2.js +0 -328
- package/dist/runtime/base-v2.js.map +0 -1
- package/dist/types/providers.d.ts +0 -142
- package/dist/types/providers.d.ts.map +0 -1
- package/dist/types/providers.js +0 -43
- package/dist/types/providers.js.map +0 -1
- package/dist/verification/interfaces.d.ts +0 -125
- package/dist/verification/interfaces.d.ts.map +0 -1
- package/dist/verification/interfaces.js +0 -101
- package/dist/verification/interfaces.js.map +0 -1
package/dist/did/resolver.js
DELETED
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* DID Resolver plugin system
|
|
4
|
-
* Supports did:key and did:web out of the box, extensible for other methods
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.EdgeDIDResolver = exports.UniversalDIDResolver = exports.DIDWebResolver = exports.DIDKeyResolver = void 0;
|
|
8
|
-
/**
|
|
9
|
-
* did:key resolver (built-in)
|
|
10
|
-
*/
|
|
11
|
-
class DIDKeyResolver {
|
|
12
|
-
canResolve(did) {
|
|
13
|
-
return did.startsWith('did:key:');
|
|
14
|
-
}
|
|
15
|
-
async resolve(did) {
|
|
16
|
-
// Extract the multibase key
|
|
17
|
-
const multibaseKey = did.substring('did:key:'.length);
|
|
18
|
-
// Decode multibase (z-base58)
|
|
19
|
-
const keyBytes = this.decodeMultibase(multibaseKey);
|
|
20
|
-
// Extract codec and key material
|
|
21
|
-
const codec = keyBytes[0] << 8 | keyBytes[1];
|
|
22
|
-
const publicKey = keyBytes.slice(2);
|
|
23
|
-
// Ed25519 codec is 0xed01
|
|
24
|
-
if (codec !== 0xed01) {
|
|
25
|
-
throw new Error(`Unsupported key type: ${codec.toString(16)}`);
|
|
26
|
-
}
|
|
27
|
-
// Create DID document
|
|
28
|
-
return {
|
|
29
|
-
'@context': [
|
|
30
|
-
'https://www.w3.org/ns/did/v1',
|
|
31
|
-
'https://w3id.org/security/suites/ed25519-2020/v1'
|
|
32
|
-
],
|
|
33
|
-
id: did,
|
|
34
|
-
verificationMethod: [{
|
|
35
|
-
id: `${did}#${multibaseKey}`,
|
|
36
|
-
type: 'Ed25519VerificationKey2020',
|
|
37
|
-
controller: did,
|
|
38
|
-
publicKeyMultibase: multibaseKey
|
|
39
|
-
}],
|
|
40
|
-
authentication: [`${did}#${multibaseKey}`],
|
|
41
|
-
assertionMethod: [`${did}#${multibaseKey}`],
|
|
42
|
-
capabilityInvocation: [`${did}#${multibaseKey}`],
|
|
43
|
-
capabilityDelegation: [`${did}#${multibaseKey}`]
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
decodeMultibase(multibase) {
|
|
47
|
-
// Remove 'z' prefix (z-base58)
|
|
48
|
-
if (!multibase.startsWith('z')) {
|
|
49
|
-
throw new Error('Invalid multibase encoding');
|
|
50
|
-
}
|
|
51
|
-
// Base58 decode (simplified - in production use a proper library)
|
|
52
|
-
const base58 = multibase.substring(1);
|
|
53
|
-
// This is a simplified implementation
|
|
54
|
-
// In production, use a proper base58 decoding library
|
|
55
|
-
return Buffer.from(base58, 'base64'); // Placeholder
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.DIDKeyResolver = DIDKeyResolver;
|
|
59
|
-
/**
|
|
60
|
-
* did:web resolver (built-in)
|
|
61
|
-
*/
|
|
62
|
-
class DIDWebResolver {
|
|
63
|
-
fetchProvider;
|
|
64
|
-
constructor(fetchProvider) {
|
|
65
|
-
this.fetchProvider = fetchProvider;
|
|
66
|
-
}
|
|
67
|
-
canResolve(did) {
|
|
68
|
-
return did.startsWith('did:web:');
|
|
69
|
-
}
|
|
70
|
-
async resolve(did) {
|
|
71
|
-
// Extract domain and path from DID
|
|
72
|
-
const parts = did.substring('did:web:'.length).split(':');
|
|
73
|
-
const domain = parts[0];
|
|
74
|
-
const path = parts.slice(1).join('/');
|
|
75
|
-
// Construct URL
|
|
76
|
-
const url = path
|
|
77
|
-
? `https://${domain}/${path}/did.json`
|
|
78
|
-
: `https://${domain}/.well-known/did.json`;
|
|
79
|
-
// Fetch DID document
|
|
80
|
-
const response = await this.fetchProvider.fetch(url);
|
|
81
|
-
if (!response.ok) {
|
|
82
|
-
throw new Error(`Failed to resolve ${did}: ${response.statusText}`);
|
|
83
|
-
}
|
|
84
|
-
const document = await response.json();
|
|
85
|
-
// Validate document
|
|
86
|
-
if (!document['@context'] || document.id !== did) {
|
|
87
|
-
throw new Error('Invalid DID document');
|
|
88
|
-
}
|
|
89
|
-
return document;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
exports.DIDWebResolver = DIDWebResolver;
|
|
93
|
-
/**
|
|
94
|
-
* Universal DID resolver with plugin support
|
|
95
|
-
*/
|
|
96
|
-
class UniversalDIDResolver {
|
|
97
|
-
resolvers = [];
|
|
98
|
-
constructor(fetchProvider) {
|
|
99
|
-
// Register built-in resolvers
|
|
100
|
-
this.registerResolver(new DIDKeyResolver());
|
|
101
|
-
if (fetchProvider) {
|
|
102
|
-
this.registerResolver(new DIDWebResolver(fetchProvider));
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Register a DID resolver
|
|
107
|
-
*/
|
|
108
|
-
registerResolver(resolver) {
|
|
109
|
-
this.resolvers.push(resolver);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Resolve a DID using the appropriate resolver
|
|
113
|
-
*/
|
|
114
|
-
async resolve(did) {
|
|
115
|
-
// Find appropriate resolver
|
|
116
|
-
const resolver = this.resolvers.find(r => r.canResolve(did));
|
|
117
|
-
if (!resolver) {
|
|
118
|
-
throw new Error(`No resolver available for DID method: ${did.split(':')[1]}`);
|
|
119
|
-
}
|
|
120
|
-
return resolver.resolve(did);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Extract public key from DID document
|
|
124
|
-
*/
|
|
125
|
-
async getPublicKey(did, keyId) {
|
|
126
|
-
const document = await this.resolve(did);
|
|
127
|
-
// Find verification method
|
|
128
|
-
let method;
|
|
129
|
-
if (keyId) {
|
|
130
|
-
method = document.verificationMethod?.find(m => m.id === keyId);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
// Use first verification method
|
|
134
|
-
method = document.verificationMethod?.[0];
|
|
135
|
-
}
|
|
136
|
-
if (!method) {
|
|
137
|
-
throw new Error(`No verification method found for ${did}`);
|
|
138
|
-
}
|
|
139
|
-
// Extract public key
|
|
140
|
-
if (method.publicKeyMultibase) {
|
|
141
|
-
// Decode multibase key
|
|
142
|
-
return this.decodePublicKey(method.publicKeyMultibase);
|
|
143
|
-
}
|
|
144
|
-
else if (method.publicKeyBase58) {
|
|
145
|
-
// Decode base58 key
|
|
146
|
-
return Buffer.from(method.publicKeyBase58, 'base64').toString('base64');
|
|
147
|
-
}
|
|
148
|
-
else if (method.publicKeyJwk) {
|
|
149
|
-
// Extract from JWK
|
|
150
|
-
return Buffer.from(method.publicKeyJwk.x, 'base64url').toString('base64');
|
|
151
|
-
}
|
|
152
|
-
throw new Error('No supported public key format found');
|
|
153
|
-
}
|
|
154
|
-
decodePublicKey(multibase) {
|
|
155
|
-
// Simplified - extract Ed25519 public key from multibase
|
|
156
|
-
// In production, use proper multibase/multicodec decoding
|
|
157
|
-
if (multibase.startsWith('z')) {
|
|
158
|
-
// z-base58 encoded
|
|
159
|
-
// This is a placeholder - use proper decoding
|
|
160
|
-
return Buffer.from(multibase.substring(1), 'base64').toString('base64');
|
|
161
|
-
}
|
|
162
|
-
throw new Error('Unsupported multibase encoding');
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
exports.UniversalDIDResolver = UniversalDIDResolver;
|
|
166
|
-
/**
|
|
167
|
-
* Lean DID resolver for edge environments
|
|
168
|
-
*/
|
|
169
|
-
class EdgeDIDResolver extends UniversalDIDResolver {
|
|
170
|
-
cache;
|
|
171
|
-
constructor(cache = new Map()) {
|
|
172
|
-
super(); // Only register did:key (no network needed)
|
|
173
|
-
this.cache = cache;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Resolve with caching
|
|
177
|
-
*/
|
|
178
|
-
async resolve(did) {
|
|
179
|
-
// Check cache first
|
|
180
|
-
if (this.cache.has(did)) {
|
|
181
|
-
return this.cache.get(did);
|
|
182
|
-
}
|
|
183
|
-
// Resolve and cache
|
|
184
|
-
const document = await super.resolve(did);
|
|
185
|
-
this.cache.set(did, document);
|
|
186
|
-
// Limit cache size
|
|
187
|
-
if (this.cache.size > 100) {
|
|
188
|
-
const firstKey = this.cache.keys().next().value;
|
|
189
|
-
this.cache.delete(firstKey);
|
|
190
|
-
}
|
|
191
|
-
return document;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Pre-populate cache for known DIDs
|
|
195
|
-
*/
|
|
196
|
-
preloadCache(documents) {
|
|
197
|
-
for (const doc of documents) {
|
|
198
|
-
this.cache.set(doc.id, doc);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
exports.EdgeDIDResolver = EdgeDIDResolver;
|
|
203
|
-
//# sourceMappingURL=resolver.js.map
|
package/dist/did/resolver.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/did/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,249 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proof-engine.js","sourceRoot":"","sources":["../../src/proof/proof-engine.ts"],"names":[],"mappings":"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"}
|