diff options
| author | Tugdual Saunier <tugdual.saunier@gmail.com> | 2017-09-21 10:41:56 -0700 |
|---|---|---|
| committer | Han-Wen Nienhuys <hanwen@google.com> | 2017-11-13 21:34:09 +0000 |
| commit | 9f005a07e0d31d45e6656d241bb5c0f2efd4bc94 (patch) | |
| tree | a67aad87c874abb2a8a4a881e7b4a4d67dc989db /ssh/client_test.go | |
| parent | 6a293f2d4b14b8e6d3f0539e383f6d0d30fce3fd (diff) | |
| download | go-x-crypto-9f005a07e0d31d45e6656d241bb5c0f2efd4bc94.tar.xz | |
ssh: add support for banners
According to RFC 4252 section 5.4, the banner is sent between the
ssh-connection request and responding to user authentication.
Original support for server sending banner by joshua stein <jcs@jcs.org>
Fixes golang/go#19567
Change-Id: I729b3c8e5fd2c0068609d1590b61e92f40d87ea4
Reviewed-on: https://go-review.googlesource.com/71790
Run-TryBot: Han-Wen Nienhuys <hanwen@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Han-Wen Nienhuys <hanwen@google.com>
Diffstat (limited to 'ssh/client_test.go')
| -rw-r--r-- | ssh/client_test.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ssh/client_test.go b/ssh/client_test.go index ccf5607..9dbe042 100644 --- a/ssh/client_test.go +++ b/ssh/client_test.go @@ -79,3 +79,41 @@ func TestHostKeyCheck(t *testing.T) { } } } + +func TestBannerCallback(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + serverConf := &ServerConfig{ + NoClientAuth: true, + BannerCallback: func(conn ConnMetadata) string { + return "Hello World" + }, + } + serverConf.AddHostKey(testSigners["rsa"]) + go NewServerConn(c1, serverConf) + + var receivedBanner string + clientConf := ClientConfig{ + User: "user", + HostKeyCallback: InsecureIgnoreHostKey(), + BannerCallback: func(message string) error { + receivedBanner = message + return nil + }, + } + + _, _, _, err = NewClientConn(c2, "", &clientConf) + if err != nil { + t.Fatal(err) + } + + expected := "Hello World" + if receivedBanner != expected { + t.Fatalf("got %s; want %s", receivedBanner, expected) + } +} |
