libdpf/include/dpf/revealing.hpp
Ryan Henry 0d22946a0e 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>
2026-09-28 05:59:19 -06:00

32 lines
1.2 KiB
C++

/// @file dpf/revealing.hpp
/// @brief Conversions that still publish more than a masked opening.
/// @details Paths with a semi-honest alternative have been removed
/// (`a2b_party` / opened edaBit bits, wrap-from-clear-bits).
/// What remains is flagged because the algorithm itself publishes it.
#ifndef LIBDPF_INCLUDE_DPF_REVEALING_HPP__
#define LIBDPF_INCLUDE_DPF_REVEALING_HPP__
namespace dpf
{
namespace revealing
{
/// @brief Leaks with no drop-in replacement in this tree.
/// @details
/// - `share_cmp::div_party_pair` publishes `floor(log2(den))` so Newton can
/// normalize. A magnitude-hiding division needs a different iteration.
/// - `prep::setup_2pc_sampled` lets party 0 sample both prep views and send
/// one. That is not OT extension; party 0 learns the correlation. Use
/// `prep::deal_views` when a third party can write the two views.
inline constexpr const char * known[] = {
"share_cmp::div_party_pair publishes floor(log2(denominator))",
"prep::setup_2pc_sampled: party 0 samples both views (not OT extension)",
};
inline constexpr unsigned known_count =
sizeof(known) / sizeof(known[0]);
} // namespace revealing
} // namespace dpf
#endif