SYMBOL INDEX (264 symbols across 45 files) FILE: client/client.go type Config (line 33) | type Config struct type TLSConfig (line 49) | type TLSConfig struct type Client (line 58) | type Client struct method Run (line 194) | func (c *Client) Run() error { method verifyServer (line 203) | func (c *Client) verifyServer(hostname string, remote net.Addr, key ss... method verifyLegacyFingerprint (line 225) | func (c *Client) verifyLegacyFingerprint(key ssh.PublicKey) error { method Start (line 240) | func (c *Client) Start(ctx context.Context) error { method setProxy (line 265) | func (c *Client) setProxy(u *url.URL, d *websocket.Dialer) error { method Wait (line 297) | func (c *Client) Wait() error { method Close (line 302) | func (c *Client) Close() error { function NewClient (line 73) | func NewClient(c *Config) (*Client, error) { FILE: client/client_connect.go method connectionLoop (line 20) | func (c *Client) connectionLoop(ctx context.Context) error { method connectionOnce (line 68) | func (c *Client) connectionOnce(ctx context.Context) (connected bool, er... FILE: client/client_test.go function TestCustomHeaders (line 16) | func TestCustomHeaders(t *testing.T) { function TestFallbackLegacyFingerprint (line 47) | func TestFallbackLegacyFingerprint(t *testing.T) { function TestVerifyLegacyFingerprint (line 70) | func TestVerifyLegacyFingerprint(t *testing.T) { function TestVerifyFingerprint (line 93) | func TestVerifyFingerprint(t *testing.T) { FILE: main.go function main (line 36) | func main() { function generatePidFile (line 89) | func generatePidFile() { function server (line 179) | func server(args []string) { type multiFlag (line 265) | type multiFlag struct method String (line 269) | func (flag multiFlag) String() string { method Set (line 273) | func (flag multiFlag) Set(arg string) error { type headerFlags (line 278) | type headerFlags struct method String (line 282) | func (flag *headerFlags) String() string { method Set (line 290) | func (flag *headerFlags) Set(arg string) error { function client (line 424) | func client(args []string) { FILE: server/server.go type Config (line 25) | type Config struct type Server (line 38) | type Server struct method Run (line 148) | func (s *Server) Run(host, port string) error { method Start (line 156) | func (s *Server) Start(host, port string) error { method StartContext (line 162) | func (s *Server) StartContext(ctx context.Context, host, port string) ... method Wait (line 184) | func (s *Server) Wait() error { method Close (line 189) | func (s *Server) Close() error { method GetFingerprint (line 194) | func (s *Server) GetFingerprint() string { method authUser (line 199) | func (s *Server) authUser(c ssh.ConnMetadata, password []byte) (*ssh.P... method AddUser (line 218) | func (s *Server) AddUser(user, pass string, addrs ...string) error { method DeleteUser (line 236) | func (s *Server) DeleteUser(user string) { method ResetUsers (line 242) | func (s *Server) ResetUsers(users []*settings.User) { function NewServer (line 57) | func NewServer(c *Config) (*Server, error) { FILE: server/server_handler.go method handleClientHandler (line 18) | func (s *Server) handleClientHandler(w http.ResponseWriter, r *http.Requ... method handleWebsocket (line 51) | func (s *Server) handleWebsocket(w http.ResponseWriter, req *http.Reques... FILE: server/server_listen.go type TLSConfig (line 17) | type TLSConfig struct method listener (line 24) | func (s *Server) listener(host, port string) (net.Listener, error) { method tlsLetsEncrypt (line 62) | func (s *Server) tlsLetsEncrypt(domains []string) *tls.Config { method tlsKeyCert (line 91) | func (s *Server) tlsKeyCert(key, cert string, ca string) (*tls.Config, e... function addCA (line 110) | func addCA(ca string, c *tls.Config) error { function addPEMFile (line 141) | func addPEMFile(path string, pool *x509.CertPool) error { FILE: share/ccrypto/determ_rand.go constant DetermRandIter (line 12) | DetermRandIter = 2048 function NewDetermRand (line 14) | func NewDetermRand(seed []byte) io.Reader { type determRand (line 27) | type determRand struct method Read (line 31) | func (d *determRand) Read(b []byte) (int, error) { function hash (line 42) | func hash(input []byte) (next []byte, output []byte) { FILE: share/ccrypto/generate_key_go119.go function GenerateKeyGo119 (line 13) | func GenerateKeyGo119(c elliptic.Curve, rand io.Reader) (*ecdsa.PrivateK... function randFieldElement (line 27) | func randFieldElement(c elliptic.Curve, rand io.Reader) (k *big.Int, err... FILE: share/ccrypto/keys.go function GenerateKey (line 13) | func GenerateKey(seed string) ([]byte, error) { function GenerateKeyFile (line 18) | func GenerateKeyFile(keyFilePath, seed string) error { function FingerprintKey (line 32) | func FingerprintKey(k ssh.PublicKey) string { FILE: share/ccrypto/keys_helpers.go constant ChiselKeyPrefix (line 13) | ChiselKeyPrefix = "ck-" function Seed2PEM (line 27) | func Seed2PEM(seed string) ([]byte, error) { function seed2ChiselKey (line 36) | func seed2ChiselKey(seed string) ([]byte, error) { function seed2PrivateKey (line 45) | func seed2PrivateKey(seed string) (*ecdsa.PrivateKey, error) { function privateKey2ChiselKey (line 53) | func privateKey2ChiselKey(privateKey *ecdsa.PrivateKey) ([]byte, error) { function privateKey2PEM (line 65) | func privateKey2PEM(privateKey *ecdsa.PrivateKey) ([]byte, error) { function chiselKey2PrivateKey (line 74) | func chiselKey2PrivateKey(chiselKey []byte) (*ecdsa.PrivateKey, error) { function ChiselKey2PEM (line 86) | func ChiselKey2PEM(chiselKey []byte) ([]byte, error) { function IsChiselKey (line 95) | func IsChiselKey(chiselKey []byte) bool { FILE: share/cio/logger.go type Logger (line 10) | type Logger struct method Infof (line 32) | func (l *Logger) Infof(f string, args ...interface{}) { method Debugf (line 38) | func (l *Logger) Debugf(f string, args ...interface{}) { method Errorf (line 44) | func (l *Logger) Errorf(f string, args ...interface{}) error { method Fork (line 48) | func (l *Logger) Fork(prefix string, args ...interface{}) *Logger { method Prefix (line 68) | func (l *Logger) Prefix() string { method IsInfo (line 72) | func (l *Logger) IsInfo() bool { method IsDebug (line 76) | func (l *Logger) IsDebug() bool { function NewLogger (line 18) | func NewLogger(prefix string) *Logger { function NewLoggerFlag (line 22) | func NewLoggerFlag(prefix string, flag int) *Logger { FILE: share/cio/pipe.go function Pipe (line 9) | func Pipe(src io.ReadWriteCloser, dst io.ReadWriteCloser) (int64, int64) { constant vis (line 32) | vis = false type pipeVisPrinter (line 34) | type pipeVisPrinter struct method Write (line 38) | func (p pipeVisPrinter) Write(b []byte) (int, error) { function pipeVis (line 43) | func pipeVis(name string, r io.Reader) io.Reader { FILE: share/cnet/conn_rwc.go type rwcConn (line 9) | type rwcConn struct method LocalAddr (line 22) | func (c *rwcConn) LocalAddr() net.Addr { method RemoteAddr (line 26) | func (c *rwcConn) RemoteAddr() net.Addr { method Network (line 30) | func (c *rwcConn) Network() string { method String (line 34) | func (c *rwcConn) String() string { method SetDeadline (line 38) | func (c *rwcConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 42) | func (c *rwcConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 46) | func (c *rwcConn) SetWriteDeadline(t time.Time) error { function NewRWCConn (line 15) | func NewRWCConn(rwc io.ReadWriteCloser) net.Conn { FILE: share/cnet/conn_ws.go type wsConn (line 10) | type wsConn struct method Read (line 25) | func (c *wsConn) Read(dst []byte) (int, error) { method Write (line 55) | func (c *wsConn) Write(b []byte) (int, error) { method SetDeadline (line 63) | func (c *wsConn) SetDeadline(t time.Time) error { function NewWebSocketConn (line 16) | func NewWebSocketConn(websocketConn *websocket.Conn) net.Conn { FILE: share/cnet/connstats.go type ConnCount (line 9) | type ConnCount struct method New (line 14) | func (c *ConnCount) New() int32 { method Open (line 18) | func (c *ConnCount) Open() { method Close (line 22) | func (c *ConnCount) Close() { method String (line 26) | func (c *ConnCount) String() string { FILE: share/cnet/http_server.go type HTTPServer (line 15) | type HTTPServer struct method GoListenAndServe (line 30) | func (h *HTTPServer) GoListenAndServe(addr string, handler http.Handle... method GoListenAndServeContext (line 34) | func (h *HTTPServer) GoListenAndServeContext(ctx context.Context, addr... method GoServe (line 45) | func (h *HTTPServer) GoServe(ctx context.Context, l net.Listener, hand... method Close (line 63) | func (h *HTTPServer) Close() error { method Wait (line 72) | func (h *HTTPServer) Wait() error { function NewHTTPServer (line 23) | func NewHTTPServer() *HTTPServer { FILE: share/cnet/meter.go function NewMeter (line 14) | func NewMeter(l *cio.Logger) *Meter { type Meter (line 21) | type Meter struct method print (line 31) | func (m *Meter) print() { method goprint (line 38) | func (m *Meter) goprint() { method TeeReader (line 68) | func (m *Meter) TeeReader(r io.Reader) io.Reader { method TeeWriter (line 90) | func (m *Meter) TeeWriter(w io.Writer) io.Writer { type meterReader (line 75) | type meterReader struct method Read (line 80) | func (m *meterReader) Read(p []byte) (n int, err error) { type meterWriter (line 97) | type meterWriter struct method Write (line 102) | func (m *meterWriter) Write(p []byte) (n int, err error) { function MeterConn (line 112) | func MeterConn(l *cio.Logger, conn net.Conn) net.Conn { type meterConn (line 121) | type meterConn struct method Read (line 127) | func (m *meterConn) Read(p []byte) (n int, err error) { method Write (line 131) | func (m *meterConn) Write(p []byte) (n int, err error) { function MeterRWC (line 138) | func MeterRWC(l *cio.Logger, rwc io.ReadWriteCloser) io.ReadWriteCloser { FILE: share/compat.go constant DetermRandIter (line 15) | DetermRandIter = ccrypto.DetermRandIter function EncodeConfig (line 54) | func EncodeConfig(c *settings.Config) ([]byte, error) { FILE: share/cos/common.go function InterruptContext (line 12) | func InterruptContext() context.Context { function SleepSignal (line 26) | func SleepSignal(d time.Duration) { FILE: share/cos/pprof.go function init (line 11) | func init() { FILE: share/cos/signal.go function GoStats (line 18) | func GoStats() { function AfterSignal (line 35) | func AfterSignal(d time.Duration) <-chan struct{} { FILE: share/cos/signal_windows.go function GoStats (line 9) | func GoStats() { function AfterSignal (line 13) | func AfterSignal(d time.Duration) <-chan struct{} { FILE: share/settings/config.go type Config (line 8) | type Config struct function DecodeConfig (line 13) | func DecodeConfig(b []byte) (*Config, error) { function EncodeConfig (line 22) | func EncodeConfig(c Config) []byte { FILE: share/settings/env.go function Env (line 11) | func Env(name string) string { function EnvInt (line 16) | func EnvInt(name string, def int) int { function EnvDuration (line 24) | func EnvDuration(name string, def time.Duration) time.Duration { function EnvBool (line 32) | func EnvBool(name string) bool { FILE: share/settings/remote.go type Remote (line 35) | type Remote struct method String (line 166) | func (r Remote) String() string { method Encode (line 181) | func (r Remote) Encode() string { method Local (line 197) | func (r Remote) Local() string { method Remote (line 208) | func (r Remote) Remote() string { method UserAddr (line 220) | func (r Remote) UserAddr() string { method CanListen (line 228) | func (r Remote) CanListen() bool { constant revPrefix (line 41) | revPrefix = "R:" function DecodeRemote (line 43) | func DecodeRemote(s string) (*Remote, error) { function isPort (line 135) | func isPort(s string) bool { function isHost (line 146) | func isHost(s string) bool { function L4Proto (line 157) | func L4Proto(s string) (head, proto string) { type Remotes (line 254) | type Remotes method Reversed (line 257) | func (rs Remotes) Reversed(reverse bool) Remotes { method Encode (line 269) | func (rs Remotes) Encode() []string { FILE: share/settings/remote_test.go function TestRemoteDecode (line 8) | func TestRemoteDecode(t *testing.T) { FILE: share/settings/user.go function ParseAuth (line 10) | func ParseAuth(auth string) (string, string) { type User (line 18) | type User struct method HasAccess (line 24) | func (u *User) HasAccess(addr string) bool { FILE: share/settings/users.go type Users (line 15) | type Users struct method Len (line 25) | func (u *Users) Len() int { method Get (line 33) | func (u *Users) Get(key string) (*User, bool) { method Set (line 41) | func (u *Users) Set(key string, user *User) { method Del (line 48) | func (u *Users) Del(key string) { method AddUser (line 55) | func (u *Users) AddUser(user *User) { method Reset (line 61) | func (u *Users) Reset(users []*User) { function NewUsers (line 20) | func NewUsers() *Users { type UserIndex (line 72) | type UserIndex struct method LoadUsers (line 87) | func (u *UserIndex) LoadUsers(configFile string) error { method addWatchEvents (line 100) | func (u *UserIndex) addWatchEvents() error { method loadUserIndex (line 124) | func (u *UserIndex) loadUserIndex() error { function NewUserIndex (line 79) | func NewUserIndex(logger *cio.Logger) *UserIndex { FILE: share/tunnel/tunnel.go type Config (line 22) | type Config struct type Tunnel (line 40) | type Tunnel struct method BindSSH (line 75) | func (t *Tunnel) BindSSH(ctx context.Context, c ssh.Conn, reqs <-chan ... method getSSH (line 111) | func (t *Tunnel) getSSH(ctx context.Context) ssh.Conn { method activatingConnWait (line 137) | func (t *Tunnel) activatingConnWait() <-chan struct{} { method BindRemotes (line 148) | func (t *Tunnel) BindRemotes(ctx context.Context, remotes []*settings.... method keepAliveLoop (line 178) | func (t *Tunnel) keepAliveLoop(sshConn ssh.Conn) { function New (line 54) | func New(c Config) *Tunnel { FILE: share/tunnel/tunnel_in_proxy.go type sshTunnel (line 16) | type sshTunnel interface type Proxy (line 21) | type Proxy struct method listen (line 45) | func (p *Proxy) listen() error { method Run (line 74) | func (p *Proxy) Run(ctx context.Context) error { method runStdio (line 85) | func (p *Proxy) runStdio(ctx context.Context) error { method runTCP (line 98) | func (p *Proxy) runTCP(ctx context.Context) error { method pipeRemote (line 125) | func (p *Proxy) pipeRemote(ctx context.Context, src io.ReadWriteCloser) { function NewProxy (line 34) | func NewProxy(logger *cio.Logger, sshTun sshTunnel, index int, remote *s... FILE: share/tunnel/tunnel_in_proxy_udp.go function listenUDP (line 33) | func listenUDP(l *cio.Logger, sshTun sshTunnel, remote *settings.Remote)... type udpListener (line 54) | type udpListener struct method run (line 65) | func (u *udpListener) run(ctx context.Context) error { method runInbound (line 85) | func (u *udpListener) runInbound(ctx context.Context) error { method runOutbound (line 119) | func (u *udpListener) runOutbound(ctx context.Context) error { method getUDPChan (line 152) | func (u *udpListener) getUDPChan(ctx context.Context) (*udpChannel, er... method unsetUDPChan (line 185) | func (u *udpListener) unsetUDPChan(sshConn ssh.Conn) { FILE: share/tunnel/tunnel_out_ssh.go method handleSSHRequests (line 16) | func (t *Tunnel) handleSSHRequests(reqs <-chan *ssh.Request) { method handleSSHChannels (line 27) | func (t *Tunnel) handleSSHChannels(chans <-chan ssh.NewChannel) { method handleSSHChannel (line 33) | func (t *Tunnel) handleSSHChannel(ch ssh.NewChannel) { method handleSocks (line 83) | func (t *Tunnel) handleSocks(src io.ReadWriteCloser) error { method handleTCP (line 87) | func (t *Tunnel) handleTCP(l *cio.Logger, src io.ReadWriteCloser, hostPo... FILE: share/tunnel/tunnel_out_ssh_udp.go method handleUDP (line 15) | func (t *Tunnel) handleUDP(l *cio.Logger, rwc io.ReadWriteCloser, hostPo... type udpHandler (line 41) | type udpHandler struct method handleWrite (line 49) | func (h *udpHandler) handleWrite(p *udpPacket) error { method handleRead (line 80) | func (h *udpHandler) handleRead(p *udpPacket, conn *udpConn) { type udpConns (line 106) | type udpConns struct method dial (line 112) | func (cs *udpConns) dial(id, addr string) (*udpConn, bool, error) { method len (line 130) | func (cs *udpConns) len() int { method remove (line 137) | func (cs *udpConns) remove(id string) { method closeAll (line 143) | func (cs *udpConns) closeAll() { type udpConn (line 152) | type udpConn struct FILE: share/tunnel/udp.go type udpPacket (line 9) | type udpPacket struct function init (line 14) | func init() { type udpChannel (line 19) | type udpChannel struct method encode (line 25) | func (o *udpChannel) encode(src string, b []byte) error { method decode (line 32) | func (o *udpChannel) decode(p *udpPacket) error { function isDone (line 36) | func isDone(ctx context.Context) bool { FILE: share/tunnel/wg.go type waitGroup (line 8) | type waitGroup struct method Add (line 13) | func (w *waitGroup) Add(n int) { method Done (line 18) | func (w *waitGroup) Done() { method DoneAll (line 24) | func (w *waitGroup) DoneAll() { method Wait (line 30) | func (w *waitGroup) Wait() { FILE: test/bench/main.go constant ENABLE_CROWBAR (line 32) | ENABLE_CROWBAR = false constant B (line 35) | B = 1 constant KB (line 36) | KB = 1000 * B constant MB (line 37) | MB = 1000 * KB constant GB (line 38) | GB = 1000 * MB function run (line 41) | func run() { function test (line 58) | func test() { function bench (line 64) | func bench() { function benchSizes (line 72) | func benchSizes(port string) { function testTunnel (line 78) | func testTunnel(port string, size int) { function requestFile (line 101) | func requestFile(port string, size int) (*http.Response, error) { function makeFileServer (line 107) | func makeFileServer() *cnet.HTTPServer { function fatal (line 131) | func fatal(args ...interface{}) { function fatalf (line 134) | func fatalf(f string, args ...interface{}) { function main (line 139) | func main() { FILE: test/e2e/acl_channel_test.go function dialChiselSSH (line 22) | func dialChiselSSH(t *testing.T, serverAddr, user, pass string) (ssh.Con... function sendConfig (line 46) | func sendConfig(t *testing.T, sc ssh.Conn, remotes []*settings.Remote) { function TestAuthChannelDenied (line 63) | func TestAuthChannelDenied(t *testing.T) { function TestAuthChannelAllowed (line 124) | func TestAuthChannelAllowed(t *testing.T) { function TestNoAuthChannel (line 196) | func TestNoAuthChannel(t *testing.T) { function TestAuthWildcardChannel (line 264) | func TestAuthWildcardChannel(t *testing.T) { FILE: test/e2e/auth_test.go function TestAuth (line 15) | func TestAuth(t *testing.T) { FILE: test/e2e/base_test.go function TestBase (line 10) | func TestBase(t *testing.T) { function TestReverse (line 29) | func TestReverse(t *testing.T) { FILE: test/e2e/cert_utils_test.go type tlsConfig (line 24) | type tlsConfig struct method Close (line 30) | func (t *tlsConfig) Close() { function newTestTLSConfig (line 36) | func newTestTLSConfig() (*tlsConfig, error) { type certConfig (line 118) | type certConfig struct function certGetCertificate (line 130) | func certGetCertificate(c *certConfig) (*x509.Certificate, []byte, []byt... function certGetPublicKey (line 245) | func certGetPublicKey(priv interface{}) interface{} { FILE: test/e2e/env_key_test.go function TestChiselKeyEnvironmentVariable (line 11) | func TestChiselKeyEnvironmentVariable(t *testing.T) { function TestChiselKeyEnvironmentVariableConsistency (line 40) | func TestChiselKeyEnvironmentVariableConsistency(t *testing.T) { FILE: test/e2e/setup_test.go constant debug (line 17) | debug = true type testLayout (line 20) | type testLayout struct method setup (line 28) | func (tl *testLayout) setup(t *testing.T) (server *chserver.Server, cl... function simpleSetup (line 121) | func simpleSetup(t *testing.T, s *chserver.Config, c *chclient.Config) c... function post (line 131) | func post(url, body string) (string, error) { function availablePort (line 143) | func availablePort() string { FILE: test/e2e/tls_test.go function TestTLS (line 11) | func TestTLS(t *testing.T) { function TestMTLS (line 40) | func TestMTLS(t *testing.T) { function TestTLSMissingClientCert (line 71) | func TestTLSMissingClientCert(t *testing.T) { function TestTLSMissingClientCA (line 100) | func TestTLSMissingClientCA(t *testing.T) { FILE: test/e2e/udp_test.go function TestUDP (line 14) | func TestUDP(t *testing.T) { function availableUDPPort (line 76) | func availableUDPPort() string {