secretvm-verify 0.6.0 → 0.7.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 CHANGED
@@ -177,13 +177,13 @@ POSTs a raw CPU quote to SCRT Labs' [`/api/quote-parse`](https://secretai.scrtla
177
177
 
178
178
  Looks up a quote in the SecretVM artifact registry. Returns the matching template name and version, or `null` if not found.
179
179
 
180
- #### `verifyWorkload(data, dockerComposeYaml)`
180
+ #### `verifyWorkload(data, dockerComposeYaml, dockerFilesInput?)`
181
181
 
182
- Auto-detects quote type and verifies that it was produced by a known SecretVM running the given docker-compose.
182
+ Auto-detects quote type and verifies that it was produced by a known SecretVM running the given docker-compose. The optional third argument `{ dockerFiles?, dockerFilesSha256? }` supports TDX VMs that bake a Dockerfiles archive into the image — pass the raw tar bytes (they get SHA-256'd client-side) or a precomputed hex digest. SEV-SNP ignores it.
183
183
 
184
- #### `verifyTdxWorkload(data, dockerComposeYaml)`
184
+ #### `verifyTdxWorkload(data, dockerComposeYaml, dockerFilesInput?)`
185
185
 
186
- TDX-specific workload verification.
186
+ TDX-specific workload verification. Same optional `{ dockerFiles?, dockerFilesSha256? }` argument as `verifyWorkload`; when provided, the SHA-256 of the archive is appended to the RTMR3 replay as `log[2]`.
187
187
 
188
188
  #### `verifySevWorkload(data, dockerComposeYaml)`
189
189
 
@@ -286,7 +286,8 @@ secretvm-verify --verify-workload cpu_quote.txt --compose docker-compose.yaml
286
286
  secretvm-verify -vw cpu_quote.txt --compose docker-compose.yaml
287
287
 
288
288
  # JSON output (any command)
289
- secretvm-verify --secretvm yellow-krill.vm.scrtlabs.com --raw
289
+ secretvm-verify --secretvm yellow-krill.vm.scrtlabs.com --json # minimal JSON
290
+ secretvm-verify --secretvm yellow-krill.vm.scrtlabs.com --raw # full JSON with parsed report
290
291
 
291
292
  # Verbose output (all attestation fields)
292
293
  secretvm-verify --secretvm yellow-krill.vm.scrtlabs.com -v
package/dist/cli.js CHANGED
@@ -31,12 +31,24 @@ function getPositional() {
31
31
  return args.find((a) => !a.startsWith("--") && a !== "-v" && a !== "-rv" && a !== "-vw");
32
32
  }
33
33
  const raw = getFlag("--raw");
34
+ const json = getFlag("--json");
35
+ const jsonOut = raw || json;
34
36
  const verbose = getFlag("--verbose") || getFlag("-v");
37
+ function minimalJson(result) {
38
+ const { report: _report, ...rest } = result;
39
+ return rest;
40
+ }
35
41
  const product = getFlagValue("--product") ?? "";
36
42
  const vmUrl = getFlagValue("--vm");
37
43
  // `--reload-amd-kds` bypasses the local AMD KDS cache and re-fetches
38
44
  // VCEK, AMD CA cert chain, and CRL from kdsintf.amd.com. No effect on TDX.
39
45
  const reloadAmdKds = getFlag("--reload-amd-kds");
46
+ // `--docker-files <path>` points at a tar archive of Dockerfiles baked into
47
+ // the VM image; the SHA-256 digest is appended to the RTMR3 replay log for
48
+ // TDX workload verification. `--docker-files-sha256 <hex>` supplies the
49
+ // digest directly (skip reading the file). TDX-only.
50
+ const dockerFilesPath = getFlagValue("--docker-files");
51
+ const dockerFilesSha256 = getFlagValue("--docker-files-sha256");
40
52
  const SECRET_VM_PORT = 29343;
41
53
  async function fetchFromVm(endpoint) {
42
54
  let url = vmUrl;
@@ -83,7 +95,7 @@ async function getGpuQuote(flagName) {
83
95
  }
84
96
  return readFileSync(file, "utf8");
85
97
  }
86
- const USAGE = `Usage: secretvm-verify <command> <value> [--product NAME] [--raw] [--verbose|-v]
98
+ const USAGE = `Usage: secretvm-verify <command> <value> [--product NAME] [--json|--raw] [--verbose|-v]
87
99
 
88
100
  Commands:
89
101
  --secretvm <url> Verify a Secret VM (CPU + GPU + TLS binding)
@@ -93,8 +105,11 @@ Commands:
93
105
  --gpu <file|--vm url> Verify an NVIDIA GPU attestation
94
106
  --resolve-version, -rv <file|--vm url>
95
107
  Resolve SecretVM version from TDX or AMD SEV-SNP quote
96
- --verify-workload, -vw <file|--vm url> [--compose <file>]
97
- Verify workload against a docker-compose (fetched from VM if --vm)
108
+ --verify-workload, -vw <file|--vm url> [--compose <file>] [--docker-files <tar> | --docker-files-sha256 <hex>]
109
+ Verify workload against a docker-compose (fetched from VM if --vm).
110
+ --docker-files accepts a path to the Dockerfiles archive; its SHA-256 is
111
+ computed client-side and appended to the RTMR3 replay. --docker-files-sha256
112
+ supplies the digest directly (skips the file read). TDX-only.
98
113
  --check-agent <id> --chain <name>
99
114
  Resolve and verify an ERC-8004 agent on-chain
100
115
  --agent <file> Verify an ERC-8004 agent from a metadata JSON file
@@ -103,8 +118,9 @@ Options:
103
118
  --vm <url> Fetch quote from a VM instead of a file (works with --cpu, --tdx, --sev, --gpu, -rv, -vw)
104
119
  --chain NAME Chain name for --check-agent (e.g. base, ethereum, arbitrum)
105
120
  --product NAME AMD product name (Genoa, Milan, Turin)
106
- --raw Output raw JSON result
107
- --verbose, -v Print all attestation report fields
121
+ --json Output minimal JSON (valid, checks, errors) — omits the report fields
122
+ --raw Output full JSON result (includes the parsed report fields)
123
+ --verbose, -v Print all attestation report fields (text mode only)
108
124
  --reload-amd-kds Bypass the local AMD KDS cache and re-fetch VCEK,
109
125
  cert chain, and CRL from kdsintf.amd.com (no effect on TDX)
110
126
 
@@ -119,6 +135,8 @@ Examples:
119
135
  secretvm-verify -rv --vm blue-moose.vm.scrtlabs.com
120
136
  secretvm-verify -vw --vm blue-moose.vm.scrtlabs.com
121
137
  secretvm-verify --verify-workload cpu_quote.txt --compose docker-compose.yaml
138
+ secretvm-verify --verify-workload cpu_quote.txt --compose docker-compose.yaml --docker-files docker-files.tar
139
+ secretvm-verify --verify-workload cpu_quote.txt --compose docker-compose.yaml --docker-files-sha256 <hex>
122
140
  secretvm-verify --check-agent 38114 --chain base
123
141
  secretvm-verify --check-agent 38114 --chain base -v
124
142
  secretvm-verify --agent metadata.json`;
@@ -146,14 +164,14 @@ try {
146
164
  console.log(USAGE);
147
165
  process.exit(1);
148
166
  }
149
- if (!raw)
167
+ if (!jsonOut)
150
168
  console.log(`Verifying ${url}\n`);
151
169
  result = await checkSecretVm(url, product, reloadAmdKds);
152
170
  }
153
171
  else if (getFlag("--cpu")) {
154
172
  const quoteData = await getCpuQuote("--cpu");
155
173
  const source = vmUrl ? vmUrl : getFlagValue("--cpu") ?? getPositional();
156
- if (!raw)
174
+ if (!jsonOut)
157
175
  console.log(`Verifying CPU quote from ${source} ...\n`);
158
176
  result = await checkCpuAttestation(quoteData, product, reloadAmdKds);
159
177
  result = await mergeProofOfCloud(result, quoteData);
@@ -161,7 +179,7 @@ try {
161
179
  else if (getFlag("--tdx")) {
162
180
  const quoteData = await getCpuQuote("--tdx");
163
181
  const source = vmUrl ? vmUrl : getFlagValue("--tdx") ?? getPositional();
164
- if (!raw)
182
+ if (!jsonOut)
165
183
  console.log(`Verifying TDX quote from ${source} ...\n`);
166
184
  result = await checkTdxCpuAttestation(quoteData);
167
185
  result = await mergeProofOfCloud(result, quoteData);
@@ -169,7 +187,7 @@ try {
169
187
  else if (getFlag("--sev")) {
170
188
  const quoteData = await getCpuQuote("--sev");
171
189
  const source = vmUrl ? vmUrl : getFlagValue("--sev") ?? getPositional();
172
- if (!raw)
190
+ if (!jsonOut)
173
191
  console.log(`Verifying AMD SEV-SNP report from ${source} ...\n`);
174
192
  result = await checkSevCpuAttestation(quoteData, product, reloadAmdKds);
175
193
  result = await mergeProofOfCloud(result, quoteData);
@@ -177,7 +195,7 @@ try {
177
195
  else if (getFlag("--gpu")) {
178
196
  const quoteData = await getGpuQuote("--gpu");
179
197
  const source = vmUrl ? vmUrl : getFlagValue("--gpu") ?? getPositional();
180
- if (!raw)
198
+ if (!jsonOut)
181
199
  console.log(`Verifying NVIDIA GPU attestation from ${source} ...\n`);
182
200
  result = await checkNvidiaGpuAttestation(quoteData);
183
201
  }
@@ -193,6 +211,10 @@ try {
193
211
  console.log(JSON.stringify({ quote: quoteResult, version }, null, 2));
194
212
  process.exit(quoteResult.valid && !!version ? 0 : 1);
195
213
  }
214
+ if (json) {
215
+ console.log(JSON.stringify({ quote: minimalJson(quoteResult), version }, null, 2));
216
+ process.exit(quoteResult.valid && !!version ? 0 : 1);
217
+ }
196
218
  if (!quoteResult.valid) {
197
219
  console.log("🚫 Quote cryptographic verification failed");
198
220
  process.exit(1);
@@ -215,6 +237,10 @@ try {
215
237
  console.log(JSON.stringify({ quote: quoteResult, version }, null, 2));
216
238
  process.exit(quoteResult.valid && !!version ? 0 : 1);
217
239
  }
240
+ if (json) {
241
+ console.log(JSON.stringify({ quote: minimalJson(quoteResult), version }, null, 2));
242
+ process.exit(quoteResult.valid && !!version ? 0 : 1);
243
+ }
218
244
  if (!quoteResult.valid) {
219
245
  console.log("🚫 Attestation doesn't belong to an authentic SecretVM");
220
246
  process.exit(1);
@@ -243,6 +269,15 @@ try {
243
269
  }
244
270
  composeData = readFileSync(composeFile, "utf8");
245
271
  }
272
+ // Optional docker-files input (TDX-only). Either read the archive and
273
+ // compute SHA-256, or accept a precomputed digest.
274
+ const dockerFilesInput = {};
275
+ if (dockerFilesSha256) {
276
+ dockerFilesInput.dockerFilesSha256 = dockerFilesSha256;
277
+ }
278
+ else if (dockerFilesPath) {
279
+ dockerFilesInput.dockerFiles = readFileSync(dockerFilesPath);
280
+ }
246
281
  const quoteType = detectCpuQuoteType(quoteData);
247
282
  if (quoteType === "SEV-SNP") {
248
283
  // Step 1: cryptographic quote verification
@@ -252,6 +287,11 @@ try {
252
287
  console.log(JSON.stringify({ quote: quoteResult, workload: workloadResult }, null, 2));
253
288
  process.exit(quoteResult.valid && workloadResult.status === "authentic_match" ? 0 : 1);
254
289
  }
290
+ if (json) {
291
+ const workloadResult = await verifyWorkload(quoteData, composeData);
292
+ console.log(JSON.stringify({ quote: minimalJson(quoteResult), workload: workloadResult }, null, 2));
293
+ process.exit(quoteResult.valid && workloadResult.status === "authentic_match" ? 0 : 1);
294
+ }
255
295
  if (!quoteResult.valid) {
256
296
  console.log("🚫 Quote cryptographic verification failed");
257
297
  process.exit(1);
@@ -277,15 +317,20 @@ try {
277
317
  else {
278
318
  const quoteResult = await checkTdxCpuAttestation(quoteData);
279
319
  if (raw) {
280
- const workloadResult = await verifyWorkload(quoteData, composeData);
320
+ const workloadResult = await verifyWorkload(quoteData, composeData, dockerFilesInput);
281
321
  console.log(JSON.stringify({ quote: quoteResult, workload: workloadResult }, null, 2));
282
322
  process.exit(quoteResult.valid && workloadResult.status === "authentic_match" ? 0 : 1);
283
323
  }
324
+ if (json) {
325
+ const workloadResult = await verifyWorkload(quoteData, composeData, dockerFilesInput);
326
+ console.log(JSON.stringify({ quote: minimalJson(quoteResult), workload: workloadResult }, null, 2));
327
+ process.exit(quoteResult.valid && workloadResult.status === "authentic_match" ? 0 : 1);
328
+ }
284
329
  if (!quoteResult.valid) {
285
330
  console.log("🚫 Attestation doesn't belong to an authentic SecretVM");
286
331
  process.exit(1);
287
332
  }
288
- const workloadResult = await verifyWorkload(quoteData, composeData);
333
+ const workloadResult = await verifyWorkload(quoteData, composeData, dockerFilesInput);
289
334
  console.log(formatWorkloadResult(workloadResult, vmUrl));
290
335
  process.exit(workloadResult.status === "authentic_match" ? 0 : 1);
291
336
  }
@@ -297,7 +342,7 @@ try {
297
342
  console.log(USAGE);
298
343
  process.exit(1);
299
344
  }
300
- if (!raw)
345
+ if (!jsonOut)
301
346
  console.log(`Resolving and verifying agent ${id} on ${chain} ...\n`);
302
347
  result = await checkAgent(Number(id), chain, reloadAmdKds);
303
348
  }
@@ -308,7 +353,7 @@ try {
308
353
  process.exit(1);
309
354
  }
310
355
  const metadata = JSON.parse(readFileSync(file, "utf8"));
311
- if (!raw)
356
+ if (!jsonOut)
312
357
  console.log(`Verifying agent "${metadata.name}" ...\n`);
313
358
  result = await verifyAgent(metadata, reloadAmdKds);
314
359
  }
@@ -319,7 +364,7 @@ try {
319
364
  console.log(USAGE);
320
365
  process.exit(1);
321
366
  }
322
- if (!raw)
367
+ if (!jsonOut)
323
368
  console.log(`Verifying ${url}\n`);
324
369
  result = await checkSecretVm(url, product, reloadAmdKds);
325
370
  }
@@ -328,6 +373,10 @@ try {
328
373
  console.log(JSON.stringify(result, null, 2));
329
374
  process.exit(result.valid ? 0 : 1);
330
375
  }
376
+ if (json) {
377
+ console.log(JSON.stringify(minimalJson(result), null, 2));
378
+ process.exit(result.valid ? 0 : 1);
379
+ }
331
380
  const report = result.report;
332
381
  console.log("Checks:");
333
382
  for (const [name, passed] of Object.entries(result.checks)) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/rtmr.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Calculate RTMR3 from a docker-compose file content and rootfs_data.
2
+ * Calculate RTMR3 from a docker-compose file and (optionally) a docker-files
3
+ * archive digest.
3
4
  *
4
- * Mirrors portal logic exactly:
5
- * 1. Parse docker-compose YAML and re-stringify (normalise)
6
- * 2. SHA-256 of normalised YAML bytes → log[0]
7
- * 3. rootfs_data (hex) → log[1]
8
- * 4. replayRtmr(log)
5
+ * Replay log order (matches the TDX initramfs in secret-vm-build's init-tdx):
6
+ * 1. SHA-256 of docker-compose bytes → log[0]
7
+ * 2. rootfs_data (hex) → log[1]
8
+ * 3. SHA-256 of docker-files archive → log[2] (only when provided)
9
9
  */
10
- export declare function calculateRtmr3(dockerCompose: Buffer | string, rootfsData: string): string;
10
+ export declare function calculateRtmr3(dockerCompose: Buffer | string, rootfsData: string, dockerFilesSha256?: string): string;
package/dist/rtmr.js CHANGED
@@ -24,15 +24,15 @@ function replayRtmr(history) {
24
24
  return mr.toString("hex");
25
25
  }
26
26
  /**
27
- * Calculate RTMR3 from a docker-compose file content and rootfs_data.
27
+ * Calculate RTMR3 from a docker-compose file and (optionally) a docker-files
28
+ * archive digest.
28
29
  *
29
- * Mirrors portal logic exactly:
30
- * 1. Parse docker-compose YAML and re-stringify (normalise)
31
- * 2. SHA-256 of normalised YAML bytes → log[0]
32
- * 3. rootfs_data (hex) → log[1]
33
- * 4. replayRtmr(log)
30
+ * Replay log order (matches the TDX initramfs in secret-vm-build's init-tdx):
31
+ * 1. SHA-256 of docker-compose bytes → log[0]
32
+ * 2. rootfs_data (hex) → log[1]
33
+ * 3. SHA-256 of docker-files archive → log[2] (only when provided)
34
34
  */
35
- export function calculateRtmr3(dockerCompose, rootfsData) {
35
+ export function calculateRtmr3(dockerCompose, rootfsData, dockerFilesSha256) {
36
36
  const log = [];
37
37
  // Hash raw bytes directly (no YAML normalization) — matches portal's Buffer path
38
38
  const composeBuffer = typeof dockerCompose === "string"
@@ -40,6 +40,9 @@ export function calculateRtmr3(dockerCompose, rootfsData) {
40
40
  : dockerCompose;
41
41
  log.push(measureSha256(composeBuffer).toString("hex"));
42
42
  log.push(rootfsData.toLowerCase().replace(/^0x/, ""));
43
+ if (dockerFilesSha256) {
44
+ log.push(dockerFilesSha256.toLowerCase().replace(/^0x/, ""));
45
+ }
43
46
  return replayRtmr(log);
44
47
  }
45
48
  //# sourceMappingURL=rtmr.js.map
package/dist/rtmr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rtmr.js","sourceRoot":"","sources":["../src/rtmr.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,kCAAkC;AAClC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEjD,SAAS,aAAa,CAAC,IAAY;IAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,OAAiB;IACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEzC,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,MAAc,CAAC;QACnB,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,UAAU,CAAC;QACxB,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC1B,aAA8B,EAC9B,UAAkB;IAElB,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,iFAAiF;IACjF,MAAM,aAAa,GACf,OAAO,aAAa,KAAK,QAAQ;QAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC,CAAC,aAAa,CAAC;IAExB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"rtmr.js","sourceRoot":"","sources":["../src/rtmr.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,kCAAkC;AAClC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEjD,SAAS,aAAa,CAAC,IAAY;IAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,OAAiB;IACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEzC,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,MAAc,CAAC;QACnB,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,UAAU,CAAC;QACxB,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC1B,aAA8B,EAC9B,UAAkB,EAClB,iBAA0B;IAE1B,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,iFAAiF;IACjF,MAAM,aAAa,GACf,OAAO,aAAa,KAAK,QAAQ;QAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC,CAAC,aAAa,CAAC;IAExB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtD,IAAI,iBAAiB,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC"}
@@ -37,7 +37,13 @@ export declare function resolveAmdSevVersion(quoteBase64OrUrl: string): Promise<
37
37
  * 5. If any row matches → authentic_match.
38
38
  * 6. Otherwise → authentic_mismatch.
39
39
  */
40
- export declare function verifyTdxWorkload(quoteHexOrUrl: string, dockerComposeYaml?: string): Promise<WorkloadResult>;
40
+ export interface DockerFilesInput {
41
+ /** Raw bytes of the docker-files tar archive. SHA-256 is computed client-side. */
42
+ dockerFiles?: Uint8Array | Buffer;
43
+ /** Precomputed SHA-256 hex digest of the docker-files archive. Takes precedence over dockerFiles. */
44
+ dockerFilesSha256?: string;
45
+ }
46
+ export declare function verifyTdxWorkload(quoteHexOrUrl: string, dockerComposeYaml?: string, dockerFilesInput?: DockerFilesInput): Promise<WorkloadResult>;
41
47
  export declare function formatWorkloadResult(r: WorkloadResult, vmUrl?: string): string;
42
48
  /**
43
49
  * Verify an AMD SEV-SNP workload against a docker-compose.yaml.
@@ -59,4 +65,4 @@ export declare function verifySevWorkload(quoteBase64OrUrl: string, dockerCompos
59
65
  * @param quoteData Hex-encoded TDX quote **or** base64-encoded SEV-SNP report.
60
66
  * @param dockerComposeYaml Contents of the docker-compose.yaml file.
61
67
  */
62
- export declare function verifyWorkload(quoteDataOrUrl: string, dockerComposeYaml?: string): Promise<WorkloadResult>;
68
+ export declare function verifyWorkload(quoteDataOrUrl: string, dockerComposeYaml?: string, dockerFilesInput?: DockerFilesInput): Promise<WorkloadResult>;
package/dist/workload.js CHANGED
@@ -61,23 +61,7 @@ export async function resolveAmdSevVersion(quoteBase64OrUrl) {
61
61
  artifacts_ver: imageId,
62
62
  };
63
63
  }
64
- // ---------------------------------------------------------------------------
65
- // Workload verification
66
- // ---------------------------------------------------------------------------
67
- /**
68
- * Verify that a TDX quote (hex) was produced by a known SecretVM running the
69
- * given docker-compose YAML.
70
- *
71
- * Steps:
72
- * 1. Parse mrtd + rtmr0..3 from the quote.
73
- * 2. Find all registry rows matching mrtd+rtmr0..2.
74
- * 3. If none → not_authentic.
75
- * 4. For each candidate row: calculate expected RTMR3 from the compose YAML
76
- * and the row's rootfs_data, then compare to the quote's rtmr3.
77
- * 5. If any row matches → authentic_match.
78
- * 6. Otherwise → authentic_mismatch.
79
- */
80
- export async function verifyTdxWorkload(quoteHexOrUrl, dockerComposeYaml) {
64
+ export async function verifyTdxWorkload(quoteHexOrUrl, dockerComposeYaml, dockerFilesInput) {
81
65
  let quoteHex;
82
66
  let compose;
83
67
  if (isVmUrl(quoteHexOrUrl)) {
@@ -90,6 +74,14 @@ export async function verifyTdxWorkload(quoteHexOrUrl, dockerComposeYaml) {
90
74
  return { status: "not_authentic" };
91
75
  compose = dockerComposeYaml;
92
76
  }
77
+ let dockerFilesSha256;
78
+ if (dockerFilesInput?.dockerFilesSha256) {
79
+ dockerFilesSha256 = dockerFilesInput.dockerFilesSha256;
80
+ }
81
+ else if (dockerFilesInput?.dockerFiles) {
82
+ const bytes = Buffer.from(dockerFilesInput.dockerFiles);
83
+ dockerFilesSha256 = createHash("sha256").update(bytes).digest("hex");
84
+ }
93
85
  let mrtd, rtmr0, rtmr1, rtmr2, quoteRtmr3;
94
86
  try {
95
87
  const fields = parseTdxQuoteFields(quoteHex);
@@ -114,7 +106,7 @@ export async function verifyTdxWorkload(quoteHexOrUrl, dockerComposeYaml) {
114
106
  const artifacts_ver = best.artifacts_ver;
115
107
  // Check compose against every candidate entry (different rootfs_data or envs)
116
108
  for (const entry of candidates) {
117
- const expected = calculateRtmr3(compose, entry.rootfs_data);
109
+ const expected = calculateRtmr3(compose, entry.rootfs_data, dockerFilesSha256);
118
110
  if (expected === quoteRtmr3) {
119
111
  return {
120
112
  status: "authentic_match",
@@ -268,13 +260,13 @@ export async function verifySevWorkload(quoteBase64OrUrl, dockerComposeYaml) {
268
260
  * @param quoteData Hex-encoded TDX quote **or** base64-encoded SEV-SNP report.
269
261
  * @param dockerComposeYaml Contents of the docker-compose.yaml file.
270
262
  */
271
- export async function verifyWorkload(quoteDataOrUrl, dockerComposeYaml) {
263
+ export async function verifyWorkload(quoteDataOrUrl, dockerComposeYaml, dockerFilesInput) {
272
264
  if (isVmUrl(quoteDataOrUrl)) {
273
265
  const quoteData = await fetchCpuQuote(quoteDataOrUrl);
274
266
  const compose = dockerComposeYaml ?? await fetchDockerCompose(quoteDataOrUrl);
275
267
  const type = detectCpuQuoteType(quoteData);
276
268
  if (type === "TDX")
277
- return verifyTdxWorkload(quoteData, compose);
269
+ return verifyTdxWorkload(quoteData, compose, dockerFilesInput);
278
270
  if (type === "SEV-SNP")
279
271
  return verifySevWorkload(quoteData, compose);
280
272
  return { status: "not_authentic" };
@@ -283,7 +275,7 @@ export async function verifyWorkload(quoteDataOrUrl, dockerComposeYaml) {
283
275
  return { status: "not_authentic" };
284
276
  const type = detectCpuQuoteType(quoteDataOrUrl);
285
277
  if (type === "TDX")
286
- return verifyTdxWorkload(quoteDataOrUrl, dockerComposeYaml);
278
+ return verifyTdxWorkload(quoteDataOrUrl, dockerComposeYaml, dockerFilesInput);
287
279
  if (type === "SEV-SNP")
288
280
  return verifySevWorkload(quoteDataOrUrl, dockerComposeYaml);
289
281
  return { status: "not_authentic" };
@@ -1 +1 @@
1
- {"version":3,"file":"workload.js","sourceRoot":"","sources":["../src/workload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workload.js","sourceRoot":"","sources":["../src/workload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EACH,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,GAGlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBzC,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,aAAqB;IAErB,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7F,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO;QACH,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,aAAa,EAAE,MAAM,CAAC,aAAa;KACtC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,gBAAwB;IAExB,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACzG,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACD,QAAQ,GAAG,eAAe,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,aAAa,KAAK,OAAO,CACpE,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACH,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,aAAa,EAAE,OAAO;KACzB,CAAC;AACN,CAAC;AA0BD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,aAAqB,EACrB,iBAA0B,EAC1B,gBAAmC;IAEnC,IAAI,QAAgB,CAAC;IACrB,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzB,QAAQ,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9C,OAAO,GAAG,iBAAiB,IAAI,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACJ,QAAQ,GAAG,aAAa,CAAC;QACzB,IAAI,CAAC,iBAAiB;YAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAC3D,OAAO,GAAG,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,iBAAqC,CAAC;IAC1C,IAAI,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;QACtC,iBAAiB,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;IAC3D,CAAC;SAAM,IAAI,gBAAgB,EAAE,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACxD,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,IAAY,EAAE,KAAa,EAAE,KAAa,EAAE,KAAa,EAAE,UAAkB,CAAC;IAClF,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACnB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAEpE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,mDAAmD;IACnD,MAAM,IAAI,GAAqB,iBAAiB,CAAC,UAAU,CAAE,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACzC,0DAA0D;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACzB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAEzC,8EAA8E;IAC9E,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAC/E,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO;gBACH,MAAM,EAAE,iBAAiB;gBACzB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,GAAG,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO;QACH,MAAM,EAAE,oBAAoB;QAC5B,aAAa;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa;QACb,GAAG;KACN,CAAC;AACN,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAAC,CAAiB,EAAE,KAAc;IAClE,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,OAAO,wDAAwD,CAAC;IACpE,CAAC;IAED,MAAM,MAAM,GAAG,8CAA8C,CAAC,CAAC,aAAa,eAAe,CAAC,CAAC,aAAa,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IAEnI,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,wCAAwC,KAAK,uBAAuB,CAAC,CAAC,CAAC,mCAAmC,CAAC;IAElI,IAAI,CAAC,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACjC,OAAO,MAAM,GAAG,wCAAwC,MAAM,EAAE,CAAC;IACrE,CAAC;IAED,qBAAqB;IACrB,OAAO,MAAM,GAAG,mCAAmC,MAAM,EAAE,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,gBAAwB,EACxB,iBAA0B;IAE1B,IAAI,WAAmB,CAAC;IACxB,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5B,WAAW,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACpD,OAAO,GAAG,iBAAiB,IAAI,MAAM,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACJ,WAAW,GAAG,gBAAgB,CAAC;QAC/B,IAAI,CAAC,iBAAiB;YAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAC3D,OAAO,GAAG,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAEhE,IAAI,gBAAwB,CAAC;IAC7B,IAAI,MAA2C,CAAC;IAChD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACD,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAChD,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACD,QAAQ,GAAG,eAAe,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAE/C,0EAA0E;IAC1E,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE/E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5F,SAAS,QAAQ,CAAC,KAAuB;QACrC,MAAM,OAAO,GAAG,gDAAgD,WAAW,gBAAgB,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/G,IAAI,CAAC;YACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,gBAAgB,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO;gBACH,MAAM,EAAE,iBAAiB;gBACzB,aAAa,EAAE,YAAY;gBAC3B,OAAO,EAAE,YAAY;gBACrB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,GAAG,EAAE,MAAM;aACd,CAAC;QACN,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,OAAO,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO;YAAE,SAAS,CAAC,sBAAsB;QAChF,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO;gBACH,MAAM,EAAE,iBAAiB;gBACzB,aAAa,EAAE,YAAY;gBAC3B,OAAO,EAAE,YAAY;gBACrB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,GAAG,EAAE,MAAM;aACd,CAAC;QACN,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,0DAA0D;IAC1D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO;YACH,MAAM,EAAE,oBAAoB;YAC5B,aAAa,EAAE,YAAY;YAC3B,OAAO,EAAE,YAAY;YACrB,aAAa,EAAE,OAAO;YACtB,GAAG,EAAE,MAAM;SACd,CAAC;IACN,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACvC,CAAC;AAED,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,cAAsB,EACtB,iBAA0B,EAC1B,gBAAmC;IAEnC,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,iBAAiB,IAAI,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACnF,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,iBAAiB;QAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAClG,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACpF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACvC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "secretvm-verify",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Attestation verification for Intel TDX, AMD SEV-SNP, and NVIDIA GPU",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",