Pure-PHP implementations of SFTP.

author | Jim Wigginton
version | 0.1.0
access | public
package | Net_SFTP

### Methods

## Default Constructor.

    Net_SFTP(String $host, \optional $port, \optional $timeout) : \Net_SFTP

Connects to an SFTP server

access | public

### Parameters

#### $host

`String`

#### $port

`\optional`

Integer $port

#### $timeout

`\optional`

Integer $timeout

### Returns

`\Net_SFTP`

## Default Constructor.

    Net_SSH2(String $host, \optional $port, \optional $timeout) : \Net_SSH2

Inherited

Connects to an SSHv2 server

access | public
inherited_from | \Net_SSH2::Net_SSH2()

### Parameters

#### $host

`String`

#### $port

`\optional`

Integer $port

#### $timeout

`\optional`

Integer $timeout

### Returns

`\Net_SSH2`

## Destructor.

    __destruct()

Inherited

Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call disconnect().

access | public
inherited_from | \Net_SSH2::__destruct()

## Closes and flushes a channel

    _close_channel(Integer $client_channel) : Boolean

Inherited

Net_SSH2 doesn't properly close most channels. For exec() channels are normally closed by the server and for SFTP channels are presumably closed when the client disconnects. This functions is intended for SCP more than anything.

access | private
inherited_from | \Net_SSH2::_close_channel()

### Parameters

#### $client_channel

`Integer`

### Returns

`Boolean`

## Define Array

    _define_array()

Inherited

Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of named constants from it, using the value as the name of the constant and the index as the value of the constant. If any of the constants that would be defined already exists, none of the constants will be defined.

access | private
inherited_from | \Net_SSH2::_define_array()

## Disconnect

    _disconnect(Integer $reason) : Boolean

access | private

### Parameters

#### $reason

`Integer`

### Returns

`Boolean`

## Filter Binary Packets

    _filter($payload) : String

Inherited

Because some binary packets need to be ignored...

see | \global\Net_SSH2::_get_binary_packet()
access | private
inherited_from | \Net_SSH2::_filter()

### Parameters

#### $payload

### Returns

`String`

## Formats a log for printing

    _format_log(Array $message_log, Array $message_number_log) : String

Inherited

access | private
inherited_from | \Net_SSH2::_format_log()

### Parameters

#### $message_log

`Array`

#### $message_number_log

`Array`

### Returns

`String`

## Gets Binary Packets

    _get_binary_packet() : String

Inherited

See '6. Binary Packet Protocol' of rfc4253 for more info.

see | \global\Net_SSH2::_send_binary_packet()
access | private
inherited_from | \Net_SSH2::_get_binary_packet()

### Returns

`String`

## Gets channel data

    _get_channel_packet($client_channel, $skip_extended) : Mixed

Inherited

Returns the data as a string if it's available and false if not.

access | private
inherited_from | \Net_SSH2::_get_channel_packet()

### Parameters

#### $client_channel

#### $skip_extended

### Returns

`Mixed`

## Receives SFTP Packets

    _get_sftp_packet() : String

See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info.

Incidentally, the number of SSH_MSG_CHANNEL_DATA messages has no bearing on the number of SFTP packets present. There can be one SSH_MSG_CHANNEL_DATA messages containing two SFTP packets or there can be two SSH_MSG_CHANNEL_DATA messages containing one SFTP packet.

see | \global\Net_SFTP::_send_sftp_packet()
access | private

### Returns

`String`

## Creates an interactive shell

    _initShell() : Boolean

Inherited

see | \global\Net_SSH2::read()
see | \global\Net_SSH2::write()
access | private
inherited_from | \Net_SSH2::_initShell()

### Returns

`Boolean`

## Key Exchange

    _key_exchange(String $kexinit_payload_server)

Inherited

access | private
inherited_from | \Net_SSH2::_key_exchange()

### Parameters

#### $kexinit_payload_server

`String`

## Login via keyboard-interactive authentication

    _keyboard_interactive_login(String $username, String $password) : Boolean

Inherited

See RFC4256 for details. This is not a full-featured keyboard-interactive authenticator.

access | private
inherited_from | \Net_SSH2::_keyboard_interactive_login()

### Parameters

#### $username

`String`

#### $password

`String`

### Returns

`Boolean`

## Handle the keyboard-interactive requests / responses.

    _keyboard_interactive_process() : Boolean

Inherited

access | private
inherited_from | \Net_SSH2::_keyboard_interactive_process()

### Returns

`Boolean`

## Reads a list, be it detailed or not, of files in the given directory

    _list(\optional $dir, $raw) : Mixed

access | private

### Parameters

#### $dir

`\optional`

String $dir

#### $raw

### Returns

`Mixed`

## Parse Attributes

    _parseAttributes(String $response) : Array

See '7. File Attributes' of draft-ietf-secsh-filexfer-13 for more info.

access | private

### Parameters

#### $response

`String`

### Returns

`Array`

## Parse Longname

    _parseLongname(String $longname) : Mixed

SFTPv3 doesn't provide any easy way of identifying a file type. You could try to open a file as a directory and see if an error is returned or you could try to parse the SFTPv3-specific longname field of the SSH_FXP_NAME packet. That's what this function does. The result is returned using the SFTPv4 type constants.

If the longname is in an unrecognized format bool(false) is returned.

access | private

### Parameters

#### $longname

`String`

### Returns

`Mixed`

## Reads multiple successive SSH_FXP_WRITE responses

    _read_put_responses(Integer $i) : Boolean

Sending an SSH_FXP_WRITE packet and immediately reading its response isn't as efficient as blindly sending out $i SSH_FXP_WRITEs, in succession, and then reading $i responses.

access | private

### Parameters

#### $i

`Integer`

### Returns

`Boolean`

## Canonicalize the Server-Side Path Name

    _realpath(String $dir) : Mixed

SFTP doesn't provide a mechanism by which the current working directory can be changed, so we'll emulate it. Returns the absolute (canonicalized) path. If $mode is set to NET_SFTP_CONFIRM_DIR (as opposed to NET_SFTP_CONFIRM_NONE, which is what it is set to by default), false is returned if $dir is not a valid directory.

see | \global\Net_SFTP::chdir()
access | private

### Parameters

#### $dir

`String`

### Returns

`Mixed`

## Sends Binary Packets

    _send_binary_packet(String $data) : Boolean

Inherited

See '6. Binary Packet Protocol' of rfc4253 for more info.

see | \global\Net_SSH2::_get_binary_packet()
access | private
inherited_from | \Net_SSH2::_send_binary_packet()

### Parameters

#### $data

`String`

### Returns

`Boolean`

## Sends channel data

    _send_channel_packet(Integer $client_channel, String $data) : Boolean

Inherited

Spans multiple SSH_MSG_CHANNEL_DATAs if appropriate

access | private
inherited_from | \Net_SSH2::_send_channel_packet()

### Parameters

#### $client_channel

`Integer`

#### $data

`String`

### Returns

`Boolean`

## Sends SFTP Packets

    _send_sftp_packet(Integer $type, String $data) : Boolean

See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info.

see | \global\Net_SFTP::_get_sftp_packet()
see | \global\Net_SSH2::_send_channel_packet()
access | private

### Parameters

#### $type

`Integer`

#### $data

`String`

### Returns

`Boolean`

## Returns the file size, in bytes, or false, on failure

    _size(String $filename) : Mixed

Determines the size without calling Net_SFTP::_realpath()

access | private

### Parameters

#### $filename

`String`

### Returns

`Mixed`

## Returns general information about a file or symbolic link

    _stat(String $filename, Integer $type) : Mixed

Determines information without calling Net_SFTP::_realpath(). The second parameter can be either NET_SFTP_STAT or NET_SFTP_LSTAT.

