package ssh import "context" // MockServer mocks ssh.Server type MockServer struct { Ctx context.Context StopFunc func() error StartFunc func() error AddAuthorizedKeyFunc func(peer, newKey string) error RemoveAuthorizedKeyFunc func(peer string) } // RemoveAuthorizedKey removes SSH key of a given peer from the authorized keys func (srv *MockServer) RemoveAuthorizedKey(peer string) { if srv.RemoveAuthorizedKeyFunc == nil { return } srv.RemoveAuthorizedKeyFunc(peer) } // AddAuthorizedKey add a given peer key to server authorized keys func (srv *MockServer) AddAuthorizedKey(peer, newKey string) error { if srv.AddAuthorizedKeyFunc == nil { return nil } return srv.AddAuthorizedKeyFunc(peer, newKey) } // Stop stops SSH server. func (srv *MockServer) Stop() error { if srv.StopFunc == nil { return nil } return srv.StopFunc() } // Start starts SSH server. Blocking func (srv *MockServer) Start() error { if srv.StartFunc == nil { return nil } return srv.StartFunc() }