HDAA format SIMD rewrite
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 13.6k
- Forks
- 2.6k
- PR merge metrics
- No merged PRs in 30d
Description
Porting the HDAA format to BE SIMD has shown just how bad the code is for that format. The hash is multiple SIMD limbs long, and it varies.
It should be re-written using FLAT SIMD logic.
All of the raw2hex mess should be removed
The SIMD lengths should be sorted at start of crypt_all, so that we are not wasting calls into the hash function.
Likely if ported properly, it will be faster, AND should be pretty clean as far as it goes for porting the SIMD code to BE. Hopefully the entire porting will be an alter_endianity call in binary(), but since we are using flat model, we may not have to do ANY endianity clean up at all.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate the HDAA format implementation and its crypt_all, binary, raw2hex, and SIMD handling. Read how the current variable-length hash limbs are processed; done means the format uses FLAT SIMD logic, sorts SIMD lengths at crypt_all startup, removes the raw2hex path, and handles endianness correctly for BE SIMD.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- cryptography, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100