access | private

### Parameters

#### $filename

`String`

#### $type

`Integer`

### Returns

`Mixed`

## String Shift

    _string_shift(String $string, \optional $index) : String

Inherited

Inspired by array_shift

access | private
inherited_from | \Net_SSH2::_string_shift()

### Parameters

#### $string

`String`

#### $index

`\optional`

Integer $index

### Returns

`String`

## Changes the current directory

    chdir(String $dir) : Boolean

access | public

### Parameters

#### $dir

`String`

### Returns

`Boolean`

## Set permissions on a file.

    chmod(Integer $mode, String $filename) : Mixed

Returns the new file permissions on success or FALSE on error.

access | public

### Parameters

#### $mode

`Integer`

#### $filename

`String`

### Returns

`Mixed`

## Deletes a file on the SFTP server.

    delete(String $path) : Boolean

access | public

### Parameters

#### $path

`String`

### Returns

`Boolean`

## Disconnect

    disconnect()

Inherited

access | public
inherited_from | \Net_SSH2::disconnect()

## Execute Command

    exec(String $command, \optional $block) : String

Inherited

If $block is set to false then Net_SSH2::_get_channel_packet(NET_SSH2_CHANNEL_EXEC) will need to be called manually. In all likelihood, this is not a feature you want to be taking advantage of.

access | public
inherited_from | \Net_SSH2::exec()

### Parameters

#### $command

`String`

#### $block

`\optional`

Boolean $block

### Returns

`String`

## Downloads a file from the SFTP server.

    get(String $remote_file, \optional $local_file) : Mixed

Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the operation

access | public

### Parameters

#### $remote_file

`String`

#### $local_file

`\optional`

String $local_file

### Returns

`Mixed`

## Return a list of the compression algorithms the server supports, when receiving stuff from the client.

    getCompressionAlgorithmsClient2Server() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getCompressionAlgorithmsClient2Server()

### Returns

`Array`

## Return a list of the compression algorithms the server supports, when sending stuff to the client.

    getCompressionAlgorithmsServer2Client() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getCompressionAlgorithmsServer2Client()

### Returns

`Array`

## Return a list of the (symmetric key) encryption algorithms the server supports, when receiving stuff from the client.

    getEncryptionAlgorithmsClient2Server() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getEncryptionAlgorithmsClient2Server()

### Returns

`Array`

## Return a list of the (symmetric key) encryption algorithms the server supports, when sending stuff to the client.

    getEncryptionAlgorithmsServer2Client() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getEncryptionAlgorithmsServer2Client()

### Returns

`Array`

## Returns all errors

    getErrors() : String

Inherited

access | public
inherited_from | \Net_SSH2::getErrors()

### Returns

`String`

## Return a list of the key exchange algorithms the server supports.

    getKexAlgorithms() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getKexAlgorithms()

### Returns

`Array`

## Return a list of the languages the server supports, when receiving stuff from the client.

    getLanguagesClient2Server() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getLanguagesClient2Server()

### Returns

`Array`

## Return a list of the languages the server supports, when sending stuff to the client.

    getLanguagesServer2Client() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getLanguagesServer2Client()

### Returns

`Array`

## Returns the last error

    getLastError() : String

Inherited

access | public
inherited_from | \Net_SSH2::getLastError()

### Returns

`String`

## Returns the last error

    getLastSFTPError() : String

access | public

### Returns

`String`

## Returns a log of the packets that have been sent and received.

    getLog() : String

Inherited

Returns a string if NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX, an array if NET_SSH2_LOGGING == NET_SSH2_LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING')

access | public
inherited_from | \Net_SSH2::getLog()

### Returns

`String`or Array

## Return a list of the MAC algorithms the server supports, when receiving stuff from the client.

    getMACAlgorithmsClient2Server() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getMACAlgorithmsClient2Server()

### Returns

`Array`

## Return a list of the MAC algorithms the server supports, when sending stuff to the client.

    getMACAlgorithmsServer2Client() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getMACAlgorithmsServer2Client()

### Returns

`Array`

## Returns all errors

    getSFTPErrors() : String

access | public

### Returns

`String`

## Returns a log of the packets that have been sent and received.

    getSFTPLog() : String

Returns a string if NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX, an array if NET_SFTP_LOGGING == NET_SFTP_LOG_SIMPLE and false if !defined('NET_SFTP_LOGGING')

access | public

### Returns

`String`or Array

## Return a list of the host key (public key) algorithms the server supports.

    getServerHostKeyAlgorithms() : Array

Inherited

access | public
inherited_from | \Net_SSH2::getServerHostKeyAlgorithms()

### Returns

`Array`

## Return the server identification.

    getServerIdentification() : String

Inherited

access | public
inherited_from | \Net_SSH2::getServerIdentification()

### Returns

`String`

## Returns the server public host key.

    getServerPublicHostKey() : Mixed

Inherited

Caching this the first time you connect to a server and checking the result on subsequent connections is recommended. Returns false if the server signature is not signed correctly with the public host key.

access | public
inherited_from | \Net_SSH2::getServerPublicHostKey()

### Returns

`Mixed`

## Get supported SFTP versions

    getSupportedVersions() : Array

access | public

### Returns

`Array`

## Login

    login(String $username, \optional $password) : Boolean

The $password parameter can be a plaintext password or a Crypt_RSA object.

access | public

### Parameters

#### $username

`String`

#### $password

`\optional`

String $password

### Returns

`Boolean`

## Returns general information about a file or symbolic link.

    lstat(String $filename) : Mixed

Returns an array on success and false otherwise.

access | public

### Parameters

#### $filename

`String`

### Returns

`Mixed`

## Creates a directory.

    mkdir(String $dir) : Boolean

access | public

### Parameters

#### $dir

`String`

### Returns

`Boolean`

## Returns a list of files in the given directory

    nlist(\optional $dir) : Mixed

access | public

### Parameters

#### $dir

`\optional`

String $dir

### Returns

`Mixed`

## Returns the current directory name

    pwd() : Mixed

access | public

### Returns

`Mixed`

## Returns a detailed list of files in the given directory

    rawlist(\optional $dir) : Mixed

access | public

### Parameters

#### $dir

`\optional`

String $dir

### Returns

`Mixed`

## Returns the output of an interactive shell

    read(String $expect, Integer $mode) : String

Inherited

Returns when there's a match for $expect, which can take the form of a string literal or, if $mode == NET_SSH2_READ_REGEX, a regular expression.

see | \global\Net_SSH2::read()
access | public
inherited_from | \Net_SSH2::read()

### Parameters

#### $expect

`String`

#### $mode

`Integer`

### Returns

`String`

## Renames a file or a directory on the SFTP server

    rename(String $oldname, String $newname) : Boolean

access | public

### Parameters

#### $oldname

`String`

#### $newname

`String`

### Returns

`Boolean`

## Removes a directory.

    rmdir(String $dir) : Boolean

access | public

### Parameters

#### $dir

`String`

### Returns

`Boolean`

## Returns the file size, in bytes, or false, on failure

    size(String $filename) : Mixed

Files larger than 4GB will show up as being exactly 4GB.

access | public

### Parameters

#### $filename

`String`

### Returns

`Mixed`

## Returns general information about a file.

    stat(String $filename) : Mixed

Returns an array on success and false otherwise.

access | public

### Parameters

#### $filename

`String`

### Returns

`Mixed`

## Inputs a command into an interactive shell.

    write(String $cmd) : Boolean

Inherited

see | \global\Net_SSH1::interactiveWrite()
access | public
inherited_from | \Net_SSH2::write()

### Parameters

#### $cmd

`String`

### Returns

`Boolean`

### Properties

## Execution Bitmap

    $bitmap : Integer

Inherited

The bits that are set reprsent functions that have been called already. This is used to determine if a requisite function has been successfully executed. If not, an error should be thrown.

access | private
inherited_from | \Net_SSH2::$$bitmap

## Channel Buffers

    $channel_buffers : Array

Inherited

If a client requests a packet from one channel but receives two packets from another those packets should be placed in a buffer

see | \global\Net_SSH2::_get_channel_packet()
see | \global\Net_SSH2::exec()
access | private
inherited_from | \Net_SSH2::$$channel_buffers

## SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes

    $channel_extended_data_type_codes : Array

Inherited

link | http://tools.ietf.org/html/rfc4254#section-5.2
see | \global\Net_SSH2::Net_SSH2()
access | private
inherited_from | \Net_SSH2::$$channel_extended_data_type_codes

## SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254

    $channel_open_failure_reasons : Array

Inherited

see | \global\Net_SSH2::Net_SSH2()
access | private
inherited_from | \Net_SSH2::$$channel_open_failure_reasons

## Channel Status

    $channel_status : Array

Inherited

Contains the type of the last sent message

see | \global\Net_SSH2::_get_channel_packet()
access | private
inherited_from | \Net_SSH2::$$channel_status

## Compression Algorithms: Client to Server

    $compression_algorithms_client_to_server : Array

Inherited

see | \global\Net_SSH2::getCompressionAlgorithmsClient2Server()
access | private
inherited_from | \Net_SSH2::$$compression_algorithms_client_to_server

## Compression Algorithms: Server to Client

    $compression_algorithms_server_to_client : Array

Inherited

see | \global\Net_SSH2::getCompressionAlgorithmsServer2Client()
access | private
inherited_from | \Net_SSH2::$$compression_algorithms_server_to_client

## Server to Client Encryption Object

    $decrypt : Object

Inherited

see | \global\Net_SSH2::_get_binary_packet()
access | private
inherited_from | \Net_SSH2::$$decrypt

## Block Size for Client to Server Encryption

    $decrypt_block_size : Integer

Inherited

see | \global\Net_SSH2::Net_SSH2()
see | \global\Net_SSH2::_get_binary_packet()
access | private
inherited_from | \Net_SSH2::$$decrypt_block_size

## Disconnection Message 'reason codes' defined in RFC4253

    $disconnect_reasons : Array

Inherited

see | \global\Net_SSH2::Net_SSH2()
access | private
inherited_from | \Net_SSH2::$$disconnect_reasons

## Client to Server Encryption Object

    $encrypt : Object

Inherited

see | \global\Net_SSH2::_send_binary_packet()
access | private
inherited_from | \Net_SSH2::$$encrypt

## Block Size for Server to Client Encryption

    $encrypt_block_size : Integer

Inherited

"Note that the length of the concatenation of 'packet_length', 'padding_length', 'payload', and 'random padding' MUST be a multiple of the cipher block size or 8, whichever is larger. This constraint MUST be enforced, even when using stream ciphers."

-- http://tools.ietf.org/html/rfc4253#section-6

see | \global\Net_SSH2::Net_SSH2()
see | \global\Net_SSH2::_send_binary_packet()
access | private
inherited_from | \Net_SSH2::$$encrypt_block_size

## Encryption Algorithms: Client to Server

    $encryption_algorithms_client_to_server : Array

Inherited

see | \global\Net_SSH2::getEncryptionAlgorithmsClient2Server()
access | private
inherited_from | \Net_SSH2::$$encryption_algorithms_client_to_server

## Encryption Algorithms: Server to Client

    $encryption_algorithms_server_to_client : Array

Inherited

see | \global\Net_SSH2::getEncryptionAlgorithmsServer2Client()
access | private
inherited_from | \Net_SSH2::$$encryption_algorithms_server_to_client

## Error information

    $errors : String

Inherited

see | \global\Net_SSH2::getErrors()
see | \global\Net_SSH2::getLastError()
access | private
inherited_from | \Net_SSH2::$$errors

