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

Kupyna hasher #601

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

Kupyna hasher #601

wants to merge 14 commits into from

Conversation

jkoudys
Copy link

@jkoudys jkoudys commented Jul 8, 2024

We've implemented this hashing algorithm for kupyna, a Ukrainian algo specified here: https://eprint.iacr.org/2015/885.pdf

I'm opening this PR just to get the ball rolling. The hash function we've made works and we've included a bunch of test units. Next step is to implement the Digest and associated RustCrypto traits. I don't think this should go into RustCrypto/hashes master branch, but figured I'd open this and you could setup a new branch (or let us know the best way to build this). Any tips you could give to get us started on impl'ing the Digest trait would be appreciated.

Is there an existing hash implementation with a variable size hash? Most seem to hardcode it, but kupyna allows from 8 to 512, so it ought to be part of its digest struct. Is there a precedent for this already? I'd like to avoid reinventing the wheel.

@newpavlov
Copy link
Member

newpavlov commented Jul 8, 2024

See comments in #597.

Is there an existing hash implementation with a variable size hash?

The groestl crate probably will be the easiest to read. You need to implement the VariableOutputCore trait and define appropriate type aliases.

@jkoudys
Copy link
Author

jkoudys commented Jul 8, 2024

Nice, thanks this helps.

Can we merge this into a new wip branch, or just get it using a basic Digest and merge to master?

@newpavlov
Copy link
Member

@jkoudys
Hi! Do you plan to work on this? As noted in the linked comment, we can not merge it in the current form.

@jkoudys
Copy link
Author

jkoudys commented Sep 20, 2024

Yes had a delay but I'm using the groetsl as a guide and putting the kupyna hashing logic around that now.

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.

3 participants