Ctrl K
ComunidadGuías…

server/ssh/web/errors.go

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package web

import (
	"errors"
)

// Failures in setting up a web terminal session: resolving the device, authenticating to it,
// and opening the SSH session behind the browser's connection.
var (
	ErrPublicKey          = errors.New("failed to get the parsed public key")
	ErrConnect            = errors.New("failed to connect to device")
	ErrSession            = errors.New("failed to create a session between the server to the agent")
	ErrGetAuth            = errors.New("failed to get auth data from key")
	ErrFindDevice         = errors.New("failed to find the device")
	ErrFindPublicKey      = errors.New("failed to get the public key from the server")
	ErrForbiddenPublicKey = errors.New("failed to use the public key for this action")
	ErrDataPublicKey      = errors.New("failed to parse the public key data")
	ErrPty                = errors.New("failed to request the pty to agent")
	ErrShell              = errors.New("failed to get the shell to agent")
	ErrAuthentication     = errors.New("failed to authenticate to device")
)

// Failures in framing the messages exchanged with the browser.
var (
	ErrConnReadMessageSocketWrite  = errors.New("failed to write the message's data to socket")
	ErrConnReadMessageJSONInvalid  = errors.New("failed to parse the message from json")
	ErrConnReadMessageKindInvalid  = errors.New("this kind of message is invalid")
	ErrApprovalNotAnswered         = errors.New("the browser did not answer the approval before it expired")
	ErrApprovalRefused             = errors.New("the login approval was refused")
	ErrConnWriteMessageFailedFrame = errors.New("failed to create frame")
	ErrApprovalCodeMissing         = errors.New("the gateway's approval challenge carried no code")
	ErrConnReadMessageInputTooLong = errors.New("input is too long, maximum allowed is 4096 runes")
)

// Failures in reading the parameters the browser passes when upgrading to a WebSocket.
var (
	ErrWebSocketGetToken      = errors.New("failed to get the token from query")
	ErrWebSocketGetDimensions = errors.New("failed to get terminal dimensions from query")
	ErrWebSocketGetIP         = errors.New("failed to get the client address")
)

var (
	// ErrBridgeCredentialsNotFound is returned when the SSH bridge finds no parked credentials
	// for the connection, which means the handoff expired or was already consumed.
	ErrBridgeCredentialsNotFound = errors.New("failed to find the credentials")
	// ErrBridgeReadHostKey is returned when the SSH server's host key cannot be read, leaving
	// the bridge nothing to pin its loopback connection to.
	ErrBridgeReadHostKey = errors.New("failed to read the SSH server's host key")
	// ErrBridgeDecryptPassword is returned, joined with the cause, when the parked credentials
	// hold a password the server cannot decrypt, so the bridge ends before it tries to log in
	// to the device.
	ErrBridgeDecryptPassword = errors.New("failed to decrypt the credentials' password")
)

// Failures in reading the parameters of a session request.
var (
	ErrGetToken      = errors.New("token not found on request query")
	ErrGetIP         = errors.New("the client address was not resolved")
	ErrGetDimensions = errors.New("failed to get a terminal dimension")
)

// ErrCredentialsEncryptPassword is returned, joined with the cause, when the server cannot
// encrypt a password before parking it. A password longer than the magic key's OAEP limit of
// 190 bytes is the case a caller can trigger.
var ErrCredentialsEncryptPassword = errors.New("failed to encrypt the credentials' password")

// Refusals the browser is shown, as opposed to internal failures.
var (
	ErrAccessDenied = errors.New("access to the device has been denied")
	ErrInvalidSSHID = errors.New("invalid sshid format")
)