Checkpoint the party/runtime stack before share-program and malicious-mode work.

Ship the TLS mesh, composer, Beaver/Yao/leaf MPC, prep/online paths, apps, and docs so the tree is pushable before elevating share_expr, security_mode, and prep resume.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ryan Henry 2026-09-28 05:59:19 -06:00
parent 695f8e84f7
commit 0d22946a0e
1835 changed files with 170291 additions and 2849 deletions

View file

@ -320,3 +320,36 @@ TEST(HalfTree, IncrementalPlacementSmoke)
EXPECT_EQ(got, q == alpha ? uint8_t{7} : uint8_t{0}) << i;
}
}
TEST(HalfTree, VerifiableFullDomainDetectsSeedTamper)
{
using in_t = std::uint8_t;
using out_t = std::uint16_t;
const in_t alpha = 0;
const out_t beta = 0x1111;
auto [k0, k1] = dpf::make_dpf<ht_prg, leaf_prg>(alpha, beta, dpf::verifiable{});
EXPECT_TRUE(std::decay_t<decltype(k0)>::tree::is_half_tree);
for (int i = 0; i < 256; ++i)
{
const in_t q = static_cast<in_t>(i);
dpf::proof_token a{}, b{};
const out_t got = recon(*dpf::eval_point(k0, q, dpf::prove(a)),
*dpf::eval_point(k1, q, dpf::prove(b)));
EXPECT_EQ(got, q == alpha ? beta : out_t{}) << i;
EXPECT_TRUE(dpf::verify(a, b)) << i;
}
for (auto & cs : const_cast<typename std::decay_t<decltype(k0)>::correction_seeds_array &>(
k0.correction_seeds()))
cs[0] = simde_mm_xor_si128(cs[0], simde_mm_set1_epi8(1));
int rejected = 0;
for (int i = 0; i < 256; ++i)
{
const in_t q = static_cast<in_t>(i);
dpf::proof_token a{}, b{};
(void)*dpf::eval_point(k0, q, dpf::prove(a));
(void)*dpf::eval_point(k1, q, dpf::prove(b));
if (!dpf::verify(a, b))
++rejected;
}
EXPECT_GT(rejected, 0);
}