Navigation Menu

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

x/crypto/ssh: doesn't support ed25519 keys #8581

Closed
gopherbot opened this issue Aug 25, 2014 · 16 comments
Closed

x/crypto/ssh: doesn't support ed25519 keys #8581

gopherbot opened this issue Aug 25, 2014 · 16 comments

Comments

@gopherbot
Copy link

by h3g3m0n:

ed25519 keys are supported on newer version of OpenSSH.

ssh-keygen -t ed25519

There is a ed25519 implementation available here:
https://github.com/agl/ed25519/

Although it doesn't have a license.

go version go1.3 linux/amd64
@ianlancetaylor
Copy link
Contributor

Comment 1:

Labels changed: added repo-crypto, release-none.

@agl
Copy link
Contributor

agl commented Aug 25, 2014

Comment 2:

Status changed to LongTerm.

@mikioh mikioh changed the title go.crypto/ssh: doesn't support ed25519 keys ssh: doesn't support ed25519 keys Jan 7, 2015
@mildred
Copy link

mildred commented Jan 28, 2015

Is using cgo to bridge to native C code an option? If so, the original code written in C doesn't require a libc to be available at all. It could be easily used, see for example https://github.com/mildred/ed25519

@rsc rsc added this to the Unplanned milestone Apr 10, 2015
@rsc rsc removed the release-none label Apr 10, 2015
@rsc rsc changed the title ssh: doesn't support ed25519 keys x/crypto/ssh: doesn't support ed25519 keys Apr 14, 2015
@rsc rsc modified the milestones: Unreleased, Unplanned Apr 14, 2015
@rsc rsc removed the repo-crypto label Apr 14, 2015
@jessfraz
Copy link
Contributor

I can look into submitting a patch for this to Gerrit if it is alright with you all, is there a case against adding @agl's pkg to x/crypto? I found this related thread from last year that looks like the answer is to wait until the code is sufficiently commented. Is there anything I can do to help?

@agl
Copy link
Contributor

agl commented Nov 9, 2015

I agree that it's probably time that ed25519 lived in crypto/, although some pondering will be needed about exactly what to expose. The CFRG is likely to standardise something almost, but not quite, Ed25519 in the future and we'll want to support that with a minimum of additional code.

@raggi
Copy link
Contributor

raggi commented Feb 12, 2016

Is it possible that it could make sense to make x/crypto/ssh work anyway, and alter it's dependencies if/when CFRG do their thing and something lands in crypto/, given that these things may be a while?

@jessfraz
Copy link
Contributor

@agl if you tell me what you want I'll do it ;)

@cornfeedhobo
Copy link

@agl Howdy. To begin, thanks for all the great stuff you contribute!
Looking at how long this issue has been open, any chance you could do as @raggi has suggested, and integrate your current ed25519 work into ssh? It seems like it will be a while longer if one is to wait on CFRG, and having a library that is inline with existing server and client implementations would be really nice.

@agl
Copy link
Contributor

agl commented Apr 12, 2016

I agree that it's time to move Ed25519 into x/crypto at least and have started that process.

@gopherbot
Copy link
Author

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

@jessfraz
Copy link
Contributor

thanks @agl!

On Wed, Apr 13, 2016 at 5:02 PM, GopherBot notifications@github.com wrote:

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


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#8581 (comment)

Jessie Frazelle
4096R / D4C4 DD60 0D66 F65A 8EFC 511E 18F3 685C 0022 BFF3
pgp.mit.edu http://pgp.mit.edu/pks/lookup?op=get&search=0x18F3685C0022BFF3

gopherbot pushed a commit to golang/crypto that referenced this issue Apr 25, 2016
This change “graduates” the Ed25519 package from my personal GitHub
account to x/crypto. At this point, the code and algorithm seems
sufficiently mature that it warrants more general exposure. (There seem
to be about 110 packages importing it from my GitHub repo:
https://godoc.org/github.com/agl/ed25519?importers)

Two people made changes to the code while it was living in my GitHub.
Both have signed the CLA and both have confirmed that they intended
their changes to be covered by it. (Recorded internally in b/28166583.)

The significant change from GitHub to x/crypto is that the types of
public keys, private keys and signatures have been changed from pointers
to arrays into []byte and that support for crypto.Signer has been added.

Updates golang/go#8581

Change-Id: Ia8632d2153e289363b50d76fd0662d1a7fed00f6
Reviewed-on: https://go-review.googlesource.com/22030
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Martin Garton <garton@gmail.com>
Reviewed-by: Adam Langley <agl@golang.org>
Run-TryBot: Adam Langley <agl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
@mjgarton
Copy link
Contributor

I started a change here to add support for ed25519 host keys as a starting point:
https://go-review.googlesource.com/#/c/22512/1
If anyone wants to help, feel free. Basically the only thing missing is tests.
Adding support for client use of ed25519 keys would be another change.

@mjgarton
Copy link
Contributor

https://go-review.googlesource.com/#/c/22512/

This got merged, so ed25519 is now supported in x/crypto/ssh

@corny
Copy link

corny commented Jun 16, 2016

@mjgarton Is there already an issue for adding ed25519 client support? Should I open one?

@mjgarton
Copy link
Contributor

@corny What do you mean by client support? You can already use ed25519 keys on the client to authenticate against a server. Is that what you mean?

@pmoody-
Copy link

pmoody- commented Jun 17, 2016

it's not supported by the agent for one thing. I've been meaning to fix that but I keep getting pulled into work work.

bobveznat added a commit to cloudtools/ssh-cert-authority that referenced this issue Aug 21, 2016
Thanks to the hardwork in golang/go#8581 we,
with a one line change, add ed25519 support. Boom.
@golang golang locked and limited conversation to collaborators Jun 17, 2017
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