## Exchange hash

    $exchange_hash : String

Inherited

The current exchange hash

see | \global\Net_SSH2::_key_exchange()
access | private
inherited_from | \Net_SSH2::$$exchange_hash

## Extensions supported by the server

    $extensions : Array

see | \global\Net_SFTP::_initChannel()
access | private

## File Type

    $fileType : Integer

see | \global\Net_SFTP::_parseLongname()
access | private

## The Socket Object

    $fsock : Object

Inherited

access | private
inherited_from | \Net_SSH2::$$fsock

## Get Sequence Number

    $get_seq_no : Integer

Inherited

See 'Section 6.4. Data Integrity' of rfc4253 for more info.

see | \global\Net_SSH2::_get_binary_packet()
access | private
inherited_from | \Net_SSH2::$$get_seq_no

## Server to Client HMAC Object

    $hmac_check : Object

Inherited

see | \global\Net_SSH2::_get_binary_packet()
access | private
inherited_from | \Net_SSH2::$$hmac_check

## Client to Server HMAC Object

    $hmac_create : Object

Inherited

see | \global\Net_SSH2::_send_binary_packet()
access | private
inherited_from | \Net_SSH2::$$hmac_create

## Size of server to client HMAC

    $hmac_size : Integer

Inherited

We need to know how big the HMAC will be for the server to client direction so that we know how many bytes to read. For the client to server side, the HMAC object will make the HMAC as long as it needs to be. All we need to do is append it.

see | \global\Net_SSH2::_get_binary_packet()
access | private
inherited_from | \Net_SSH2::$$hmac_size

## The SSH identifier

    $identifier : String

Inherited

access | private
inherited_from | \Net_SSH2::$$identifier

## Interactive Buffer

    $interactiveBuffer : Array

Inherited

see | \global\Net_SSH2::read()
access | private
inherited_from | \Net_SSH2::$$interactiveBuffer

## Key Exchange Algorithms

    $kex_algorithms : Array

Inherited

see | \global\Net_SSH2::getKexAlgorithims()
access | private
inherited_from | \Net_SSH2::$$kex_algorithms

## Languages: Client to Server

    $languages_client_to_server : Array

Inherited

see | \global\Net_SSH2::getLanguagesClient2Server()
access | private
inherited_from | \Net_SSH2::$$languages_client_to_server

## Languages: Server to Client

    $languages_server_to_client : Array

Inherited

see | \global\Net_SSH2::getLanguagesServer2Client()
access | private
inherited_from | \Net_SSH2::$$languages_server_to_client

## MAC Algorithms: Client to Server

    $mac_algorithms_client_to_server : Array

Inherited

see | \global\Net_SSH2::getMACAlgorithmsClient2Server()
access | private
inherited_from | \Net_SSH2::$$mac_algorithms_client_to_server

## MAC Algorithms: Server to Client

    $mac_algorithms_server_to_client : Array

Inherited

see | \global\Net_SSH2::getMACAlgorithmsServer2Client()
access | private
inherited_from | \Net_SSH2::$$mac_algorithms_server_to_client

## Message Log

    $message_log : Array

Inherited

see | \global\Net_SSH2::getLog()
access | private
inherited_from | \Net_SSH2::$$message_log

## Message Number Log

    $message_number_log : Array

Inherited

see | \global\Net_SSH2::getLog()
access | private
inherited_from | \Net_SSH2::$$message_number_log

## Message Numbers

    $message_numbers : Array

Inherited

see | \global\Net_SSH2::Net_SSH2()
access | private
inherited_from | \Net_SSH2::$$message_numbers

## Packet Buffer

    $packet_buffer : String

see | \global\Net_SFTP::_get_sftp_packet()
access | private

## Packet Log

    $packet_log : Array

see | \global\Net_SFTP::getLog()
access | private

## Packet Size

    $packet_size_client_to_server : Array

Inherited

Maximum packet size indexed by channel

see | \global\Net_SSH2::_send_channel_packet()
access | private
inherited_from | \Net_SSH2::$$packet_size_client_to_server

## The Packet Type

    $packet_type : Integer

The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support concurrent actions, so it's somewhat academic, here.

see | \global\Net_SFTP::_get_sftp_packet()
access | private

## Packet Type Log

    $packet_type_log : Array

see | \global\Net_SFTP::getLog()
access | private

## Packet Types

    $packet_types : Array

see | \global\Net_SFTP::Net_SFTP()
access | private

## Current working directory

    $pwd : String

see | \global\Net_SFTP::_realpath()
see | \global\Net_SFTP::chdir()
access | private

## The Request ID

    $request_id : Integer

The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support concurrent actions, so it's somewhat academic, here.

see | \global\Net_SFTP::_send_sftp_packet()
access | private

## Send Sequence Number

    $send_seq_no : Integer

Inherited

See 'Section 6.4. Data Integrity' of rfc4253 for more info.

see | \global\Net_SSH2::_send_binary_packet()
access | private
inherited_from | \Net_SSH2::$$send_seq_no

## Server Channels

    $server_channels : Array

Inherited

Maps client channels to server channels

see | \global\Net_SSH2::_get_channel_packet()
see | \global\Net_SSH2::exec()
access | private
inherited_from | \Net_SSH2::$$server_channels

## Server Host Key Algorithms

    $server_host_key_algorithms : Array

Inherited

see | \global\Net_SSH2::getServerHostKeyAlgorithms()
access | private
inherited_from | \Net_SSH2::$$server_host_key_algorithms

## Server Identifier

    $server_identifier : String

Inherited

see | \global\Net_SSH2::getServerIdentification()
access | private
inherited_from | \Net_SSH2::$$server_identifier

## Server Public Host Key

    $server_public_host_key : String

Inherited

see | \global\Net_SSH2::getServerPublicHostKey()
access | private
inherited_from | \Net_SSH2::$$server_public_host_key

## Session identifer

    $session_id : String

Inherited

"The exchange hash H from the first key exchange is additionally used as the session identifier, which is a unique identifier for this connection."

-- http://tools.ietf.org/html/rfc4253#section-7.2

see | \global\Net_SSH2::_key_exchange()
access | private
inherited_from | \Net_SSH2::$$session_id

## Error information

    $sftp_errors : String

see | \global\Net_SFTP::getSFTPErrors()
see | \global\Net_SFTP::getLastSFTPError()
access | private

## Server signature

    $signature : String

Inherited

Verified against $this->session_id

see | \global\Net_SSH2::getServerPublicHostKey()
access | private
inherited_from | \Net_SSH2::$$signature

## Server signature format

    $signature_format : String

Inherited

ssh-rsa or ssh-dss.

see | \global\Net_SSH2::getServerPublicHostKey()
access | private
inherited_from | \Net_SSH2::$$signature_format

## Status Codes

    $status_codes : Array

see | \global\Net_SFTP::Net_SFTP()
access | private

## Terminal Modes

    $terminal_modes : Array

Inherited

link | http://tools.ietf.org/html/rfc4254#section-8
see | \global\Net_SSH2::Net_SSH2()
access | private
inherited_from | \Net_SSH2::$$terminal_modes

## Server SFTP version

    $version : Integer

see | \global\Net_SFTP::_initChannel()
access | private

## The Window Size

    $window_size : Integer

Inherited

Bytes the other party can send before it must wait for the window to be adjusted (0x7FFFFFFF = 4GB)

see | \global\Net_SSH2::_send_channel_packet()
see | \global\Net_SSH2::exec()
access | private
inherited_from | \Net_SSH2::$$window_size

## Window size

    $window_size_client_to_server : Array

Inherited

Window size indexed by channel

see | \global\Net_SSH2::_send_channel_packet()
access | private
inherited_from | \Net_SSH2::$$window_size_client_to_server