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

Support for modern stream ciphers like Chacha20 #317

Closed
cayolblake opened this issue Apr 18, 2021 · 4 comments · Fixed by #2330
Closed

Support for modern stream ciphers like Chacha20 #317

cayolblake opened this issue Apr 18, 2021 · 4 comments · Fixed by #2330
Labels
kind/feature New feature or request

Comments

@cayolblake
Copy link

cayolblake commented Apr 18, 2021

What would you like to be added:
Support for modern/lightweight stream ciphers like Chacha20 beside current support of AES.

Why is this needed:
ChaCha20 takes a 256-bit key and a 32-bit nonce and then creates a key stream, which is then XORed with the plaintext stream. In software, it is three times faster than AES, and is well suited to lower-powered devices and in real time communications.

Quoted from -> https://medium.com/asecuritysite-when-bob-met-alice/aes-is-great-but-we-need-a-fall-back-meet-chacha-and-poly1305-76ee0ee61895

Also a nice coffee-time basic article https://blog.cloudflare.com/do-the-chacha-better-mobile-performance-with-cryptography/

@cayolblake cayolblake added the kind/feature New feature or request label Apr 18, 2021
@davies
Copy link
Contributor

davies commented Apr 18, 2021

@cayolblake Agreed, it will be better if we can support ChaCha20. Do you have bandwidth to work on this?

@cayolblake
Copy link
Author

I'm no Go developer but I can take a look if you give me some development level hints.

Helped port Chacha20 support on a C++ project some years back and it was a real blast given the ending results.

Is there some Slack/Discord where you guys hang to discuss such stuff?

@cayolblake
Copy link
Author

cayolblake commented Apr 18, 2021

So I took a quick dig and could find pkg/object/encrypt.go where it gets used mostly in the format command and test file.

It appears also only gold-standard Crypto is defined in the Go SDK where it gets used inside the project and introducing Chacha20 would required using external libraries.

Is that how you do it guys?

Am I going right on this or...?

Also some Slack/Discord where discussions go would be really helpful tho.

@davies
Copy link
Contributor

davies commented Apr 19, 2021

So I took a quick dig and could find pkg/object/encrypt.go where it gets used mostly in the format command and test file.

It appears also only gold-standard Crypto is defined in the Go SDK where it gets used inside the project and introducing Chacha20 would required using external libraries.

Is that how you do it guys?

Yes, we used tons of external libraries.

Am I going right on this or...?

Yes, the important thing would be keep it backward compatible.

Also some Slack/Discord where discussions go would be really helpful tho.

We have a slack workspace, please find the invitation link in README

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants