Hi all,
When Using the golang.org/x/crypto/ssh module to connect to a lshd SSH
server this error gets thrown:
panic: ssh: handshake failed: ssh: exponent too large
goroutine 1 [running]:
main.main()
C:/Users/user/Documents/project/sample.go:33 +0x685 EOF
It's defined in /ssh/keys.go#L353
(https://github.com/golang/crypto/blob/5ea612d1eb830b38bc4e914e37f55311eb58adce/ssh/keys.go#L353)
the error appears when the exponent of the RSA key is over 24 bits.
`lshd` with the program `lsh-keygen` generates a RSA 2048 certificate with
32 bits exponent.
After converting the to a more common format it gets accepted by OpenSSH
and validators.
I was also not able to find a limit on the bitlength of RSA exponents, only
that it must be a positive asn.1 Integer > 0.
The error can be mitigated by changing s/24/32/ at line 353 in ssh/keys.go
afterwards the program works as intended.
I was not able to observe any side effects from changing this value.
How should i best go forward with this? Should i vendor a local copy or
make a upstream bug report/merge request?
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/d59663f4-8786-4941-9544-ade6415cff13n%40googlegroups.com.