SSHServer class

Inheritance

Constructors

SSHServer(Identity hostkey, {Uri hostport, bool compress = false, List<Forward> forwardLocal, List<Forward> forwardRemote, VoidCallback disconnected, ResponseCallback response, StringCallback print, StringCallback debugPrint, StringCallback tracePrint, SocketInterface socket, Random random, SecureRandom secureRandom, RemoteForwardCallback directTcpRequest, UserAuthRequest userAuthRequest, ChannelRequest sessionChannelRequest, GexRequest gexRequest})

Properties

channels HashMap<int, Channel>
getter/setter pairinherited
cipherIdC2s int
getter/setter pairinherited
cipherIdS2c int
getter/setter pairinherited
client bool
Whether we've initiated the connection.
no setterinherited
compress bool
Whether compression is supported.
getter/setter pairinherited
compressIdC2s int
getter/setter pairinherited
compressIdS2c int
getter/setter pairinherited
debugPrint StringCallback
Parameter invoked with debug logging.
getter/setter pairinherited
decrypt ↔ BlockCipher
getter/setter pairinherited
decryptBlockSize int
getter/setter pairinherited
decryptBuf Uint8List
getter/setter pairinherited
dh DiffieHellman
getter/setter pairinherited
directTcpRequest RemoteForwardCallback
getter/setter pair
disconnected VoidCallback
Parameter invoked on connection close.
getter/setter pairinherited
ecdh EllipticCurveDiffieHellman
getter/setter pairinherited
encrypt ↔ BlockCipher
getter/setter pairinherited
encryptBlockSize int
getter/setter pairinherited
exH Uint8List
getter/setter pairinherited
forwardingRemote HashMap<int, Forward>
getter/setter pairinherited
forwardLocal List<Forward>
Parameter describing local ports to forward over SSH tunnel.
getter/setter pairinherited
forwardRemote List<Forward>
Parameter describing remote ports to forward over SSH tunnel.
getter/setter pairinherited
gexRequest GexRequest
getter/setter pair
guessedC bool
getter/setter pairinherited
guessedRightC bool
getter/setter pairinherited
guessedRightS bool
getter/setter pairinherited
guessedS bool
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
hostkeyType int
getter/setter pairinherited
hostport Uri
Remote endpoint of SSH connection. Parameter on client-side.
getter/setter pairinherited
identity Identity
Parameter for public key authentication
getter/setter pairinherited
initialWindowSize int
getter/setter pairinherited
integrityC2s Uint8List
getter/setter pairinherited
integrityS2c Uint8List
getter/setter pairinherited
K BigInt
getter/setter pairinherited
kexHash ↔ Digest
getter/setter pairinherited
kexInitC Uint8List
getter/setter pairinherited
kexInitS Uint8List
getter/setter pairinherited
kexMethod int
getter/setter pairinherited
macAlgoC2s ↔ HMac
getter/setter pairinherited
macAlgoS2c ↔ HMac
getter/setter pairinherited
macHashLenC int
getter/setter pairinherited
macHashLenS int
getter/setter pairinherited
macIdC2s int
getter/setter pairinherited
macIdS2c int
getter/setter pairinherited
macPrefixC2s int
getter/setter pairinherited
macPrefixS2c int
getter/setter pairinherited
maxPacketSize int
getter/setter pairinherited
nextChannelId int
getter/setter pairinherited
packetId int
getter/setter pairinherited
packetLen int
getter/setter pairinherited
packetMacLen int
getter/setter pairinherited
packetS SerializableInput
getter/setter pairinherited
padding int
getter/setter pairinherited
print StringCallback
Parameter invoked with ERROR and INFO loggging.
getter/setter pairinherited
random Random
Source of randomness, e.g Random.secure().
getter/setter pairinherited
readBuffer QueueBuffer
getter/setter pairinherited
remoteForward RemoteForwardCallback
Paramter invoked upon connection to forwarded remote port.
getter/setter pairinherited
response ResponseCallback
Parameter invoked with session channel data (and optionally UI prompts).
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
secureRandom ↔ SecureRandom
Pointycastle's random interface.
getter/setter pairinherited
sequenceNumberC2s int
getter/setter pairinherited
sequenceNumberS2c int
getter/setter pairinherited
server bool
getter/setter pairinherited
serverVersion num
getter/setter pairinherited
sessionChannel Channel
getter/setter pairinherited
sessionChannelRequest ChannelRequest
getter/setter pair
sessionId Uint8List
getter/setter pairinherited
socket SocketInterface
getter/setter pairinherited
state int
getter/setter pairinherited
tracePrint StringCallback
Parameter invoked with trace logging.
getter/setter pairinherited
userAuthRequest UserAuthRequest
getter/setter pair
verC String
getter/setter pairinherited
verS String
getter/setter pairinherited
x25519dh X25519DiffieHellman
getter/setter pairinherited
zreader ↔ dynamic
getter/setter pairinherited
zwriter ↔ dynamic
getter/setter pairinherited

Methods

