Skip to content

SHA-3 code changes for verification#1482

Open
karthikbhargavan wants to merge 1 commit into
pr2-intrinsicsfrom
pr4-sha3-impl
Open

SHA-3 code changes for verification#1482
karthikbhargavan wants to merge 1 commit into
pr2-intrinsicsfrom
pr4-sha3-impl

Conversation

@karthikbhargavan

@karthikbhargavan karthikbhargavan commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

This PR includes some code refactorings we had to do to simplify the proofs for SHA-3, specifically to avoid individual code+proof files from getting too big.

[skip changelog]

Reorganize the NEON (arm64) and AVX2 SIMD backends from monolithic
files into per-concern submodules:

  simd/arm64.rs -> simd/arm64/{wrappers,load,store}.rs  (+ mod shim)
  simd/avx2.rs  -> simd/avx2/{wrappers,load,store}.rs   (+ mod shim)

- wrappers: math wrappers + the KeccakItem<N> impl (and the arm64
  `uint64x2_t` type alias, re-exported from the shim).
- load:     load_block, load_last, and the Absorb<N> impl.
- store:    store_block and the Squeeze{2,4} impl.

Pure code move: function bodies are unchanged. The SIMD backends are
excluded from the portable hax extraction, so the F* extraction is
byte-for-byte identical and the sha3-hax CI (extract/lax/type-check)
is unaffected.
@karthikbhargavan karthikbhargavan requested a review from a team as a code owner June 18, 2026 07:37
@karthikbhargavan karthikbhargavan changed the base branch from main to pr2-intrinsics June 18, 2026 07:38

@franziskuskiefer franziskuskiefer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants