RustCrypto / block-ciphers

Collection of block cipher algorithms written in pure Rust
677 stars 130 forks source link

rc6: RC6 Implementation #371

Closed ashWhiteHat closed 3 months ago

ashWhiteHat commented 1 year ago

Part of https://github.com/RustCrypto/block-ciphers/issues/1

Hi there. I implemented rc6.

Implementation and documentation are aligned with rc5 implementation.

I referred following document for key schedule, encryption and decryption algorithms. https://www.grc.com/r&d/rc6.pdf

I checked whether it works by following test vectors. https://datatracker.ietf.org/doc/html/draft-krovetz-rc6-rc5-vectors-00#section-3

I would appreciate it if you could confirm. Thank you!

ghost commented 1 year ago

+1

RustCrypto apparently already owns the crate "rc6" and just isn't doing anything with it, so not merging this seems somewhat silly.

tarcieri commented 1 year ago

The reason this hasn't been merged yet is because it hasn't yet been code reviewed, which is especially important for cryptographic code.

Please give us time to review it.

If you'd like to be helpful, it would be good to get some feedback on if it worked in a particular application you're interested in.

ghost commented 1 year ago

The reason this hasn't been merged yet is because it hasn't yet been code reviewed, which is especially important for cryptographic code.

Please give us time to review it.

Oh, yeah, 100%. I apologize if I came off as impatient. My intent was to express interest in the feature, not to rush you guys.

If you'd like to be helpful, it would be good to get some feedback on if it worked in a particular application you're interested in.

I am planning on using it in an application soon, hence my original comment. I'll report back with my results.

ghost commented 1 year ago

The RC6 standard doesn't mandate any key size, round count, or word length, but this implementation does. RustCrypto's RC5 implementation has a similar problem which I've opened an issue for (#381). RC5 and RC6 are very similar so most of what I wrote there should be applicable here.

tarcieri commented 3 months ago

The test failures look unrelated.

We'd still be interested in this if you could rebase!

ashWhiteHat commented 3 months ago

Hi @tarcieri Thank you for the notification.

I rebased and fixed conflict. I would appreciate it if you could confirm. Thank you!

ashWhiteHat commented 3 months ago

This includes rc5 refactoring and it's hard to rebase. I close this PR.

tarcieri commented 3 months ago

@ashWhiteHat can you open a new PR with just the rc6 implementation?

ashWhiteHat commented 3 months ago

Copy that. Probably in weekend.