Files
corona/ct/dudect/run-submission.sh
zeekay 90e96df805 Tier A full closure (v0.7.0): EC theories admit 0/0 + Lean bridges + Jasmin CT + dudect harness + e2e/fuzz
- proofs/easycrypt/: 13 EC files mirroring Pulsar layout, admit budget 0/0 statically pinned by scripts/checks/ec-admits.sh
- proofs/lean-easycrypt-bridge.md: 5-axiom Lean ↔ EC bridge (lagrange_inverse_eval, threshold_partial_response_identity, reconstruct_linear, shamir_correct, add_share_zeroR)
- jasmin/{lib,rlwe,threshold}/: round1/round2/combine .jazz with #ct annotations
- ct/dudect/: Verify + Combine harness (arm64 + x86_64 build tags)
- scripts/check-high-assurance.sh + scripts/checks/{ec-admits,ec-regressions,ec-refinement-scaffold,ec-compile,jasmin,extraction}.sh + check-lean-bridge.sh
- AXIOM-INVENTORY: residual axioms enumerated with closure pathways
- CRYPTOGRAPHER-SIGN-OFF: APPROVED WITH ROADMAP GATES; GATE-1+2+3a CLOSED; GATE-3b (dudect 10⁹ pinned CPU) + GATE-4 (external audit) + GATE-5 (Jasmin extraction filling out byte-walk) roadmap v0.8.0

Tier label: Tier A full closure scaffold landed; matches Pulsar v1.0.7 posture (admit 0/0 + Lean bridges + Jasmin + dudect harness wired). The submission-grade dudect run + external audit are v0.8.0 audit-track items.
2026-05-19 08:38:09 -07:00

62 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Corona submission-grade dudect run.
#
# Runs the verify + combine harnesses with the full submission budget
# (10^9 samples per target). Designed for a quiet, CPU-pinned host
# (cpuset.cpus, governor=performance, no other workload).
#
# Mirrors ~/work/lux/pulsar/ct/dudect/run-submission.sh.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# Submission-grade budget.
SAMPLES_PER_BATCH="${SAMPLES_PER_BATCH:-1000000}"
MAX_BATCHES="${MAX_BATCHES:-1000}"
# Pre-flight checks.
if ! command -v make >/dev/null 2>&1; then
echo "==> make not found"
exit 1
fi
if [[ ! -f "dudect/src/dudect.h" ]]; then
echo "==> dudect.h missing -- running fetch.sh"
bash ./fetch.sh
fi
echo "==> Building harnesses"
make clean
make
# Run verify.
echo
echo "==> dudect_verify ($SAMPLES_PER_BATCH samples * $MAX_BATCHES batches)"
DUDECT_SAMPLES="$SAMPLES_PER_BATCH" DUDECT_MAX_BATCHES="$MAX_BATCHES" \
./dudect_verify 2>&1 | tee verify.log
verify_rc="${PIPESTATUS[0]}"
echo "==> dudect_verify exit code: $verify_rc"
# Run combine.
echo
echo "==> dudect_combine ($SAMPLES_PER_BATCH samples * $MAX_BATCHES batches)"
DUDECT_SAMPLES="$SAMPLES_PER_BATCH" DUDECT_MAX_BATCHES="$MAX_BATCHES" \
./dudect_combine 2>&1 | tee combine.log
combine_rc="${PIPESTATUS[0]}"
echo "==> dudect_combine exit code: $combine_rc"
echo
echo "==> SUMMARY"
echo " verify exit: $verify_rc (0 = no leakage evidence; 2 = leakage found)"
echo " combine exit: $combine_rc (0 = no leakage evidence; 2 = leakage found)"
echo
echo " Submission verdict: PASS only when BOTH exit 0."
# Exit non-zero if either failed.
if [[ "$verify_rc" -ne 0 || "$combine_rc" -ne 0 ]]; then
exit 2
fi
exit 0