@antseed/antseed-verifier 0.1.0 → 0.1.2

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 (67) hide show
  1. package/README.md +5 -3
  2. package/dist/antseed-node-types.d.ts +6 -0
  3. package/dist/antseed-node-types.d.ts.map +1 -1
  4. package/dist/approved-node-measurements.d.ts +33 -0
  5. package/dist/approved-node-measurements.d.ts.map +1 -0
  6. package/dist/approved-node-measurements.js +67 -0
  7. package/dist/approved-node-measurements.js.map +1 -0
  8. package/dist/approved-seller-images.d.ts +14 -0
  9. package/dist/approved-seller-images.d.ts.map +1 -0
  10. package/dist/approved-seller-images.js +9 -0
  11. package/dist/approved-seller-images.js.map +1 -0
  12. package/dist/capability.d.ts +5 -0
  13. package/dist/capability.d.ts.map +1 -1
  14. package/dist/capability.js.map +1 -1
  15. package/dist/caps/tee-tdx.d.ts +43 -17
  16. package/dist/caps/tee-tdx.d.ts.map +1 -1
  17. package/dist/caps/tee-tdx.js +158 -35
  18. package/dist/caps/tee-tdx.js.map +1 -1
  19. package/dist/collect/confidential-space.d.ts +12 -0
  20. package/dist/collect/confidential-space.d.ts.map +1 -0
  21. package/dist/collect/confidential-space.js +22 -0
  22. package/dist/collect/confidential-space.js.map +1 -0
  23. package/dist/collect/dstack.d.ts +10 -0
  24. package/dist/collect/dstack.d.ts.map +1 -1
  25. package/dist/collect/dstack.js +31 -26
  26. package/dist/collect/dstack.js.map +1 -1
  27. package/dist/collect/unix-http.d.ts +9 -0
  28. package/dist/collect/unix-http.d.ts.map +1 -0
  29. package/dist/collect/unix-http.js +21 -0
  30. package/dist/collect/unix-http.js.map +1 -0
  31. package/dist/confidential-space.d.ts +49 -0
  32. package/dist/confidential-space.d.ts.map +1 -0
  33. package/dist/confidential-space.js +93 -0
  34. package/dist/confidential-space.js.map +1 -0
  35. package/dist/dstack-app-compose.d.ts +38 -0
  36. package/dist/dstack-app-compose.d.ts.map +1 -0
  37. package/dist/dstack-app-compose.js +113 -0
  38. package/dist/dstack-app-compose.js.map +1 -0
  39. package/dist/dstack-event-log.d.ts +42 -0
  40. package/dist/dstack-event-log.d.ts.map +1 -0
  41. package/dist/dstack-event-log.js +87 -0
  42. package/dist/dstack-event-log.js.map +1 -0
  43. package/dist/prover.d.ts.map +1 -1
  44. package/dist/prover.js +17 -4
  45. package/dist/prover.js.map +1 -1
  46. package/dist/report-data.d.ts +3 -1
  47. package/dist/report-data.d.ts.map +1 -1
  48. package/dist/report-data.js +1 -0
  49. package/dist/report-data.js.map +1 -1
  50. package/dist/seller-config-rules.d.ts +43 -0
  51. package/dist/seller-config-rules.d.ts.map +1 -0
  52. package/dist/seller-config-rules.js +130 -0
  53. package/dist/seller-config-rules.js.map +1 -0
  54. package/dist/shared.d.ts +16 -2
  55. package/dist/shared.d.ts.map +1 -1
  56. package/dist/shared.js +21 -5
  57. package/dist/shared.js.map +1 -1
  58. package/dist/tcb-policy.d.ts +8 -0
  59. package/dist/tcb-policy.d.ts.map +1 -0
  60. package/dist/tcb-policy.js +14 -0
  61. package/dist/tcb-policy.js.map +1 -0
  62. package/dist/tee-provider-plugins.json +7 -0
  63. package/dist/verifier.d.ts +2 -1
  64. package/dist/verifier.d.ts.map +1 -1
  65. package/dist/verifier.js +10 -7
  66. package/dist/verifier.js.map +1 -1
  67. package/package.json +1 -1
