@longarc/mdash 3.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 +278 -0
- package/dist/checkpoint/engine.d.ts +208 -0
- package/dist/checkpoint/engine.d.ts.map +1 -0
- package/dist/checkpoint/engine.js +369 -0
- package/dist/checkpoint/engine.js.map +1 -0
- package/dist/context/engine.d.ts +197 -0
- package/dist/context/engine.d.ts.map +1 -0
- package/dist/context/engine.js +392 -0
- package/dist/context/engine.js.map +1 -0
- package/dist/core/commitment.d.ts +154 -0
- package/dist/core/commitment.d.ts.map +1 -0
- package/dist/core/commitment.js +305 -0
- package/dist/core/commitment.js.map +1 -0
- package/dist/core/crypto.d.ts +100 -0
- package/dist/core/crypto.d.ts.map +1 -0
- package/dist/core/crypto.js +243 -0
- package/dist/core/crypto.js.map +1 -0
- package/dist/index.d.ts +121 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +234 -0
- package/dist/index.js.map +1 -0
- package/dist/mcca/engine.d.ts +260 -0
- package/dist/mcca/engine.d.ts.map +1 -0
- package/dist/mcca/engine.js +518 -0
- package/dist/mcca/engine.js.map +1 -0
- package/dist/physics/engine.d.ts +165 -0
- package/dist/physics/engine.d.ts.map +1 -0
- package/dist/physics/engine.js +371 -0
- package/dist/physics/engine.js.map +1 -0
- package/dist/tee/engine.d.ts +285 -0
- package/dist/tee/engine.d.ts.map +1 -0
- package/dist/tee/engine.js +505 -0
- package/dist/tee/engine.js.map +1 -0
- package/dist/warrant/engine.d.ts +195 -0
- package/dist/warrant/engine.d.ts.map +1 -0
- package/dist/warrant/engine.js +409 -0
- package/dist/warrant/engine.js.map +1 -0
- package/dist/zk/engine.d.ts +243 -0
- package/dist/zk/engine.d.ts.map +1 -0
- package/dist/zk/engine.js +489 -0
- package/dist/zk/engine.js.map +1 -0
- package/package.json +25 -0
- package/src/__tests__/phase1.test.ts +1120 -0
- package/src/__tests__/phase2-4.test.ts +898 -0
- package/src/checkpoint/engine.ts +532 -0
- package/src/context/engine.ts +598 -0
- package/src/core/commitment.ts +438 -0
- package/src/core/crypto.ts +304 -0
- package/src/index.ts +320 -0
- package/src/mcca/engine.ts +778 -0
- package/src/physics/engine.ts +563 -0
- package/src/tee/engine.ts +810 -0
- package/src/warrant/engine.ts +625 -0
- package/src/zk/engine.ts +730 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mdash v3.0 - L2 TEE Attestation Layer
|
|
3
|
+
*
|
|
4
|
+
* Hardware-rooted attestation for real-time compliance.
|
|
5
|
+
* Handles 99% of attestation needs with <10ms latency.
|
|
6
|
+
*
|
|
7
|
+
* Supported TEE Platforms:
|
|
8
|
+
* - AWS Nitro Enclaves (primary)
|
|
9
|
+
* - Intel SGX (secondary)
|
|
10
|
+
* - Simulated mode (development/testing)
|
|
11
|
+
*
|
|
12
|
+
* Architecture:
|
|
13
|
+
* - L1 provides instant commitment (<1ms)
|
|
14
|
+
* - L2 adds hardware attestation (<10ms)
|
|
15
|
+
* - L3 provides ZK proofs for disputes (async)
|
|
16
|
+
*
|
|
17
|
+
* @version 3.0.0
|
|
18
|
+
*/
|
|
19
|
+
import { Hash, Seal, Timestamp } from '../core/crypto.js';
|
|
20
|
+
import { CommitmentEngine, Commitment } from '../core/commitment.js';
|
|
21
|
+
export type TEEPlatform = 'nitro' | 'sgx' | 'simulated';
|
|
22
|
+
export type AttestationStatus = 'pending' | 'attesting' | 'verified' | 'failed' | 'expired';
|
|
23
|
+
/**
|
|
24
|
+
* Platform Capability Matrix
|
|
25
|
+
*
|
|
26
|
+
* | Feature | Nitro | SGX | Simulated |
|
|
27
|
+
* |-------------------|-------|------|-----------|
|
|
28
|
+
* | Memory encryption | ✓ | ✓ | ✗ |
|
|
29
|
+
* | Remote attestation| ✓ | ✓ | Simulated |
|
|
30
|
+
* | Key sealing | ✓ | ✓ | HMAC |
|
|
31
|
+
* | PCR support | ✓ | ✗ | Simulated |
|
|
32
|
+
* | Quote generation | ✗ | ✓ | Simulated |
|
|
33
|
+
*/
|
|
34
|
+
export interface PlatformCapabilities {
|
|
35
|
+
memoryEncryption: boolean;
|
|
36
|
+
remoteAttestation: boolean;
|
|
37
|
+
keySealing: boolean;
|
|
38
|
+
pcrSupport: boolean;
|
|
39
|
+
quoteGeneration: boolean;
|
|
40
|
+
maxEnclaveSize: number;
|
|
41
|
+
}
|
|
42
|
+
export declare const PLATFORM_CAPABILITIES: Record<TEEPlatform, PlatformCapabilities>;
|
|
43
|
+
/**
|
|
44
|
+
* AWS Nitro Attestation Document (NSM format)
|
|
45
|
+
* Based on AWS Nitro Enclaves attestation spec
|
|
46
|
+
*/
|
|
47
|
+
export interface NitroAttestationDocument {
|
|
48
|
+
/** Module ID (enclave image hash) */
|
|
49
|
+
module_id: string;
|
|
50
|
+
/** UNIX timestamp of document creation */
|
|
51
|
+
timestamp: number;
|
|
52
|
+
/** Digest algorithm (SHA384) */
|
|
53
|
+
digest: 'SHA384';
|
|
54
|
+
/** PCR values (0-15) */
|
|
55
|
+
pcrs: Record<number, string>;
|
|
56
|
+
/** Certificate chain */
|
|
57
|
+
certificate: string;
|
|
58
|
+
/** CA bundle hash */
|
|
59
|
+
cabundle: string[];
|
|
60
|
+
/** Public key (optional, for encrypted response) */
|
|
61
|
+
public_key?: string;
|
|
62
|
+
/** User data (up to 512 bytes) */
|
|
63
|
+
user_data?: string;
|
|
64
|
+
/** Nonce (up to 512 bytes) */
|
|
65
|
+
nonce?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Intel SGX Quote
|
|
69
|
+
*/
|
|
70
|
+
export interface SGXQuote {
|
|
71
|
+
/** ECDSA-256 signature over report body */
|
|
72
|
+
signature: string;
|
|
73
|
+
/** ISV enclave report */
|
|
74
|
+
report_body: {
|
|
75
|
+
/** MRENCLAVE - enclave measurement */
|
|
76
|
+
mr_enclave: string;
|
|
77
|
+
/** MRSIGNER - signer measurement */
|
|
78
|
+
mr_signer: string;
|
|
79
|
+
/** ISV product ID */
|
|
80
|
+
isv_prod_id: number;
|
|
81
|
+
/** ISV security version */
|
|
82
|
+
isv_svn: number;
|
|
83
|
+
/** Report data (64 bytes user data) */
|
|
84
|
+
report_data: string;
|
|
85
|
+
/** Attributes (debug, mode64bit, etc) */
|
|
86
|
+
attributes: string;
|
|
87
|
+
};
|
|
88
|
+
/** QE (Quoting Enclave) certification data */
|
|
89
|
+
qe_certification: {
|
|
90
|
+
type: number;
|
|
91
|
+
data: string;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Unified Attestation Document
|
|
96
|
+
* Works across all platforms
|
|
97
|
+
*/
|
|
98
|
+
export interface AttestationDocument {
|
|
99
|
+
/** Document ID */
|
|
100
|
+
id: string;
|
|
101
|
+
/** Platform that generated this document */
|
|
102
|
+
platform: TEEPlatform;
|
|
103
|
+
/** Timestamp of attestation */
|
|
104
|
+
timestamp: Timestamp;
|
|
105
|
+
/** Enclave measurement hash */
|
|
106
|
+
measurement: Hash;
|
|
107
|
+
/** Data being attested */
|
|
108
|
+
attested_data: Hash;
|
|
109
|
+
/** Platform-specific attestation */
|
|
110
|
+
platform_attestation: NitroAttestationDocument | SGXQuote | SimulatedAttestation;
|
|
111
|
+
/** L1 commitment reference */
|
|
112
|
+
commitment_id: string;
|
|
113
|
+
/** Attestation status */
|
|
114
|
+
status: AttestationStatus;
|
|
115
|
+
/** Expiry time */
|
|
116
|
+
expires_at: Timestamp;
|
|
117
|
+
/** HMAC seal over document */
|
|
118
|
+
seal: Seal;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Simulated attestation (dev/test)
|
|
122
|
+
*/
|
|
123
|
+
export interface SimulatedAttestation {
|
|
124
|
+
type: 'simulated';
|
|
125
|
+
measurement_hash: string;
|
|
126
|
+
nonce: string;
|
|
127
|
+
simulated_pcrs: Record<number, string>;
|
|
128
|
+
signature: string;
|
|
129
|
+
}
|
|
130
|
+
export interface TEEConfig {
|
|
131
|
+
/** Platform to use */
|
|
132
|
+
platform: TEEPlatform;
|
|
133
|
+
/** Attestation document TTL (ms) */
|
|
134
|
+
attestationTTL: number;
|
|
135
|
+
/** Enable caching */
|
|
136
|
+
enableCache: boolean;
|
|
137
|
+
/** Cache TTL (ms) */
|
|
138
|
+
cacheTTL: number;
|
|
139
|
+
/** Max attestations per second */
|
|
140
|
+
rateLimit: number;
|
|
141
|
+
/** AWS Nitro specific */
|
|
142
|
+
nitro?: {
|
|
143
|
+
/** PCRs to include */
|
|
144
|
+
pcrs: number[];
|
|
145
|
+
/** NSM device path */
|
|
146
|
+
nsmDevice: string;
|
|
147
|
+
};
|
|
148
|
+
/** Intel SGX specific */
|
|
149
|
+
sgx?: {
|
|
150
|
+
/** SPID for attestation service */
|
|
151
|
+
spid: string;
|
|
152
|
+
/** API key for IAS */
|
|
153
|
+
iasApiKey: string;
|
|
154
|
+
/** Use DCAP (Data Center Attestation Primitives) */
|
|
155
|
+
useDCAP: boolean;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
export declare class TEEAttestationEngine {
|
|
159
|
+
private key;
|
|
160
|
+
private config;
|
|
161
|
+
private commitmentEngine;
|
|
162
|
+
private cache;
|
|
163
|
+
private documents;
|
|
164
|
+
private requestCount;
|
|
165
|
+
private requestWindowStart;
|
|
166
|
+
private metrics;
|
|
167
|
+
constructor(commitmentEngine: CommitmentEngine, config?: Partial<TEEConfig>);
|
|
168
|
+
/**
|
|
169
|
+
* Initialize the TEE engine
|
|
170
|
+
*/
|
|
171
|
+
initialize(sealKey: string): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Initialize AWS Nitro Enclaves
|
|
174
|
+
*/
|
|
175
|
+
private initializeNitro;
|
|
176
|
+
/**
|
|
177
|
+
* Initialize Intel SGX
|
|
178
|
+
*/
|
|
179
|
+
private initializeSGX;
|
|
180
|
+
/**
|
|
181
|
+
* Attest data with hardware TEE
|
|
182
|
+
* Target: <10ms latency
|
|
183
|
+
*
|
|
184
|
+
* @param data - Data to attest
|
|
185
|
+
* @param commitmentId - L1 commitment reference
|
|
186
|
+
* @returns Attestation document
|
|
187
|
+
*/
|
|
188
|
+
attest(data: unknown, commitmentId: string): Promise<AttestationDocument>;
|
|
189
|
+
/**
|
|
190
|
+
* AWS Nitro Enclaves attestation
|
|
191
|
+
*/
|
|
192
|
+
private attestNitro;
|
|
193
|
+
/**
|
|
194
|
+
* Intel SGX attestation
|
|
195
|
+
*/
|
|
196
|
+
private attestSGX;
|
|
197
|
+
/**
|
|
198
|
+
* Simulated attestation (development/testing)
|
|
199
|
+
*/
|
|
200
|
+
private attestSimulated;
|
|
201
|
+
/**
|
|
202
|
+
* Verify an attestation document
|
|
203
|
+
*/
|
|
204
|
+
verify(document: AttestationDocument): Promise<{
|
|
205
|
+
valid: boolean;
|
|
206
|
+
errors: string[];
|
|
207
|
+
}>;
|
|
208
|
+
/**
|
|
209
|
+
* Get attestation document by ID
|
|
210
|
+
*/
|
|
211
|
+
get(id: string): AttestationDocument | null;
|
|
212
|
+
/**
|
|
213
|
+
* Rate limiting check
|
|
214
|
+
*/
|
|
215
|
+
private checkRateLimit;
|
|
216
|
+
/**
|
|
217
|
+
* Get platform capabilities
|
|
218
|
+
*/
|
|
219
|
+
getCapabilities(): PlatformCapabilities;
|
|
220
|
+
/**
|
|
221
|
+
* Get engine statistics
|
|
222
|
+
*/
|
|
223
|
+
getStats(): {
|
|
224
|
+
platform: TEEPlatform;
|
|
225
|
+
attestations: number;
|
|
226
|
+
cacheHits: number;
|
|
227
|
+
cacheMisses: number;
|
|
228
|
+
failures: number;
|
|
229
|
+
avgLatencyMs: number;
|
|
230
|
+
cacheStats: {
|
|
231
|
+
size: number;
|
|
232
|
+
hitRate: number;
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Verifies attestation documents from external sources
|
|
238
|
+
* Used for cross-enclave or remote attestation scenarios
|
|
239
|
+
*/
|
|
240
|
+
export declare class TEEVerifier {
|
|
241
|
+
private trustedMeasurements;
|
|
242
|
+
private trustedSigners;
|
|
243
|
+
/**
|
|
244
|
+
* Add a trusted enclave measurement
|
|
245
|
+
*/
|
|
246
|
+
trustMeasurement(measurement: Hash): void;
|
|
247
|
+
/**
|
|
248
|
+
* Add a trusted signer (for SGX)
|
|
249
|
+
*/
|
|
250
|
+
trustSigner(signer: Hash): void;
|
|
251
|
+
/**
|
|
252
|
+
* Verify remote attestation
|
|
253
|
+
*/
|
|
254
|
+
verifyRemote(document: AttestationDocument): Promise<{
|
|
255
|
+
trusted: boolean;
|
|
256
|
+
reasons: string[];
|
|
257
|
+
}>;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Bridges L1 commitments with L2 attestations
|
|
261
|
+
* Ensures cryptographic continuity between layers
|
|
262
|
+
*/
|
|
263
|
+
export declare class AttestationBridge {
|
|
264
|
+
private teeEngine;
|
|
265
|
+
private commitmentEngine;
|
|
266
|
+
constructor(teeEngine: TEEAttestationEngine, commitmentEngine: CommitmentEngine);
|
|
267
|
+
/**
|
|
268
|
+
* Commit and attest in one operation
|
|
269
|
+
* Returns both L1 seal and L2 attestation
|
|
270
|
+
*/
|
|
271
|
+
commitAndAttest(data: unknown, operationId: string): Promise<{
|
|
272
|
+
commitment: Commitment;
|
|
273
|
+
attestation: AttestationDocument;
|
|
274
|
+
}>;
|
|
275
|
+
/**
|
|
276
|
+
* Verify both layers
|
|
277
|
+
*/
|
|
278
|
+
verifyBoth(commitment: Commitment, attestation: AttestationDocument): Promise<{
|
|
279
|
+
l1Valid: boolean;
|
|
280
|
+
l2Valid: boolean;
|
|
281
|
+
crossLayerValid: boolean;
|
|
282
|
+
errors: string[];
|
|
283
|
+
}>;
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/tee/engine.ts"],"names":[],"mappings":"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"}
|