Skip to content

Argon2 on x86-64: prove reference-window counts and starts - #466

Merged
reaperhulk merged 7 commits into
mainfrom
argon2-reference-window
Oct 1, 2026
Merged

reaperhulk merged 7 commits into
mainfrom
argon2-reference-window

Conversation

@reaperhulk

@reaperhulk reaperhulk commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Argon2 reference blocks are selected from different chronological windows depending on the pass, slice, segment index and whether the reference is in the current lane. This adds internal x86-64 code and proofs for the two candidate counts, their selection, and the starting column of the window.

The selected count is proven equal to the reviewed referenceCount specification. The start is proven equal to the starting-column expression in reference. Branches depend on the public pass and slice; the same-lane test and zero-index adjustment use masks. The proofs cover termination, register preservation, memory preservation and execution-trace agreement, including agreement on the public starting-column result.

Builds on the memory initialization and reference-index arithmetic merged in #456 and #457. Changes are confined to Impl/ and Proof/; these helpers will be composed into the whole derive proof. Public APIs and emitted assembly are unchanged.

Validation: targeted Lean builds of ReferenceCount, ReferenceStart and ReferenceStartCT; direct standard-axiom, compiler-override and specification-origin audits; Lean import and proof-speed checks, architecture gates, variant propagation and git diff --check. CI runs the full repository checks.

Base automatically changed from argon2-memory-init to main October 1, 2026 14:21
@reaperhulk
reaperhulk added this pull request to the merge queue Oct 1, 2026
Merged via the queue into main with commit 03a241c Oct 1, 2026
31 checks passed
@reaperhulk
reaperhulk deleted the argon2-reference-window branch October 1, 2026 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant