Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JH #74

Closed
wants to merge 26 commits into from
Closed

JH #74

wants to merge 26 commits into from

Conversation

kazcw
Copy link
Contributor

@kazcw kazcw commented Jan 29, 2019

Import of the jh-x86_64 crate. Portable implementation plus compile-time-selected coresimd optimizations for sse2, ssse3, and avx2. This is, as far as I'm aware, the fastest implementation of JH due to the ssse3 optimizations, which improve performance to about 105.5% of the NIST submission's SSE2-bitsliced implementation on my machine.

Because this crate uses coresimd, merge will either need to wait until this project's minimum supported Rust version is increased, or I could feature-gate the optimizations. The portable fallback runs at a little under half the speed, and is about 10% faster than the "optimized 64-bit" implementation from the NIST package on my Nehalem box.

cf. #1

@kazcw
Copy link
Contributor Author

kazcw commented Jan 29, 2019

I went ahead and made it Rust 1.21-compatible, with simd an opt-in feature

@kazcw
Copy link
Contributor Author

kazcw commented Jan 29, 2019

The build failures are due to block-buffer and hex-literal, but I'm not sure why

@kazcw
Copy link
Contributor Author

kazcw commented Feb 1, 2019

This PR is getting out of sync. The crate can be found here: https://github.com/cryptocorrosion/cryptocorrosion/tree/master/hashes/jh

@kazcw kazcw closed this Feb 1, 2019
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.

1 participant