secretvm-verify 0.4.0 → 0.6.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
@@ -4,11 +4,12 @@ Attestation verification SDK for confidential computing environments. Verifies I
4
4
 
5
5
  ## What it verifies
6
6
 
7
- - **Intel TDX** — Parses a TDX Quote v4, verifies the ECDSA-P256 signature chain (PCK -> Intermediate -> Root), validates QE report binding, and checks TCB status against Intel's Provisioning Certification Service.
7
+ - **Intel TDX** — Performs full Intel DCAP quote verification, delegating the cryptographic checks to the upstream [`@teekit/qvl`](https://www.npmjs.com/package/@teekit/qvl) library. Verifies the PCK certificate chain against a pinned Intel SGX Root CA, the QE Identity, PCK CRL and Root CA CRL revocation, the TCB Info signature, the TCB status, the quote signature, and the QE report binding. Collateral (TCB Info, QE Identity, CRLs, issuer chains) is fetched from a Provisioning Certificate Caching Service (PCCS) — defaults to SCRT Labs' deployment.
8
8
  - **AMD SEV-SNP** — Parses a SEV-SNP attestation report, fetches the VCEK certificate from AMD's Key Distribution Service, verifies the ECDSA-P384 report signature, and validates the certificate chain (VCEK -> ASK -> ARK).
9
9
  - **NVIDIA GPU** — Submits GPU attestation evidence to NVIDIA's Remote Attestation Service (NRAS), verifies the returned JWT signatures against NVIDIA's published JWKS keys, and extracts per-GPU attestation claims.
10
10
  - **SecretVM workload** — Given a TDX or SEV-SNP quote and a `docker-compose.yaml`, determines whether the quote was produced by a known SecretVM image and verifies the exact compose file that was booted.
11
11
  - **Secret VM** — End-to-end verification that connects to a VM's attestation endpoints, verifies CPU and GPU attestation, and validates TLS and GPU cryptographic bindings.
12
+ - **Proof of cloud** — POSTs a CPU quote to SCRT Labs' [`/api/quote-parse`](https://secretai.scrtlabs.com/api/quote-parse) endpoint, which confirms the quote originated on a Secret VM and returns its `origin` and `machine_id`. Included in the default `checkSecretVm` flow and exposed as a standalone `checkProofOfCloud` function.
12
13
  - **ERC-8004 Agent verification** — End-to-end verification of on-chain AI agents registered under the [ERC-8004](https://eips.ethereum.org/EIPS/eip-8004) standard. Resolves agent metadata from any supported blockchain (Ethereum, Base, Arbitrum, Polygon, and 14 more), discovers the agent's TEE attestation endpoints, and runs the full verification flow. Three composable functions:
13
14
  - **`resolveAgent`** — Queries the on-chain registry contract for the agent's metadata.
14
15
  - **`verifyAgent`** — Takes agent metadata and runs full TEE verification against the agent's declared endpoints.
@@ -33,7 +34,7 @@ const result = await checkSecretVm('my-vm.example.com');
33
34
 
34
35
  console.log(result.valid); // true if all checks pass
35
36
  console.log(result.attestationType); // "SECRET-VM"
36
- console.log(result.checks); // { tls_cert_obtained: true, cpu_attestation_valid: true, ... }
37
+ console.log(result.checks); // { cpu_quote_fetched: true, tls_cert_fetched: true, ... }
37
38
  console.log(result.report); // { tls_fingerprint: "...", cpu: {...}, cpu_type: "TDX", ... }
38
39
  console.log(result.errors); // [] if no errors
39
40
  ```
@@ -168,6 +169,10 @@ Verifies an AMD SEV-SNP attestation report.
168
169
 
169
170
  Verifies NVIDIA GPU attestation via NRAS.
170
171
 
172
+ #### `checkProofOfCloud(quote)`
173
+
174
+ POSTs a raw CPU quote to SCRT Labs' [`/api/quote-parse`](https://secretai.scrtlabs.com/api/quote-parse) endpoint. Returns an `AttestationResult` with `attestationType: "PROOF-OF-CLOUD"` and a single check `proof_of_cloud_verified`. The report exposes `origin`, `proof_of_cloud`, `status`, and `machine_id`. Also runs automatically inside `checkSecretVm` and is spliced into the CLI output for `--cpu`, `--tdx`, and `--sev`.
175
+
171
176
  #### `resolveSecretVmVersion(data)`
172
177
 
173
178
  Looks up a quote in the SecretVM artifact registry. Returns the matching template name and version, or `null` if not found.
@@ -303,17 +308,76 @@ The library contacts these services during verification:
303
308
 
304
309
  | Service | Used by | Purpose |
305
310
  |---------|---------|---------|
306
- | [Intel PCS](https://api.trustedservices.intel.com) | TDX | TCB status lookup |
307
- | [AMD KDS](https://kdsintf.amd.com) | SEV-SNP | VCEK certificate and cert chain |
311
+ | [SCRT PCCS](https://pccs.scrtlabs.com) | TDX | DCAP collateral (TCB Info, QE Identity, PCK CRL, Root CA CRL, issuer chains) |
312
+ | [AMD KDS](https://kdsintf.amd.com) | SEV-SNP | VCEK certificate, AMD CA cert chain (ASK + ARK), CRL |
308
313
  | [NVIDIA NRAS](https://nras.attestation.nvidia.com) | GPU | GPU attestation verification |
309
314
 
310
- **Note:** AMD KDS has rate limits. If you encounter 429 errors, specify the `product` parameter to reduce the number of requests.
315
+ ## AMD KDS caching
316
+
317
+ To minimize calls to `kdsintf.amd.com` (which is rate-limited and returns HTTP 429 under load) the AMD SEV-SNP verifier caches all three KDS responses to disk. The cache is on by default; nothing to enable.
318
+
319
+ | Item | TTL | Cache key |
320
+ |---|---|---|
321
+ | VCEK certificate | 30 days | `(product, chip_id, ucode_SPL, snp_SPL, tee_SPL, bl_SPL)` — full TCB tuple |
322
+ | AMD CA cert chain (ASK + ARK) | 30 days | `product` |
323
+ | CRL | from the CRL's own X.509 `nextUpdate` field (typically ~7 months for AMD); falls back to 7 days if `nextUpdate` is missing or unparseable | `product` |
324
+
325
+ The VCEK cache key includes the full TCB tuple because AMD issues a distinct VCEK per `(chip, TCB version)`. A microcode update on the same chip becomes a cache miss with the new key, fetching the updated VCEK as expected.
326
+
327
+ **Cache location.** Default `~/.cache/secretvm-verify/amd/`. Override with the `SECRETVM_VERIFY_CACHE_DIR` environment variable; the library appends `/amd` to whatever you set:
328
+
329
+ ```sh
330
+ export SECRETVM_VERIFY_CACHE_DIR=/var/cache/myapp
331
+ # → entries land in /var/cache/myapp/amd/{vcek,cert_chain,crl}/
332
+ ```
333
+
334
+ Each cached entry is two files: the payload (DER bytes for VCEK and CRL, PEM text for the cert chain) and a sidecar `<name>.expires` containing the Unix-epoch expiration time.
335
+
336
+ **Inspect cached entries:**
337
+
338
+ ```sh
339
+ ls -lR ~/.cache/secretvm-verify/amd/
340
+
341
+ # Decode a specific VCEK
342
+ openssl x509 -in ~/.cache/secretvm-verify/amd/vcek/<file> -inform DER -text -noout
343
+
344
+ # Decode the CRL — see revoked serials and nextUpdate
345
+ openssl crl -in ~/.cache/secretvm-verify/amd/crl/Genoa -inform DER -text -noout
346
+ ```
347
+
348
+ **Network failure fallback.** If AMD KDS is unreachable or returns an error, the cache falls back to a stale entry rather than failing the verification. Better to verify with a slightly old CRL than to fail every SEV-SNP attestation while KDS is down.
349
+
350
+ **Force a refresh** (skip the cache for this call, fetch fresh, write back to cache):
351
+
352
+ CLI:
353
+ ```sh
354
+ secretvm-verify --secretvm <url> --reload-amd-kds
355
+ secretvm-verify --sev <quote.txt> --product Genoa --reload-amd-kds
356
+ ```
357
+
358
+ Programmatic — pass `true` as the third argument:
359
+
360
+ ```js
361
+ const result = await checkSevCpuAttestation(quote, "Genoa", /* reloadAmdKds */ true);
362
+ const result = await checkSecretVm(url, "", /* reloadAmdKds */ true);
363
+ const result = await checkCpuAttestation(quote, "Genoa", /* reloadAmdKds */ true);
364
+ const result = await checkAgent(agentId, "base", /* reloadAmdKds */ true);
365
+ ```
366
+
367
+ The `--reload-amd-kds` flag has no effect on Intel TDX verification (TDX doesn't cache; the upstream `@teekit/qvl` library manages its own ephemeral state).
368
+
369
+ **To clear the cache entirely:**
370
+
371
+ ```sh
372
+ rm -rf ~/.cache/secretvm-verify/amd
373
+ ```
311
374
 
312
375
  ## Requirements
313
376
 
314
377
  - Node.js >= 18 (uses built-in `crypto`, `fetch`)
315
- - `openssl` CLI (required for AMD SEV-SNP certificate chain verification)
316
- - `yaml` (npm dependency, included)
378
+ - npm dependencies: [`@teekit/qvl`](https://www.npmjs.com/package/@teekit/qvl) (TDX quote verification), [`asn1js`](https://www.npmjs.com/package/asn1js) (parses the CRL's `nextUpdate` field for cache TTL), `ethers` (ERC-8004 agent resolution) — installed automatically.
379
+
380
+ No system-level dependencies. AMD SEV-SNP certificate chains (RSA-PSS) are verified natively via `node:crypto`.
317
381
 
318
382
  ## License
319
383
 
package/data/sev.json CHANGED
@@ -190,5 +190,45 @@
190
190
  "section_type": 16
191
191
  }
192
192
  ]
193
- }
194
- ]
193
+ },
194
+ {
195
+ "vm_type": "prod",
196
+ "rootfs_hash": "f44141c9a0cbed19ddf30b16929de33633e5631cfd68731e9ff9e4321d5775fd",
197
+ "artifacts_ver": "v0.0.27-alpha.1",
198
+ "kernel_hash": "98c41a86a1ba6a9a9d772ae0b028835091b4930f79ea509b595d2080d7df90c2",
199
+ "initrd_hash": "6b19d1b356c1e791f5c1c3d7dd86a723b870c87ebdfe3f7ccace80215ac71d2e",
200
+ "vcpu_type": "EPYC",
201
+ "ovmf_hash": "c581d3eaebf2941beb1f757de97497279b953a6999921cab05f9ed5268f9c0505d741f4021b5a3995c9893851cde190e",
202
+ "sev_hashes_table_gpa": 8457216,
203
+ "sev_es_reset_eip": 8433668,
204
+ "ovmf_sections": [
205
+ {"gpa": 8388608, "size": 36864, "section_type": 1},
206
+ {"gpa": 8429568, "size": 12288, "section_type": 1},
207
+ {"gpa": 8441856, "size": 4096, "section_type": 2},
208
+ {"gpa": 8445952, "size": 4096, "section_type": 3},
209
+ {"gpa": 8450048, "size": 4096, "section_type": 4},
210
+ {"gpa": 8458240, "size": 61440, "section_type": 1},
211
+ {"gpa": 8454144, "size": 4096, "section_type": 16}
212
+ ]
213
+ },
214
+ {
215
+ "vm_type": "dev",
216
+ "rootfs_hash": "a2e5a4582bba5a0cfa512b1c0809c375ec78912af238dbbaf37afdecee60c25c",
217
+ "artifacts_ver": "v0.0.27-alpha.1",
218
+ "kernel_hash": "98c41a86a1ba6a9a9d772ae0b028835091b4930f79ea509b595d2080d7df90c2",
219
+ "initrd_hash": "6b19d1b356c1e791f5c1c3d7dd86a723b870c87ebdfe3f7ccace80215ac71d2e",
220
+ "vcpu_type": "EPYC",
221
+ "ovmf_hash": "c581d3eaebf2941beb1f757de97497279b953a6999921cab05f9ed5268f9c0505d741f4021b5a3995c9893851cde190e",
222
+ "sev_hashes_table_gpa": 8457216,
223
+ "sev_es_reset_eip": 8433668,
224
+ "ovmf_sections": [
225
+ {"gpa": 8388608, "size": 36864, "section_type": 1},
226
+ {"gpa": 8429568, "size": 12288, "section_type": 1},
227
+ {"gpa": 8441856, "size": 4096, "section_type": 2},
228
+ {"gpa": 8445952, "size": 4096, "section_type": 3},
229
+ {"gpa": 8450048, "size": 4096, "section_type": 4},
230
+ {"gpa": 8458240, "size": 61440, "section_type": 1},
231
+ {"gpa": 8454144, "size": 4096, "section_type": 16}
232
+ ]
233
+ }
234
+ ]
package/data/tdx.csv CHANGED
@@ -50,4 +50,16 @@ large,prod,v0.0.25,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb47
50
50
  small,dev,v0.0.25,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,2709012eccc10afb618d90f4e2849de97ede129e27b3f53b4465f71852af9e1a52583e931f340ce9ebfa06be3c3feb48,2db7eacca93100fb7199b055f55e8fd3a52f2153e25696f937745ff7f254d1be9cf37223237375dec74e685250b273ab,be378f0c4f1180fde14d8bb0a13a9dd430c842b135be23acd7b09cd6181550b6f8adb36588eabdc10be9325d92a8e055,e0a44b90c318d2b081f8fe0247b7952576fda01e3cf3f9c4b607f19554510ea1,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
51
51
  medium,dev,v0.0.25,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,660eb1c0ce5b816b45ad7d6b49d1e9c2fcd1e14e08ef77faa7b0e9f1d180da593231adae01081799a0c700eb6ab350e7,2db7eacca93100fb7199b055f55e8fd3a52f2153e25696f937745ff7f254d1be9cf37223237375dec74e685250b273ab,be378f0c4f1180fde14d8bb0a13a9dd430c842b135be23acd7b09cd6181550b6f8adb36588eabdc10be9325d92a8e055,e0a44b90c318d2b081f8fe0247b7952576fda01e3cf3f9c4b607f19554510ea1,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
52
52
  4xlarge_256GB_gpu,prod,v0.0.21,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,6fd479c2f47a90d10070db2f2a489ec88d752577d42e65164fa0f144ebc898ee71c2852722e37f897e80ad9596bd2539,b918cee54c974b16a89c16367df46b9b54a37db35f3d983ad4b7c0d024b09b9bc345f4eed6f30a5fce5ceffa654fd076,b35419954f635b3c9188cf8731c4b542eb00fc376c657d2e2d7bfe2acfc087300439e4e41bad5cebfba5f5866f84da5c,9fa99509306bf652e45ce0a689b3e480ab369649240f14ff53a265a279ff8202,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
53
- 4xlarge_256GB_gpu,prod,v0.0.25,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,6fd479c2f47a90d10070db2f2a489ec88d752577d42e65164fa0f144ebc898ee71c2852722e37f897e80ad9596bd2539,2db7eacca93100fb7199b055f55e8fd3a52f2153e25696f937745ff7f254d1be9cf37223237375dec74e685250b273ab,be378f0c4f1180fde14d8bb0a13a9dd430c842b135be23acd7b09cd6181550b6f8adb36588eabdc10be9325d92a8e055, f19a00d3575f6b4340b1aefb60a686b51bba9db628092b3c73c129a1b5c73c08,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
53
+ 4xlarge_256GB_gpu,prod,v0.0.25,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,6fd479c2f47a90d10070db2f2a489ec88d752577d42e65164fa0f144ebc898ee71c2852722e37f897e80ad9596bd2539,2db7eacca93100fb7199b055f55e8fd3a52f2153e25696f937745ff7f254d1be9cf37223237375dec74e685250b273ab,be378f0c4f1180fde14d8bb0a13a9dd430c842b135be23acd7b09cd6181550b6f8adb36588eabdc10be9325d92a8e055, f19a00d3575f6b4340b1aefb60a686b51bba9db628092b3c73c129a1b5c73c08,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
54
+ small,dev,v0.0.27-alpha.1,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,2709012eccc10afb618d90f4e2849de97ede129e27b3f53b4465f71852af9e1a52583e931f340ce9ebfa06be3c3feb48,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,ea74c4d024d2732dfdf8c8ba240cb383df2cc198a72901f4d9a902caa0582f17,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
55
+ small,dev,v0.0.27-alpha.1,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,671800f0b5fefa5ca79b63bde0ee0e55f38944cedfa69282ac014a9fc5f6a4a19b0cdfe33661012b3390d2aecb8e486a,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,ea74c4d024d2732dfdf8c8ba240cb383df2cc198a72901f4d9a902caa0582f17,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
56
+ small,prod,v0.0.27-alpha.1,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,2709012eccc10afb618d90f4e2849de97ede129e27b3f53b4465f71852af9e1a52583e931f340ce9ebfa06be3c3feb48,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,1d638b068bc6f9254e74ea917818d4e09a7ffce8e486d54c5b5dbe9e6c44b261,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
57
+ small,prod,v0.0.27-alpha.1,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,671800f0b5fefa5ca79b63bde0ee0e55f38944cedfa69282ac014a9fc5f6a4a19b0cdfe33661012b3390d2aecb8e486a,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,1d638b068bc6f9254e74ea917818d4e09a7ffce8e486d54c5b5dbe9e6c44b261,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
58
+ medium,dev,v0.0.27-alpha.1,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,660eb1c0ce5b816b45ad7d6b49d1e9c2fcd1e14e08ef77faa7b0e9f1d180da593231adae01081799a0c700eb6ab350e7,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,ea74c4d024d2732dfdf8c8ba240cb383df2cc198a72901f4d9a902caa0582f17,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
59
+ medium,dev,v0.0.27-alpha.1,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,09d747e568e012bb560b37604e25f1a83988037d8286e81bb97e46fb31ec4d35edf9e23236ae573265417e7ed2f89b99,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,ea74c4d024d2732dfdf8c8ba240cb383df2cc198a72901f4d9a902caa0582f17,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
60
+ medium,prod,v0.0.27-alpha.1,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,660eb1c0ce5b816b45ad7d6b49d1e9c2fcd1e14e08ef77faa7b0e9f1d180da593231adae01081799a0c700eb6ab350e7,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,1d638b068bc6f9254e74ea917818d4e09a7ffce8e486d54c5b5dbe9e6c44b261,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
61
+ medium,prod,v0.0.27-alpha.1,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,09d747e568e012bb560b37604e25f1a83988037d8286e81bb97e46fb31ec4d35edf9e23236ae573265417e7ed2f89b99,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,1d638b068bc6f9254e74ea917818d4e09a7ffce8e486d54c5b5dbe9e6c44b261,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
62
+ large,dev,v0.0.27-alpha.1,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,5814602c6329237ab8ab42caba02bb39a4e69723ae19b062429a95f5bec6715217ae66b431e480bc877eb4f3415332b5,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,ea74c4d024d2732dfdf8c8ba240cb383df2cc198a72901f4d9a902caa0582f17,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
63
+ large,dev,v0.0.27-alpha.1,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,8cf0b4047ce95aa84e38049ff7c959b1cc062a50cea4dee141e6cdea8d59c59c78c55a5ad50fef025b7009b68e01fca9,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,ea74c4d024d2732dfdf8c8ba240cb383df2cc198a72901f4d9a902caa0582f17,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
64
+ large,prod,v0.0.27-alpha.1,1e305ac8284517f73ada985bfc9fded48b23ed091ba8149678bb10207fb470c7903d7a8ddffa5a7be2a60e349bb75b6e,5814602c6329237ab8ab42caba02bb39a4e69723ae19b062429a95f5bec6715217ae66b431e480bc877eb4f3415332b5,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,1d638b068bc6f9254e74ea917818d4e09a7ffce8e486d54c5b5dbe9e6c44b261,cb15e395fb189df263feb84049d0c37917d053ebf7bd688517bb76918ee1836898148d5051e43bb684d6ef25c4db67c0
65
+ large,prod,v0.0.27-alpha.1,ba87a347454466680bfd267446df89d8117c04ea9f28234dd3d84e1a8a957d5adaf02d4aa88433b559fb13bd40f0109e,8cf0b4047ce95aa84e38049ff7c959b1cc062a50cea4dee141e6cdea8d59c59c78c55a5ad50fef025b7009b68e01fca9,ec47f52ade4cac8b52bf17017779b393cbe9093ebcf44a422875c9a0e9639f624334088862575e23d226b5d225b5d764,398d93923bcd8f1c9df5ef0c04ee7c938427961f6118b47f65f64e7c00434750222e644b614e14251924f7694f3c7370,1d638b068bc6f9254e74ea917818d4e09a7ffce8e486d54c5b5dbe9e6c44b261,b60b27d5c6d7b89200deb0b560b33d357d00494d51f10f57647f21ac9d3b0e48ca33f01dde868bb21ce0a877fb0fca75
package/dist/agent.d.ts CHANGED
@@ -18,12 +18,18 @@ export declare function resolveAgent(agentId: number, chain: string): Promise<Ag
18
18
  * Discovers teequote and workload endpoints from the metadata, then runs
19
19
  * the full verification flow: TLS cert, CPU quote, TLS binding, GPU quote,
20
20
  * GPU binding, and workload verification.
21
+ *
22
+ * @param reloadAmdKds If true, bypass the local AMD KDS cache and re-fetch
23
+ * VCEK / cert chain / CRL. No effect on TDX agents.
21
24
  */
22
- export declare function verifyAgent(metadata: AgentMetadata): Promise<AttestationResult>;
25
+ export declare function verifyAgent(metadata: AgentMetadata, reloadAmdKds?: boolean): Promise<AttestationResult>;
23
26
  /**
24
27
  * End-to-end ERC-8004 agent verification.
25
28
  *
26
29
  * Resolves the agent's metadata from the on-chain registry, then runs
27
30
  * the full verification flow via verifyAgent.
31
+ *
32
+ * @param reloadAmdKds If true, bypass the local AMD KDS cache and re-fetch
33
+ * VCEK / cert chain / CRL. No effect on TDX agents.
28
34
  */
29
- export declare function checkAgent(agentId: number, chain: string): Promise<AttestationResult>;
35
+ export declare function checkAgent(agentId: number, chain: string, reloadAmdKds?: boolean): Promise<AttestationResult>;
package/dist/agent.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { ethers } from "ethers";
2
2
  import { getChainConfig, getRpcUrl } from "./chains.js";
3
- import { makeResult } from "./types.js";
3
+ import { makeResult, orderChecks } from "./types.js";
4
4
  import { checkCpuAttestation } from "./cpu.js";
5
5
  import { checkNvidiaGpuAttestation } from "./nvidia.js";
6
+ import { checkProofOfCloud } from "./proofOfCloud.js";
6
7
  import { verifyWorkload } from "./workload.js";
7
8
  import { extractDockerCompose, getTlsCertFingerprint } from "./url.js";
8
9
  const REGISTRY_ABI = [
@@ -129,8 +130,11 @@ export async function resolveAgent(agentId, chain) {
129
130
  * Discovers teequote and workload endpoints from the metadata, then runs
130
131
  * the full verification flow: TLS cert, CPU quote, TLS binding, GPU quote,
131
132
  * GPU binding, and workload verification.
133
+ *
134
+ * @param reloadAmdKds If true, bypass the local AMD KDS cache and re-fetch
135
+ * VCEK / cert chain / CRL. No effect on TDX agents.
132
136
  */
133
- export async function verifyAgent(metadata) {
137
+ export async function verifyAgent(metadata, reloadAmdKds = false) {
134
138
  const errors = [];
135
139
  const checks = {};
136
140
  const report = {};
@@ -142,13 +146,13 @@ export async function verifyAgent(metadata) {
142
146
  if (!hasTeeAttestation) {
143
147
  errors.push("Agent does not support tee-attestation");
144
148
  checks.metadata_valid = false;
145
- return makeResult("ERC-8004", { checks, report, errors });
149
+ return makeResult("ERC-8004", { checks: orderChecks(checks), report, errors });
146
150
  }
147
151
  const teequoteEndpoint = findTeequoteEndpoint(metadata.services);
148
152
  if (!teequoteEndpoint) {
149
153
  errors.push("No teequote service endpoint found in agent metadata");
150
154
  checks.metadata_valid = false;
151
- return makeResult("ERC-8004", { checks, report, errors });
155
+ return makeResult("ERC-8004", { checks: orderChecks(checks), report, errors });
152
156
  }
153
157
  checks.metadata_valid = true;
154
158
  // 2. Derive URLs
@@ -170,13 +174,13 @@ export async function verifyAgent(metadata) {
170
174
  let tlsFingerprint;
171
175
  try {
172
176
  tlsFingerprint = await getTlsCertFingerprint(host, port);
173
- checks.tls_cert_obtained = true;
177
+ checks.tls_cert_fetched = true;
174
178
  report.tls_fingerprint = tlsFingerprint.toString("hex");
175
179
  }
176
180
  catch (e) {
177
181
  errors.push(`Failed to get TLS certificate: ${e.message}`);
178
- checks.tls_cert_obtained = false;
179
- return makeResult("ERC-8004", { checks, report, errors });
182
+ checks.tls_cert_fetched = false;
183
+ return makeResult("ERC-8004", { checks: orderChecks(checks), report, errors });
180
184
  }
181
185
  // 4. Fetch and verify CPU quote
182
186
  let cpuData;
@@ -190,10 +194,10 @@ export async function verifyAgent(metadata) {
190
194
  catch (e) {
191
195
  errors.push(`Failed to fetch CPU quote: ${e.message}`);
192
196
  checks.cpu_quote_fetched = false;
193
- return makeResult("ERC-8004", { checks, report, errors });
197
+ return makeResult("ERC-8004", { checks: orderChecks(checks), report, errors });
194
198
  }
195
- const cpuResult = await checkCpuAttestation(cpuData);
196
- checks.cpu_attestation_valid = cpuResult.valid;
199
+ const cpuResult = await checkCpuAttestation(cpuData, "", reloadAmdKds);
200
+ checks.cpu_quote_verified = cpuResult.valid;
197
201
  report.cpu = cpuResult.report;
198
202
  report.cpu_type = cpuResult.attestationType;
199
203
  if (!cpuResult.valid)
@@ -202,14 +206,14 @@ export async function verifyAgent(metadata) {
202
206
  const reportDataHex = cpuResult.report.report_data ?? "";
203
207
  if (reportDataHex.length >= 64) {
204
208
  const firstHalf = reportDataHex.slice(0, 64);
205
- checks.tls_binding = firstHalf === tlsFingerprint.toString("hex");
206
- if (!checks.tls_binding) {
209
+ checks.tls_binding_verified = firstHalf === tlsFingerprint.toString("hex");
210
+ if (!checks.tls_binding_verified) {
207
211
  errors.push(`TLS binding failed: report_data first half (${firstHalf.slice(0, 16)}...) ` +
208
212
  `!= TLS fingerprint (${tlsFingerprint.toString("hex").slice(0, 16)}...)`);
209
213
  }
210
214
  }
211
215
  else {
212
- checks.tls_binding = false;
216
+ checks.tls_binding_verified = false;
213
217
  errors.push("report_data too short for TLS binding check");
214
218
  }
215
219
  // 6. GPU quote (optional)
@@ -237,7 +241,7 @@ export async function verifyAgent(metadata) {
237
241
  }
238
242
  if (gpuPresent) {
239
243
  const gpuResult = await checkNvidiaGpuAttestation(gpuData);
240
- checks.gpu_attestation_valid = gpuResult.valid;
244
+ checks.gpu_quote_verified = gpuResult.valid;
241
245
  report.gpu = gpuResult.report;
242
246
  if (!gpuResult.valid)
243
247
  errors.push(...gpuResult.errors);
@@ -245,14 +249,14 @@ export async function verifyAgent(metadata) {
245
249
  const gpuNonce = gpuJson.nonce ?? "";
246
250
  if (reportDataHex.length >= 128) {
247
251
  const secondHalf = reportDataHex.slice(64, 128);
248
- checks.gpu_binding = secondHalf === gpuNonce;
249
- if (!checks.gpu_binding) {
252
+ checks.gpu_binding_verified = secondHalf === gpuNonce;
253
+ if (!checks.gpu_binding_verified) {
250
254
  errors.push(`GPU binding failed: report_data second half (${secondHalf.slice(0, 16)}...) ` +
251
255
  `!= GPU nonce (${gpuNonce.slice(0, 16)}...)`);
252
256
  }
253
257
  }
254
258
  else {
255
- checks.gpu_binding = false;
259
+ checks.gpu_binding_verified = false;
256
260
  errors.push("report_data too short for GPU binding check");
257
261
  }
258
262
  }
@@ -264,7 +268,7 @@ export async function verifyAgent(metadata) {
264
268
  const dockerCompose = extractDockerCompose(await resp.text());
265
269
  checks.workload_fetched = true;
266
270
  const workloadResult = await verifyWorkload(cpuData, dockerCompose);
267
- checks.workload_verified = workloadResult.status === "authentic_match";
271
+ checks.workload_binding_verified = workloadResult.status === "authentic_match";
268
272
  report.workload = workloadResult;
269
273
  if (workloadResult.status === "authentic_mismatch") {
270
274
  errors.push("Workload mismatch: VM is authentic but docker-compose does not match");
@@ -277,21 +281,31 @@ export async function verifyAgent(metadata) {
277
281
  errors.push(`Failed to fetch workload: ${e.message}`);
278
282
  checks.workload_fetched = false;
279
283
  }
284
+ // 8. Proof of cloud: confirm the quote was produced on a Secret VM.
285
+ const pocResult = await checkProofOfCloud(cpuData);
286
+ checks.proof_of_cloud_verified = pocResult.valid;
287
+ if (pocResult.report.proof_of_cloud !== undefined) {
288
+ report.proof_of_cloud = pocResult.report.proof_of_cloud;
289
+ }
290
+ if (!pocResult.valid) {
291
+ errors.push(...pocResult.errors);
292
+ }
280
293
  // Overall validity
281
294
  const requiredChecks = [
282
295
  checks.metadata_valid,
283
- checks.tls_cert_obtained,
296
+ checks.tls_cert_fetched,
284
297
  checks.cpu_quote_fetched,
285
- checks.cpu_attestation_valid,
286
- checks.tls_binding,
287
- !!checks.workload_verified,
298
+ checks.cpu_quote_verified,
299
+ checks.tls_binding_verified,
300
+ !!checks.workload_binding_verified,
301
+ !!checks.proof_of_cloud_verified,
288
302
  ];
289
303
  if (gpuPresent) {
290
- requiredChecks.push(!!checks.gpu_attestation_valid);
291
- requiredChecks.push(!!checks.gpu_binding);
304
+ requiredChecks.push(!!checks.gpu_quote_verified);
305
+ requiredChecks.push(!!checks.gpu_binding_verified);
292
306
  }
293
307
  const valid = requiredChecks.every(Boolean);
294
- return makeResult("ERC-8004", { valid, checks, report, errors });
308
+ return makeResult("ERC-8004", { valid, checks: orderChecks(checks), report, errors });
295
309
  }
296
310
  // ---------------------------------------------------------------------------
297
311
  // Public: checkAgent
@@ -301,8 +315,11 @@ export async function verifyAgent(metadata) {
301
315
  *
302
316
  * Resolves the agent's metadata from the on-chain registry, then runs
303
317
  * the full verification flow via verifyAgent.
318
+ *
319
+ * @param reloadAmdKds If true, bypass the local AMD KDS cache and re-fetch
320
+ * VCEK / cert chain / CRL. No effect on TDX agents.
304
321
  */
305
- export async function checkAgent(agentId, chain) {
322
+ export async function checkAgent(agentId, chain, reloadAmdKds = false) {
306
323
  const errors = [];
307
324
  const checks = {};
308
325
  let metadata;
@@ -313,9 +330,9 @@ export async function checkAgent(agentId, chain) {
313
330
  catch (e) {
314
331
  errors.push(`Failed to resolve agent: ${e.message}`);
315
332
  checks.agent_resolved = false;
316
- return makeResult("ERC-8004", { checks, errors });
333
+ return makeResult("ERC-8004", { checks: orderChecks(checks), errors });
317
334
  }
318
- const result = await verifyAgent(metadata);
335
+ const result = await verifyAgent(metadata, reloadAmdKds);
319
336
  result.checks = { agent_resolved: true, ...result.checks };
320
337
  return result;
321
338
  }
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/amd.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import { AttestationResult } from "./types.js";
2
- export declare function checkSevCpuAttestation(dataOrUrl: string, product?: string): Promise<AttestationResult>;
2
+ export declare function checkSevCpuAttestation(dataOrUrl: string, product?: string, reloadAmdKds?: boolean): Promise<AttestationResult>;