v1.0.0-alpha.1
Pre-release
Pre-release
First tagged alpha of the 1.0 development line, pairing with emp-tool
v1.0.0-alpha.1. The 0.3.x line (tag 0.3.0 / branch v0.3.x) is
maintained separately and receives backported fixes.
Stability
- Pre-1.0 API: headers and names may change between alpha tags and
before the final1.0.0. Pin to a specific tag, and pin the paired
emp-tool tag. - CMake package metadata is numeric
1.0.0(project(VERSION)cannot
carry a prerelease suffix); the alpha status lives in the git tag.
Added
- Base OTs:
CO(semi-honest),CSW/PVW/BMM(malicious-secure);
BMMis post-quantum over ML-KEM-512 (Kyber) internals. - OT extensions (RCOT):
IKNP,SoftSpoken<k>,Ferret, and the
wire-freeSilentFerret. - Subfield-VOLE generators
F2kVOLE/FpVOLEover Ferret. - One streaming API (
begin/next/end,next_n,run) across
every extension, with always-onexpectinglifecycle / argument /
role contracts that surviveNDEBUG. - Per-build-directory auto-tuning of local scheduling knobs
(output- and wire-invariant; seedocs/performance-tuning.md). - Wire-trace framework:
trace_hash+ thetrace_hash_baselineCI gate
diff per-protocol digests against a checked-in baseline, so wire-format
changes cannot slip through silently.
Requirements
- emp-tool
v1.0.0-alpha.1(CMake floor1.0); OpenSSL ≥ 3.0;
CMake ≥ 3.21 (emp-tool needs ≥ 3.25).
Security
See the README's Security section. In particular: FpVOLE malicious
mode is not 128-bit sound (field p = 2⁶¹ − 1); the malicious OT
extensions realize selective-abort functionalities with streaming
outputs provisional until end(); and BMM is a custom construction
over ML-KEM-512 internals (not standardized FIPS-203). Research
software; no independent audit.
Known limitations
FpVOLEmalicious soundness is field-bounded (see Security above),
not 128-bit.- Auto-tuning covers local scheduling only; it never changes wire bytes
or outputs, and is per-build-directory — re-runtuneafter cloning a
build tree to a different machine (seedocs/performance-tuning.md).