package/README.md CHANGED
@@ -22,7 +22,7 @@ no provider-specific hosts or schemas, and it is self-contained (no peer depende
22
22
 
23
23
  | Capability | Proves | Verdict |
24
24
  |---|---|---|
25
- | `seller-node-tee-genuine` | the seller **node** runs in a genuine Intel TDX enclave (DCAP: PCK chain to Intel's root, acceptable TCB, TD10, debug off). The quote binds to this nonce + peerId | **required** |
25
+ | `seller-node-tee-genuine` | the seller **node** runs an approved seller build in a genuine Intel TDX enclave (DCAP: PCK chain to Intel's root, acceptable TCB, TD10, debug off; MRTD + RTMR0-2 are an approved dstack OS, and the app compose, authenticated by the compose hash replayed from the event log, runs an approved Antseed TEE seller image under the rules in `src/dstack-app-compose.ts`). The quote binds to this nonce + peerId + the buyer's encrypted connection. A passing node also reports `seller-node-upstreams`: the https origins its config sends prompts to. | **required** |
26
26
  | `seller-bound` | the seller's identity key signs the whole evidence bundle for this fresh nonce (the signer recovers to peerId) | **required** |
27
27
  | `seller-provider-tee-genuine` | the downstream inference **provider's** TEE is genuine TDX. It is also round-bound when the seller declares a `report_data` scheme | informational |
28
28
  | `seller-provider-gpu-cc` | the provider's GPUs run NVIDIA Confidential Computing (NVIDIA NRAS verifies it, nonce-bound) | informational |
@@ -40,7 +40,7 @@ The **prover** (seller) reads its config from the environment, never from buyer-
40
40
  |---|---|
41
41
  | `ANTSEED_TEE_PEER_ID` | the seller's peer id (EVM address, no `0x`) |
42
42
  | `ANTSEED_VERIFIER_SIGNING_KEY` | seller identity key (hex) for `seller-bound`. Disabled if its address ≠ peerId |
43
- | `ANTSEED_VERIFIER_NODE_TEE` | node quote source: `configfs` (default, bare-metal/GCP TDX), `dstack` (Phala and other dstack CVMs), or `http` |
43
+ | `ANTSEED_VERIFIER_NODE_TEE` | node quote source: `configfs` (default, bare-metal/GCP TDX), `dstack` (Phala and other dstack CVMs), `confidential-space` (a Google Confidential Space attestation token instead of a quote), or `http` |
44
44
  | `ANTSEED_VERIFIER_DSTACK_SOCKET` | override the dstack guest-agent socket path (default `/var/run/dstack.sock`) |
45
45
  | `ANTSEED_VERIFIER_PROVIDER_ADAPTER` | in-process provider adapter id (`chutes`, `aci`). It fetches provider evidence directly, no shim. See [CHUTES.md](./CHUTES.md) or [REDPILL.md](./REDPILL.md) |
46
46
  | `ANTSEED_VERIFIER_PROVIDER_EVIDENCE_URL` | generic provider evidence route (`{nonce}` → hex nonce). The manual alternative to an adapter |
@@ -55,6 +55,8 @@ The **buyer** needs no special hardware. Optional policy knobs:
55
55
  | Variable | Purpose |
56
56
  |---|---|
57
57
  | `ANTSEED_VERIFIER_REQUIRED_CAPS` | comma-separated capabilities that gate the overall `ok` (default `seller-node-tee-genuine,seller-bound`). For example, a provenance buyer sets `seller-provider-tee-genuine,seller-bound` to require the downstream provider's TEE |
58
+ | `ANTSEED_VERIFIER_CS_JWKS_URL` | buyer: override Google's Confidential Space token signing keys URL |
59
+ | `ANTSEED_VERIFIER_NODE_BUILDS` | buyer: extra approved dstack OS releases and seller images, JSON `{ "os": [{ name, mrtd, rtmr0, rtmr1, rtmr2 }], "images": [{ version, digest }] }` (inline or `@/path/to/file.json`), added to the built-in lists |
58
60
  | `ANTSEED_VERIFIER_MEASURED_IMAGE_POLICY` | approved-measurement allow-list (inline JSON or `@/path.json`) for `measured-image` |
59
61
  | `ANTSEED_VERIFIER_STRICT_TCB` | `true` requires TCB exactly `UpToDate` (default also accepts `SWHardeningNeeded`) |
60
62
  | `ANTSEED_VERIFIER_NRAS_URL` / `_NRAS_JWKS_URL` | override NVIDIA NRAS endpoints for `gpu-cc` |
@@ -83,4 +85,4 @@ scheme unchanged. Full setup: [CHUTES.md](./CHUTES.md) · [REDPILL.md](./REDPILL
83
85
 
84
86
  ---
85
87
 
86
- `v0.1.0` · GPL-3.0
88
+ `v0.1.1` · GPL-3.0
@@ -32,6 +32,12 @@ export interface SellerResponse {
32
32
  statusCode: number;
33
33
  headers: Record<string, string>;
34
34
  body: Uint8Array;
35
+ /**
36
+ * Buyer-local, never sent by the seller: hex session hash of the buyer's encrypted connection
37
+ * that carried this response. The seller node passes its side of it to the prover in the
38
+ * x-antseed-channel-binding request header.
39
+ */
40
+ channelBinding?: string;
35
41
  }
36
42
  export interface VerifyContext {
37
43
  peerId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"antseed-node-types.d.ts","sourceRoot":"","sources":["../src/antseed-node-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5D,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,uCAAuC;AACvC,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CACjE;AAED,gFAAgF;AAChF,MAAM,WAAW,MAAO,SAAQ,iBAAiB;IAC/C,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CACpE"}
1
+ {"version":3,"file":"antseed-node-types.d.ts","sourceRoot":"","sources":["../src/antseed-node-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5D,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,uCAAuC;AACvC,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CACjE;AAED,gFAAgF;AAChF,MAAM,WAAW,MAAO,SAAQ,iBAAiB;IAC/C,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CACpE"}
@@ -0,0 +1,33 @@
1
+ import { type ApprovedSellerImage } from './approved-seller-images.js';
2
+ export type { ApprovedSellerImage } from './approved-seller-images.js';
3
+ /**
4
+ * What a seller node quote must match for the seller-node-tee-genuine claim, so the buyer knows
5
+ * which reviewed software handles its prompts, not just that the hardware is genuine. A seller
6
+ * node runs Antseed's TEE seller image (deploy/tee-seller) as a dstack (Phala) app:
7
+ * - the CVM's OS (MRTD and RTMR0-2: firmware, VM shape, kernel, boot config, root filesystem)
8
+ * is a released dstack production image listed in `os`;
9
+ * - the app compose (measured into RTMR3 as its hash) runs one of the `images` and passes the
10
+ * compose rules in dstack-app-compose.ts, which keep every setting that decides where
11
+ * prompts go readable by the buyer.
12
+ */
13
+ export interface ApprovedDstackOs {
14
+ /** dstack release and VM shape (RTMR0 depends on the vCPU and memory size); shown in claim details. */
15
+ name: string;
16
+ mrtd: string;
17
+ rtmr0: string;
18
+ rtmr1: string;
19
+ rtmr2: string;
20
+ }
21
+ export interface ApprovedNodeBuilds {
22
+ os: readonly ApprovedDstackOs[];
23
+ images: readonly ApprovedSellerImage[];
24
+ }
25
+ /** dstack production OS images, one entry per release and VM shape. */
26
+ export declare const APPROVED_DSTACK_OS: readonly ApprovedDstackOs[];
27
+ /**
28
+ * The approved builds plus a buyer's own additions from ANTSEED_VERIFIER_NODE_BUILDS: JSON
29
+ * `{ "os": [...], "images": [...] }`, inline or "@/path/to/file.json". Additions only widen what
30
+ * this buyer accepts; malformed entries are ignored.
31
+ */
32
+ export declare function readApprovedNodeBuilds(): ApprovedNodeBuilds;
33
+ //# sourceMappingURL=approved-node-measurements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approved-node-measurements.d.ts","sourceRoot":"","sources":["../src/approved-node-measurements.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAE9F,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uGAAuG;IACvG,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC/B,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAA;CACvC;AAwBD,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAIvD,CAAA;AAiBH;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,kBAAkB,CAe3D"}
@@ -0,0 +1,67 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { APPROVED_SELLER_IMAGES } from './approved-seller-images.js';
3
+ /**
4
+ * dstack 0.6.1 production OS (https://github.com/Dstack-TEE/dstack/releases/tag/mkosi-os-v0.6.1,
5
+ * os_image_hash ec43cb8c5e04b6bb6c53b33b16076a01d83d01f7f4b703f2f78a0d947d6247e6) on Phala Cloud's
6
+ * CPU instance types. Computed with `dstack-mr measure -c <vcpus> -m <memory>G --qemu-version 8.2.2
7
+ * --hotplug-off false` (dstack v0.6.1) from the release's measurement bundle; Phala Cloud's hosts run
8
+ * that QEMU with hotplug on. MRTD, RTMR1 and RTMR2 are the same for every shape.
9
+ */
10
+ const DSTACK_0_6_1 = {
11
+ mrtd: '2a674327c50218dba880066b349b8d559d749ed68dce33fd651c184a877d084b07a9e583767a7ad5da13ed91deec2b70',
12
+ rtmr1: '89ef86c5125b986c325f0a94acfa87718a4ef3a4d4f237dbb72dda3cf777fd2c054555fb4407eb53338d7d67329a7333',
13
+ rtmr2: 'e9000e338f33233e8f51b7fd031e1c158bdcf8572eab041c0bc8eb7fef48b23259a6a556e6c8e2af99999fc39c793179',
14
+ };
15
+ const DSTACK_0_6_1_RTMR0 = [
16
+ ['tdx.small', 1, 2, '68102e7b524af310f7b7d426ce75481e36c40f5d513a9009c046e9d37e31551f0134d954b496a3357fd61d03f07ffe96'],
17
+ ['tdx.medium', 2, 4, '027b610ab0555482f8a3868524093bdf3cdbe2539f81dfeeb886864654cb2fe3422f7fc36d4bab6fa46683aad11d1ba7'],
18
+ ['tdx.large', 4, 8, 'fb14dc139f33d6fcf474bc8332cac001259fb31cfbcb6b34d4ceeb552a2c4466884a0cbde45ad98a05c5c060c23ad65a'],
19
+ ['tdx.xlarge', 8, 16, 'ec216f1d1d591468ff4741b9b192f016b26d3f90303bfa9dbb97557273853183981f21a4bcb3ae908247538d371ad072'],
20
+ ['tdx.2xlarge', 16, 32, 'd6118f0eeb30e9d9178d2b9106dddd002d979b6fa79bdec415051afae2021384c29a32d2f6454fa369617598378ffb5e'],
21
+ ['tdx.4xlarge', 32, 64, '55b9b0d73279fd2079274371e639b70161a69447b6b07f7b5266f0b8a47fd1e527fca30338879b47ac18d9bf66022e5c'],
22
+ ['tdx.8xlarge', 64, 128, 'de03721065571be16e3ccbb76dacdc86a6dfb35255480dfc97932995c5d0973b6f0b6b7b9f8e88b838d72bc75e8a287c'],
23
+ ];
24
+ /** dstack production OS images, one entry per release and VM shape. */
25
+ export const APPROVED_DSTACK_OS = DSTACK_0_6_1_RTMR0.map(([shape, vcpus, memoryGiB, rtmr0]) => ({
26
+ name: `dstack 0.6.1 (${shape}, ${vcpus} vCPU, ${memoryGiB} GiB)`,
27
+ ...DSTACK_0_6_1,
28
+ rtmr0,
29
+ }));
30
+ const MEASUREMENT_FIELDS = ['mrtd', 'rtmr0', 'rtmr1', 'rtmr2'];
31
+ const isMeasurement = (v) => typeof v === 'string' && /^[0-9a-fA-F]{96}$/.test(v);
32
+ function isApprovedDstackOs(m) {
33
+ if (!m || typeof m !== 'object')
34
+ return false;
35
+ const e = m;
36
+ return typeof e['name'] === 'string' && MEASUREMENT_FIELDS.every((f) => isMeasurement(e[f]));
37
+ }
38
+ function isApprovedSellerImage(m) {
39
+ if (!m || typeof m !== 'object')
40
+ return false;
41
+ const e = m;
42
+ return typeof e['version'] === 'string' && typeof e['digest'] === 'string' && /^sha256:[0-9a-f]{64}$/.test(e['digest']);
43
+ }
44
+ /**
45
+ * The approved builds plus a buyer's own additions from ANTSEED_VERIFIER_NODE_BUILDS: JSON
46
+ * `{ "os": [...], "images": [...] }`, inline or "@/path/to/file.json". Additions only widen what
47
+ * this buyer accepts; malformed entries are ignored.
48
+ */
49
+ export function readApprovedNodeBuilds() {
50
+ const builds = { os: [...APPROVED_DSTACK_OS], images: [...APPROVED_SELLER_IMAGES] };
51
+ const raw = process.env['ANTSEED_VERIFIER_NODE_BUILDS']?.trim();
52
+ if (!raw)
53
+ return builds;
54
+ try {
55
+ const parsed = JSON.parse(raw.startsWith('@') ? readFileSync(raw.slice(1), 'utf8') : raw);
56
+ const list = (key) => (Array.isArray(parsed?.[key]) ? parsed[key] : []);
57
+ return {
58
+ os: [...builds.os, ...list('os').filter(isApprovedDstackOs)],
59
+ images: [...builds.images, ...list('images').filter(isApprovedSellerImage)],
60
+ };
61
+ }
62
+ catch (err) {
63
+ process.stderr.write(`[verifier] ignoring ANTSEED_VERIFIER_NODE_BUILDS: ${err instanceof Error ? err.message : String(err)}\n`);
64
+ return builds;
65
+ }
66
+ }
67
+ //# sourceMappingURL=approved-node-measurements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approved-node-measurements.js","sourceRoot":"","sources":["../src/approved-node-measurements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** A released Antseed TEE seller image (ghcr.io/antseed/tee-seller), by manifest digest. */
2
+ export interface ApprovedSellerImage {
3
+ /** The @antseed/cli version the image runs; shown in claim details. */
4
+ version: string;
5
+ /** "sha256:<64 hex>" */
6
+ digest: string;
7
+ }
8
+ /**
9
+ * Antseed TEE seller images built by the "Publish TEE seller image" workflow from a locked
10
+ * deploy/tee-seller commit. The workflow opens the pull request that adds each new image here
11
+ * (deploy/tee-seller/approve-image.mjs); keep one entry per line.
12
+ */
13
+ export declare const APPROVED_SELLER_IMAGES: readonly ApprovedSellerImage[];
14
+ //# sourceMappingURL=approved-seller-images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approved-seller-images.d.ts","sourceRoot":"","sources":["../src/approved-seller-images.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAEhE,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Antseed TEE seller images built by the "Publish TEE seller image" workflow from a locked
3
+ * deploy/tee-seller commit. The workflow opens the pull request that adds each new image here
4
+ * (deploy/tee-seller/approve-image.mjs); keep one entry per line.
5
+ */
6
+ export const APPROVED_SELLER_IMAGES = [
7
+ { version: '0.1.234', digest: 'sha256:74972a3ce21531fcfc4bdd48a3cac95d20afe39f234cb7c472fae2e004e605bc' },
8
+ ];
9
+ //# sourceMappingURL=approved-seller-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approved-seller-images.js","sourceRoot":"","sources":["../src/approved-seller-images.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,yEAAyE,EAAE;CAC1G,CAAA"}
@@ -21,6 +21,11 @@ export interface CapabilityVerifyInput {
21
21
  parsedQuote?: unknown;
22
22
  /** Buyer policy for this capability (e.g. approved measurements). Data, never fetched. */
23
23
  policy?: unknown;
24
+ /**
25
+ * Session hash of the buyer's own connection that carried this round (64 hex), when the
26
+ * buyer's node has one. The node cap requires its quote to commit to it.
27
+ */
28
+ channelBinding?: string;
24
29
  /**
25
30
  * The full per-cap evidence map returned this round. seller-bound digests it (minus its
26
31
  * own entry) to verify one seller signature covers the entire bundle.
@@ -1 +1 @@
1
- {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,KAAK,EAAE,UAAU,CAAA;IACjB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAC5C;AAED,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,sFAAsF;IACtF,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,kGAAkG;IAClG,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,CAAA;IACxG,4FAA4F;IAC5F,OAAO,CAAC,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC7D;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAExD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE;AAED,wBAAgB,gBAAgB,IAAI,UAAU,EAAE,CAE/C;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,KAAK,EAAE,UAAU,CAAA;IACjB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAC5C;AAED,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,sFAAsF;IACtF,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,kGAAkG;IAClG,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,CAAA;IACxG,4FAA4F;IAC5F,OAAO,CAAC,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC7D;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAExD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE;AAED,wBAAgB,gBAAgB,IAAI,UAAU,EAAE,CAE/C;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAkDA,sFAAsF;AACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAA;AAE9C,MAAM,UAAU,kBAAkB,CAAC,GAAe;IAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAuDA,sFAAsF;AACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAA;AAE9C,MAAM,UAAU,kBAAkB,CAAC,GAAe;IAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7B,CAAC"}
@@ -1,9 +1,12 @@
1
1
  import type { Capability } from '../capability.js';
2
+ import { type DstackEvent } from '../dstack-event-log.js';
2
3
  import { type BindingIngredients } from '../report-data.js';
4
+ import type { JWTPayload } from 'jose';
5
+ import { type VerifyConfidentialSpaceTokenFn } from '../confidential-space.js';
3
6
  /** A provider quote's declared report_data binding: a frozen scheme id + its string ingredients. */
4
7
  export interface ReportDataBinding {
5
8
  scheme: string;
6
- ingredients: Pick<BindingIngredients, 'peerId' | 'e2ePubkey' | 'keysetDigest'>;
9
+ ingredients: Pick<BindingIngredients, 'peerId' | 'e2ePubkey' | 'keysetDigest' | 'channelBinding'>;
7
10
  }
8
11
  /**
9
12
  * A genuine-Intel-TDX capability: proves a party runs in a genuine Intel TDX enclave.
@@ -21,19 +24,18 @@ export interface ReportDataBinding {
21
24
  export declare const NODE_TEE_CAP_ID = "seller-node-tee-genuine";
22
25
  /** The downstream inference provider's TEE (quote fetched from the provider's evidence route). */
23
26
  export declare const PROVIDER_TEE_CAP_ID = "seller-provider-tee-genuine";
27
+ /**
28
+ * Reported with a passing seller node claim: the https origins its measured config forwards
29
+ * prompts to, comma-separated. It describes the node claim and has no evidence of its own.
30
+ */
31
+ export declare const NODE_UPSTREAMS_CLAIM = "seller-node-upstreams";
24
32
  /**
25
33
  * Config-key convention: each TDX cap reads its own collector settings from `<capId>.<key>`
26
34
  * in the shared config map, so the node cap and the provider cap never collide. It lives in
27
35
  * one place, so the prover writes the same keys the factory reads.
28
36
  */
29
37
  export declare function tdxConfigKey(id: string, key: string): string;
30
- /**
31
- * TCB acceptance. UpToDate is always genuine hardware. SWHardeningNeeded flags guest-side
32
- * software mitigations only — not a hardware compromise — and is accepted by default (real
33
- * GCP TDX quotes often report it). Set ANTSEED_VERIFIER_STRICT_TCB=true to require UpToDate
34
- * exactly. Anything else (OutOfDate, Revoked, Unknown, ...) is rejected.
35
- */
36
- export declare function isTcbAcceptable(status: string): boolean;
38
+ export { isTcbAcceptable } from '../tcb-policy.js';
37
39
  /** Authenticated TD10 measurements, extracted from a verified quote. */
38
40
  export interface TdMeasurements {
39
41
  mrTd: Uint8Array;
@@ -64,14 +66,34 @@ export interface ParsedTdxQuote {
64
66
  td: TdMeasurements | null;
65
67
  /** The provider-declared report_data binding, if the evidence carried one. */
66
68
  binding?: ReportDataBinding;
67
- /** Set when DCAP verification or evidence decoding threw. */
69
+ /** dstack RTMR3 event log, if the evidence carried one. */
70
+ eventLog?: DstackEvent[];
71
+ /** dstack app-compose.json, if the evidence carried one. */
72
+ appCompose?: string;
73
+ /** Claims of a verified Google Confidential Space token, when the evidence was one instead of a quote. */
74
+ confidentialSpace?: JWTPayload;
75
+ /** Set when DCAP or token verification, or evidence decoding, threw. */
68
76
  error?: string;
69
77
  }
70
- export declare function encodeTeeTdxEvidence(quote: Uint8Array, collateral?: unknown, binding?: ReportDataBinding): Uint8Array;
71
- export declare function decodeTeeTdxEvidence(bytes: Uint8Array): {
72
- quote: Uint8Array;
78
+ /** Node evidence from Google Confidential Space: Google's signed attestation token in place of a quote. */
79
+ export declare function encodeConfidentialSpaceEvidence(token: string): Uint8Array;
80
+ /**
81
+ * tee-tdx evidence blob: the raw quote (b64), optional DCAP collateral and binding, and on dstack
82
+ * the RTMR3 event log and app-compose.json.
83
+ */
84
+ interface TeeTdxEvidence {
85
+ quote: string;
73
86
  collateral?: unknown;
74
87
  binding?: ReportDataBinding;
88
+ eventLog?: DstackEvent[];
89
+ appCompose?: string;
90
+ }
91
+ export declare function encodeTeeTdxEvidence(quote: Uint8Array, collateral?: unknown, binding?: ReportDataBinding, dstack?: {
92
+ eventLog?: DstackEvent[];
93
+ appCompose?: string;
94
+ }): Uint8Array;
95
+ export declare function decodeTeeTdxEvidence(bytes: Uint8Array): Omit<TeeTdxEvidence, 'quote'> & {
96
+ quote: Uint8Array;
75
97
  };
76
98
  /**
77
99
  * Default DCAP verifier: it validates the quote's ECDSA signature + PCK cert chain to
@@ -85,22 +107,26 @@ export declare const defaultVerifyQuote: VerifyQuoteFn;
85
107
  * decode or verify errors are captured in `error`, so dependent caps still see the raw
86
108
  * `quoteEvidence` bytes (seller-bound only needs those to bind identity to the quote).
87
109
  */
88
- export declare function verifyTdxEvidence(evidence: Uint8Array, verifyQuote: VerifyQuoteFn, nowSecs: number): Promise<ParsedTdxQuote>;
110
+ export declare function verifyTdxEvidence(evidence: Uint8Array, verifyQuote: VerifyQuoteFn, nowSecs: number, verifyConfidentialSpaceToken?: VerifyConfidentialSpaceTokenFn): Promise<ParsedTdxQuote>;
89
111
  /**
90
112
  * Mint one TDX capability. `id` names the target (node or provider); `defaultSource`
91
113
  * is the collector used when config supplies no `<id>.source` override:
92
- * 'configfs': self-hosted TDX minted locally via configfs-tsm; report_data = antseed-rd-v1 {peerId}
114
+ * 'configfs': self-hosted TDX minted locally via configfs-tsm; report_data = antseed-rd-v1
115
+ * {peerId, channelBinding} for seller-node attestations
93
116
  * 'dstack' : self-hosted TDX minted via the dstack guest-agent socket (Phala CVMs, where
94
- * configfs-tsm is absent); same antseed-rd-v1 {peerId} report_data as configfs
117
+ * configfs-tsm is absent); the same binding, plus the event log and app compose
95
118
  * 'http' : a pre-made quote fetched from a config-supplied evidence route ({nonce} hex)
96
119
  * verify reads this cap's own parsed quote (the orchestrator DCAP-verifies each cap's
97
120
  * own evidence entry independently). collect throws when its source is unavailable
98
121
  * (off-TEE for configfs, or no url for http), so the prover omits the cap.
99
122
  */
100
123
  export declare function makeTdxCap(id: string, defaultSource: 'configfs' | 'http', opts?: {
101
- bindNoncePeerId?: boolean;
124
+ sellerNode?: boolean;
102
125
  }): Capability;
103
- /** The AntSeed seller node's own TEE — mints its quote locally via configfs; report_data bound to nonce+peerId. */
126
+ /**
127
+ * The AntSeed seller node's own TEE — mints its quote locally via configfs; report_data bound to
128
+ * nonce + peerId + the buyer's connection, and the TD measurement must be an approved build.
129
+ */
104
130
  export declare const nodeTeeCapability: Capability;
105
131
  /** The downstream inference provider's TEE — quote fetched from the provider's evidence route. */
106
132
  export declare const providerTeeCapability: Capability;
@@ -1 +1 @@
1
- {"version":3,"file":"tee-tdx.d.ts","sourceRoot":"","sources":["../../src/caps/tee-tdx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAiD,MAAM,kBAAkB,CAAA;AAKjG,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE1F,oGAAoG;AACpG,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAC,CAAA;CAC/E;AAED;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,eAAO,MAAM,eAAe,4BAA4B,CAAA;AACxD,kGAAkG;AAClG,eAAO,MAAM,mBAAmB,gCAAgC,CAAA;AAEhE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,gEAAgE;IAChE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CACtB;AAED,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,cAAc,GAAG,IAAI,CAAA;CAC1B;AAED,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,UAAU,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,cAAc,GAAG,IAAI,CAAA;IACzB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AASD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAOrH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAchI;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAqBhC,CAAA;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,UAAU,EACpB,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC,CAezB;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,UAAU,GAAG,MAAM,EAClC,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC,UAAU,CAgEZ;AAED,mHAAmH;AACnH,eAAO,MAAM,iBAAiB,YAAqE,CAAA;AACnG,kGAAkG;AAClG,eAAO,MAAM,qBAAqB,YAA0C,CAAA"}
1
+ {"version":3,"file":"tee-tdx.d.ts","sourceRoot":"","sources":["../../src/caps/tee-tdx.ts"],"names":[],"mappings":"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"}