Skip to content

Add FIPS SHA3-256 and complete selected-file CSV/XLSX reports - #44

Open
bellabaelfire wants to merge 2 commits into
amithmandassociates-oss:mainfrom
bellabaelfire:feat/fips-sha3-reports
Open

Add FIPS SHA3-256 and complete selected-file CSV/XLSX reports#44
bellabaelfire wants to merge 2 commits into
amithmandassociates-oss:mainfrom
bellabaelfire:feat/fips-sha3-reports

Conversation

@bellabaelfire

@bellabaelfire bellabaelfire commented Sep 8, 2026

Copy link
Copy Markdown

Adds SHA3-256 to the evidence table, System Console, and all report paths for #2. Selected PDF/JPG/other evidence files can now be exported to Hash CSV and a genuine .xlsx workbook; the existing Email CSV remains available. PDF, DOCX and email PDF include the same SHA3-256 digest. Exports reject pending or failed hashes, and a read failure no longer strands later files in the queue.

Because the issue explicitly calls for FIPS 202, this uses pinned MIT js-sha3 rather than CryptoJS.SHA3: CryptoJS documents its Keccak naming mismatch, and js-sha3 exposes SHA3 and Keccak separately. Existing MD5/SHA-256 stay on CryptoJS. Pinned SheetJS CE generates actual XLSX files; the vendored libraries include licenses. Whole-file/main-thread processing remains an inherited limitation.

Validation on Windows, Node 24.19.0 and headless Microsoft Edge:

  • 18 Node tests pass, including known answers and Node/OpenSSL comparisons for binary lengths around sponge-block boundaries through 1 MiB.
  • A delayed-read regression verifies that Email CSV row numbers, quoted subjects and hashes stay aligned when reads finish out of order; it fails before the follow-up fix and passes afterward.
  • Real uploads and six browser downloads pass; CSV/XLSX readback verifies exact digests, filename escaping and selection exclusion. Simulated pending and failed reads verify export guards and queue continuation.
  • Independent pypdf and DOCX XML extraction verifies FIPS labels and exact expected hashes in both downloaded PDFs and Word output.
  • Desktop and 390px table screenshots reviewed; SHA3 digests wrap in the table. Existing top-links header overflow on narrow screens is outside this change.
  • Whitespace checked with git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol diff --check, preserving the original CRLF HTML file.

Reproduction commands and limitations are in TESTING.md.

Resolves #2.

/claim #2

Bounty listing: https://algora.io/amithmandassociates-oss/hash-report-tool/issues/2

@bellabaelfire

Copy link
Copy Markdown
Author

/claim #2

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.

Add SHA-3 (Keccak) Hashing Support

1 participant