libdpf/doc/pages/which_dpf.md
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

1.9 KiB

Which DPF?

Click a card. The next question appears under it, and the last card is a complete program. Each program is also a file under examples/mwe/ and compiles from the repository root:

c++ -std=c++17 -march=native -I include -I thirdparty examples/mwe/point.cpp

The same choices are listed as links under the cards. Types in full are on [Input types](@ref input_types) and [Output types](@ref output_types).

\htmlinclude mwe/chooser.html

  • A dealer knows alpha and beta. Two parties each get a key: [dpf::make_dpf](@ref dpf/incremental.hpp).
  • The parties already share alpha and want a reusable key: [dpf::make_dpf_doerner_shelat](@ref dpf/doerner_shelat.hpp).
  • The parties want the answer and no key: [dpf::geneval_point](@ref dpf/geneval.hpp), [dpf::geneval_interval](@ref dpf/geneval.hpp), [dpf::geneval_cmp](@ref dpf/geneval.hpp).
  • Three evaluators: [dpf::make_dpf3](@ref dpf/dpf3.hpp) and [dpf::make_dpf3_doerner_shelat](@ref dpf/dpf3_ds.hpp).
  • A Shamir secret for any threshold, not only (2,3): [shamir::deal](@ref dpf/shamir.hpp) and examples/mwe/shamir.cpp.
  • One point, a comparison, or a public interval: [dpf::gt](@ref dpf/dcf.hpp) and the other predicates, and [dpf::ic](@ref dpf/interval.hpp).
  • Many secret points: [dpf::make_multipoint](@ref dpf/multipoint.hpp).
  • A vector whose hidden coordinate is chosen after the commitment: [point-programmable vector commitments](@ref ppvc_manual).
  • Several lanes at one leaf: [dpf::vec](@ref dpf/vec.hpp).
  • A payload filled in later: [dpf::wildcard_value](@ref dpf/wildcard.hpp).
  • A proof the key is well formed: [dpf::verifiable](@ref dpf/verifiable.hpp).
  • A leaf share must enter a bit circuit the key does not compute: [b2y](@ref yao_leaf) and the netlist on that page. A comparison, an interval, or a public-offset polynomial stays a key.

The call index, with one line each, is the [API reference](@ref api_reference).