@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.
Files changed (55) hide show
  1. package/README.md +278 -0
  2. package/dist/checkpoint/engine.d.ts +208 -0
  3. package/dist/checkpoint/engine.d.ts.map +1 -0
  4. package/dist/checkpoint/engine.js +369 -0
  5. package/dist/checkpoint/engine.js.map +1 -0
  6. package/dist/context/engine.d.ts +197 -0
  7. package/dist/context/engine.d.ts.map +1 -0
  8. package/dist/context/engine.js +392 -0
  9. package/dist/context/engine.js.map +1 -0
  10. package/dist/core/commitment.d.ts +154 -0
  11. package/dist/core/commitment.d.ts.map +1 -0
  12. package/dist/core/commitment.js +305 -0
  13. package/dist/core/commitment.js.map +1 -0
  14. package/dist/core/crypto.d.ts +100 -0
  15. package/dist/core/crypto.d.ts.map +1 -0
  16. package/dist/core/crypto.js +243 -0
  17. package/dist/core/crypto.js.map +1 -0
  18. package/dist/index.d.ts +121 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +234 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/mcca/engine.d.ts +260 -0
  23. package/dist/mcca/engine.d.ts.map +1 -0
  24. package/dist/mcca/engine.js +518 -0
  25. package/dist/mcca/engine.js.map +1 -0
  26. package/dist/physics/engine.d.ts +165 -0
  27. package/dist/physics/engine.d.ts.map +1 -0
  28. package/dist/physics/engine.js +371 -0
  29. package/dist/physics/engine.js.map +1 -0
  30. package/dist/tee/engine.d.ts +285 -0
  31. package/dist/tee/engine.d.ts.map +1 -0
  32. package/dist/tee/engine.js +505 -0
  33. package/dist/tee/engine.js.map +1 -0
  34. package/dist/warrant/engine.d.ts +195 -0
  35. package/dist/warrant/engine.d.ts.map +1 -0
  36. package/dist/warrant/engine.js +409 -0
  37. package/dist/warrant/engine.js.map +1 -0
  38. package/dist/zk/engine.d.ts +243 -0
  39. package/dist/zk/engine.d.ts.map +1 -0
  40. package/dist/zk/engine.js +489 -0
  41. package/dist/zk/engine.js.map +1 -0
  42. package/package.json +25 -0
  43. package/src/__tests__/phase1.test.ts +1120 -0
  44. package/src/__tests__/phase2-4.test.ts +898 -0
  45. package/src/checkpoint/engine.ts +532 -0
  46. package/src/context/engine.ts +598 -0
  47. package/src/core/commitment.ts +438 -0
  48. package/src/core/crypto.ts +304 -0
  49. package/src/index.ts +320 -0
  50. package/src/mcca/engine.ts +778 -0
  51. package/src/physics/engine.ts +563 -0
  52. package/src/tee/engine.ts +810 -0
  53. package/src/warrant/engine.ts +625 -0
  54. package/src/zk/engine.ts +730 -0
  55. 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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"}