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:
parent
695f8e84f7
commit
0d22946a0e
1835 changed files with 170291 additions and 2849 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue