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

crypto/tls: support CHACHA20 #15499

Closed
fourstring opened this issue Apr 30, 2016 · 8 comments
Closed

crypto/tls: support CHACHA20 #15499

fourstring opened this issue Apr 30, 2016 · 8 comments

Comments

@fourstring
Copy link

Please answer these questions before submitting your issue. Thanks!

  1. What version of Go are you using (go version)?
    1.6
  2. What operating system and processor architecture are you using (go env)?
    GOARCH="386"
    GOBIN=""
    GOEXE=""
    GOHOSTARCH="386"
    GOHOSTOS="linux"
    GOOS="linux"
    GOPATH="/data/go"
    GORACE=""
    GOROOT="/usr/local/go"
    GOTOOLDIR="/usr/local/go/pkg/tool/linux_386"
    GO15VENDOREXPERIMENT="1"
    CC="gcc"
    GOGCCFLAGS="-fPIC -m32 -pthread -fmessage-length=0"
    CXX="g++"
    CGO_ENABLED="1"
  3. What did you expect to see?
    Cipher Suite ECDHE-ECDSA/RSA-CHACHA20-POLY1305 will be supported.

Thank you!

@bradfitz bradfitz added this to the Unplanned milestone Apr 30, 2016
@bradfitz bradfitz changed the title Will tls library support CHACHA20? crypto/tls: support CHACHA20 Apr 30, 2016
@alex
Copy link
Contributor

alex commented Jun 23, 2016

The RFC for this is now finalized.

@mjgarton
Copy link
Contributor

I suppose this depends upon both poly1305 and chacha20 implementations in the standard library?

Is it worth creating separate issues for those?

@Thomasdezeeuw
Copy link
Contributor

Related #9489 and #6914.

@enceve
Copy link

enceve commented Jun 27, 2016

If the "right" way to support ChaCha20 and ChaCha20Poly1305 is to use the x/crypto repo as "staging area" for the main repo, maybe this implementation is stable and fast enough. It is similar to the salsa20 package, uses SIMD SSE2 for ChaCha20 on amd64 and avoids mem-allocs for the Poly1305 part of the AEAD.
There is still room for performance improvements, but maybe it can be used as a template...

@mjgarton
Copy link
Contributor

mjgarton commented Jun 27, 2016

That code appears to be licensed as LGPL, so unfortunately not suitable without re-licensing.

EDIT: Mine is not an official position. I am not a Go team member - I'm just stating my understanding of the licence situation.

@enceve
Copy link

enceve commented Jun 27, 2016

The licensing won't be a problem - If the implementation fulfills the requirements / has a chance to be adopted, I'll push it for code-review

@gopherbot
Copy link

CL https://golang.org/cl/30957 mentions this issue.

@agl
Copy link
Contributor

agl commented Oct 17, 2016

(Note that https://go-review.googlesource.com/#/c/30958/ to enable this by default is still pending.)

@golang golang locked and limited conversation to collaborators Oct 17, 2017
FiloSottile pushed a commit to FiloSottile/go that referenced this issue Oct 12, 2018
This change adds support for the ChaCha20-Poly1305 AEAD to crypto/tls,
as specified in https://tools.ietf.org/html/rfc7905.

Fixes golang#15499.

Change-Id: Iaa689be90e03f208c40b574eca399e56f3c7ecf1
Reviewed-on: https://go-review.googlesource.com/30957
Run-TryBot: Adam Langley <agl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
FiloSottile pushed a commit to FiloSottile/go that referenced this issue Oct 12, 2018
This change adds support for the ChaCha20-Poly1305 AEAD to crypto/tls,
as specified in https://tools.ietf.org/html/rfc7905.

Fixes golang#15499.

Change-Id: Iaa689be90e03f208c40b574eca399e56f3c7ecf1
Reviewed-on: https://go-review.googlesource.com/30957
Run-TryBot: Adam Langley <agl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@rsc rsc unassigned agl Jun 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants