Do not take our word for it. The module below reproduces Value X — the
application-identity half of LATTE's two-layer check — in this browser
session, against any commit of the repo. Click the button; the widget
walks v2/ via the GitHub tree API, hashes every file with
native crypto.subtle.digest('SHA-384'), and produces the
same 48-byte result bountynet build produces inside the TDX
runner.
Important distinction. This widget verifies Value X — the
application identity. It does not verify the silicon signature
chain against the vendor root CA (that requires ECDSA verification we
haven't yet ported to WASM). For the full platform check, run
cargo test --test hardware_regression locally, or
bountynet check against the live endpoint — both described
in section 2 below.
live lineage // archive & current head
archive // commit 2593db6 (ouroboros run)
58b663bbb60a906f29a2e5141c67a4a163271a9af24304e282bdbbbb8fb94fa5bc337dda323d37e7f78f429bcf80810c
↓
live // commit 8dd008e (current main)
f44f87e6f0965493ac6822dd89b155cb82758d6898751196f7892d12684fc49594fa3a8d7dc548d8496fe17597a32c20
Both values are real. The archive is the Value X the ouroboros CI run
produced at commit 2593db6, signed by Intel's TDX module and
committed byte-identically at v2/testdata/chain/tdx_ouroboros.cbor.
The live value is what the endpoint at https://34.45.143.81/
serves right now — different bytes because the tree advanced when
tdx_ouroboros.cbor was added to v2/testdata/chain/.
Same chain, same pinned root CA, two different commits. The widget
reproduces either one; the live endpoint serves the current one.
compute it in your browser
status:
idle
//
0 files
computed value x (sha384, 48 bytes):
full verification // 60 seconds locally
This is the flow that closes both halves of LATTE — application identity
AND platform signature. Clones the repo, loads real attestation bytes from
v2/testdata/chain/, and runs them through verify_platform_quote
which checks the binding AND walks the signature chain to the pinned
vendor root CA (Intel / AMD / AWS) for each platform. No TEE required on
your machine.
$ git clone https://github.com/maceip/bountynet-genesis
$ cd bountynet-genesis/v2
$ cargo test --test hardware_regression
running 7 tests
test snp_stage0_verifies ... ok
test all_three_platforms_share_no_cross_contamination ... ok
test tdx_stage0_verifies ... ok
test snp_stage1_verifies_and_chains_to_stage0 ... ok
test tdx_stage1_verifies_and_chains_to_stage0 ... ok
test nitro_stage0_verifies ... ok
test ouroboros_attestation_verifies ... ok
test result: ok. 7 passed; 0 failed
against the live endpoint
A self-hosted GCP TDX runner is serving an attested-TLS endpoint right now.
On every bountynet check invocation, the client pulls the leaf
cert, extracts the EAT CBOR from the X.509 extension at OID
2.23.133.5.4.9, verifies the TLS channel binding, verifies the
stage 1 TDX quote against Intel's pinned root, and walks
previous_attestation back to stage 0. No CA in the trust chain
— Intel's silicon is the root.
$ bountynet check https://34.45.143.81/
[bountynet] === attested-TLS check ===
[bountynet] Target: 34.45.143.81:443
[bountynet] Leaf cert: 17284 bytes DER
[bountynet] EAT extension: 16896 bytes
[bountynet] EAT profile: https://bountynet.dev/eat/v2
[bountynet] Platform: Some(Tdx)
[bountynet] Value X: f44f87e6f0965493ac6822dd89b155cb82758d6898751196f7892d12684fc49594fa3a8d7dc548d8496fe17597a32c20
[bountynet] SPKI binding: PASS
[bountynet] Quote binding: PASS
[bountynet] Quote signature: PASS
[bountynet] MRTD: 8370d8f6d02f2d13e211e91c93fde923049522b241425a29a7bf0071ef49b250af4ef49d852fa3e10065d1b51dfce8fb
[bountynet] Chain step 1: verifying previous stage (8436 bytes EAT)
[bountynet] ✓ step 1 quote verifies (Value X stable)
[bountynet] Chain: PASS (2 stage(s) walked)
[bountynet] === Check Complete ===
[bountynet] 34.45.143.81 is a genuine Tdx TEE running Value X f44f87e6f0965493