Commit Graph
12 Commits
Author SHA1 Message Date
Dave Cheney 36d74d6fed go.crypto/ssh: fix panic unmarshalling channelOpenFailureMsg
I introduced this problem in change set 33 when I redefined
RejectionReason from a uint32 to an int. I have added a test
to verify the message can be marshaled correctly.

This was a bit hard to track down as the recover in clientConn
mainLoop would catch the panic and shutdown the connection. We
probably shouldn't be using panic inside marshal/unmarshal, at
least not without a way to let the user know why the recover
logic tripped.

R=agl, kardianos, gustav.paul
CC=golang-dev
https://golang.org/cl/6210063
2012-05-18 09:11:31 +10:00
Dave Cheney 8a2e7c966a go.crypto/ssh: make {client,server}Chan use common window management
R=agl, gustav.paul, kardianos
CC=golang-dev
https://golang.org/cl/6208043
2012-05-11 05:56:44 +10:00
Dave Cheney 523290a72d go.crypto/ssh: move common channel methods into an embedded struct
This CL introduces a new struct, channel to hold common shared
functions.

* add a new channel struct, which is embeded in {client,server}Chan.
* move common methods from {client,server}Chan into channel.
* remove unneeded used of serverConn.lock in serverChan
 (transport.writePacket has its own mutex).
* remove filteredConn, introduce conn.

R=agl, gustav.paul
CC=golang-dev
https://golang.org/cl/6128059
2012-05-09 08:20:05 +10:00
Dave Cheney 68e64b8f78 go.crypto/ssh: struct renaming
This CL is in preparation for 6128059.

* rename channel -> serverChan
* rename chanlist -> chanList
* normalise theirId/MyId/id/peersId -> localId/remoteId

R=agl
CC=golang-dev
https://golang.org/cl/6174046
2012-05-05 07:59:48 +10:00
Adam Langley 0d3cfff99f ssh: fix deadlock
The code was taking locks in the wrong order.

Fixes golang/go#3570.

R=fullung
CC=golang-dev
https://golang.org/cl/6123058
2012-04-26 12:05:35 -04:00
Dave Cheney b333fd1d05 go.crypto/ssh: add support for remote tcpip forwarding
Add support for server (remote) forwarded tcpip channels.
See RFC4254 Section 7.1

R=gustav.paul, jeff, agl, lieqiewang
CC=golang-dev
https://golang.org/cl/6038047
2012-04-26 20:37:06 +10:00
Adam Langley 63f855d724 ssh: cosmetic cleanups
These are the cosmetic cleanups from the bits of code that I
rereviewed.

1) stringLength now takes a int; the length of the string. Too many
   callers were allocating with stringLength([]byte(s)) and
   stringLength only needs to call len().

2) agent.go now has sendAndReceive to remove logic that was
   duplicated.

3) We now reject negative DH values

4) We now reject empty packets rather than crashing.

R=dave, jonathan.mark.pittman
CC=golang-dev
https://golang.org/cl/6061052
2012-04-20 15:17:42 -04:00
Adam Langley cfd75bc309 crypto/ssh: fix several logic errors.
These are the obvious mistakes from my read through. I'll save the
more cosmetic changes for a later CL.

R=dave, kardianos
CC=golang-dev
https://golang.org/cl/6049050
2012-04-19 11:16:57 -04:00
Daniel Theophanes 452b645a37 go.crypto/ssh: respect adjust window msg on server.
R=golang-dev
CC=agl, golang-dev
https://golang.org/cl/5908048
2012-03-26 12:44:23 -04:00
Daniel Theophanes 6c548e9506 go.crypto/ssh: add Stderr() in Channel interface.
Adds support for piping Stderr to the client.

R=golang-dev, dave, agl
CC=golang-dev
https://golang.org/cl/5674081
2012-02-20 10:42:43 -05:00
Adam Langley 7f524f2468 ssh: fix locking in channel.Write
Since a lock is retaken before sync.Cond.Wait returns, this could
deadlock when the for loop attempts to take the lock again. (Reported
by sanjay.m.)

theirWindow was used outside of the lock, therefore concurrent writers
could overrun the window.

theirWindow was never updated to reflect the data written.

R=dave, balasanjay
CC=golang-dev
https://golang.org/cl/5671084
2012-02-18 13:49:50 -05:00
Russ Cox 470549d502 go.crypto: initial code
Manual edits to README.
Moved from main Go repository, deleted Makefiles, ran gofix -r go1rename.

Tested with: go test code.google.com/p/go.crypto/...

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5564059
2012-01-25 15:31:12 -05:00