acceptChannel(MSG_CHANNEL_OPEN msg) Channel
Accepts MSG_CHANNEL_OPEN request to open a new Channel.
inherited
closeChannel(Channel channel) → void
Send EOF and close for channel.
inherited
disconnect(String reason) → void
If anything goes wrong, disconnect with reason.
inherited
getSecureRandom() → SecureRandom
PointyCastle random number generator interface.
inherited
handleChannelClose(Channel channel, [String description]) → void
override
handleChannelData(Channel channel, Uint8List data) → void
override
handleChannelOpenConfirmation(Channel channel) → void
override
handleConnected() → void
When the connection has been established, both sides MUST send an identification string. https://tools.ietf.org/html/rfc4253#section-4.2
inherited
handleDhMSG_KEXDH_INIT(int packetId, MSG_KEXDH_INIT msg) → void
handleEcDhMSG_KEX_ECDH_INIT(MSG_KEX_ECDH_INIT msg) → void
handleInitialState() → void
Consumes the initial Protocol Version Exchange. https://tools.ietf.org/html/rfc4253#section-4.2
inherited
handleMSG_CHANNEL_CLOSE(MSG_CHANNEL_CLOSE msg) → void
Upon receiving this message, a party MUST send back an SSH_MSG_CHANNEL_CLOSE unless it has already sent this message for the channel.
inherited
handleMSG_CHANNEL_DATA(MSG_CHANNEL_DATA msg) → void
Data transfer is done with messages of the type SSH_MSG_CHANNEL_DATA.
inherited
handleMSG_CHANNEL_EOF(MSG_CHANNEL_EOF msg) → void
No explicit response is sent to this message. However, the application may send EOF to whatever is at the other end of the channel.
inherited
handleMSG_CHANNEL_OPEN(MSG_CHANNEL_OPEN msg, SerializableInput packetS) → void
handleMSG_CHANNEL_OPEN_CONFIRMATION(MSG_CHANNEL_OPEN_CONFIRMATION msg) → void
If the remote side can open the channel, it responds with SSH_MSG_CHANNEL_OPEN_CONFIRMATION.
inherited
handleMSG_CHANNEL_OPEN_FAILURE(MSG_CHANNEL_OPEN_FAILURE msg) → void
If the remote side can't open the channel, it responds with SSH_MSG_CHANNEL_OPEN_FAILURE.
inherited
handleMSG_CHANNEL_REQUEST(MSG_CHANNEL_REQUEST msg) → void
handleMSG_CHANNEL_WINDOW_ADJUST(MSG_CHANNEL_WINDOW_ADJUST msg) → void
After receiving this message, the recipient MAY send the given number of bytes more than it was previously allowed to send; the window size is incremented.
inherited
handleMSG_DEBUG(MSG_DEBUG msg) → void
All implementations MUST understand MSG_DEBUG, but they are allowed to ignore it.
inherited
handleMSG_DISCONNECT(MSG_DISCONNECT msg) → void
The recipient MUST NOT accept any data after receiving MSG_DISCONNECT.
inherited
handleMSG_GLOBAL_REQUEST(MSG_GLOBAL_REQUEST msg) → void
https://tools.ietf.org/html/rfc4254#section-4
inherited
handleMSG_IGNORE(MSG_IGNORE msg) → void
MSG_IGNORE can be used as an additional protection measure against advanced traffic analysis techniques.
inherited
handleMSG_KEX_DH_GEX_REQUEST(MSG_KEX_DH_GEX_REQUEST msg) → void
handleMSG_KEXDH_INIT(int packetId, Uint8List packet) → void
handleMSG_KEXINIT(MSG_KEXINIT msg, Uint8List packet) → void
https://tools.ietf.org/html/rfc4253#section-7.1
inherited
handleMSG_NEWKEYS() → void
When MSG_NEWKEYS is received, the new keys and algorithms MUST be used for receiving.
inherited
handleMSG_SERVICE_REQUEST(MSG_SERVICE_REQUEST msg) → void
handleMSG_USERAUTH_REQUEST(MSG_USERAUTH_REQUEST msg) → void
handlePacket(Uint8List packet) → void
override
handleRead(Uint8List dataChunk) → void
Callback supplied to socket.listen.
inherited
handleX25519MSG_KEX_ECDH_INIT(MSG_KEX_ECDH_INIT msg) → void
initCipher(int cipherId, Uint8List IV, Uint8List key, bool dir) → BlockCipher
Initializes the block cipher used for encrypted transport.
inherited
initializeDiffieHellman(int kexMethod, Random random) → void
inherited
initializeDiffieHellmanGroup(BigInt p, BigInt g, Random random) → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onConnected() → void
Callback supplied to socket.connect.
inherited
openAgentChannel(ChannelCallback cb, {VoidCallback connected, StringCallback error}) Channel
openTcpChannel(String sourceHost, int sourcePort, String destHost, int destPort, ChannelCallback cb, {VoidCallback connected, StringCallback error}) Channel
Request remote opens a new TCP channel to destHost:destPort.
inherited
readCipher(Uint8List m) Uint8List
Decrypt data using the negotiated block cipher.
inherited
sendChannelData(Uint8List b) → void
override
sendDiffileHellmanInit() → void
Does nothing. The client initializes Diffie Hellman.
override
sendKeyExchangeInit(bool guess) → void
Key exchange begins by each side sending SSH_MSG_KEXINIT.
inherited
sendNewKeys() → void
inherited
sendToChannel(Channel channel, Uint8List data) → void
Sends data to channel.
inherited
toString() String
A string representation of this object.
inherited
updateExchangeHash(Uint8List kS) → void
Computes a new exchange hash exH given the server key kS.
inherited
writeCipher(SSHMessage msg) → void
Encrypt Binary Packet data using the negotiated block cipher and MAC.
inherited
writeClearOrEncrypted(SSHMessage msg) → void
Send a Binary Packet (e.g. KEX_INIT) that is initially sent in the clear, but encryped when keys are being renegotiated.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited