diff options
Diffstat (limited to 'internal/ssh/server/hostkey_test.go')
| -rw-r--r-- | internal/ssh/server/hostkey_test.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/internal/ssh/server/hostkey_test.go b/internal/ssh/server/hostkey_test.go new file mode 100644 index 0000000..e318fb4 --- /dev/null +++ b/internal/ssh/server/hostkey_test.go @@ -0,0 +1,37 @@ +package server + +import ( + "bytes" + "github.com/mimecast/dtail/internal/io/fs" + "os" + "path/filepath" + "testing" +) + +func TestPrivateHostKeyGeneratesAndReloadsExistingKey(t *testing.T) { + hostKeyFile := filepath.Join(t.TempDir(), "cache", "ssh_host_key") + if err := os.MkdirAll(filepath.Dir(hostKeyFile), 0o755); err != nil { + t.Fatalf("MkdirAll failed: %v", err) + } + + hostKeyPath, err := fs.NewRootedPath(hostKeyFile) + if err != nil { + t.Fatalf("NewRootedPath failed: %v", err) + } + + firstPEM, err := generatePrivateHostKey(1024) + if err != nil { + t.Fatalf("generatePrivateHostKey failed: %v", err) + } + if err := storePrivateHostKey(hostKeyPath, firstPEM); err != nil { + t.Fatalf("storePrivateHostKey failed: %v", err) + } + + secondPEM, err := readPrivateHostKey(hostKeyPath) + if err != nil { + t.Fatalf("readPrivateHostKey failed: %v", err) + } + if !bytes.Equal(secondPEM, firstPEM) { + t.Fatalf("readPrivateHostKey returned different key data") + } +} |
