Connect Manager

SshWire

FinalYes

Низкоуровневый обмен SSH-пакетами: plain и AES-128-CTR + HMAC-SHA256.

Tags
SuppressWarnings

("PHPMD.ErrorControlOperator")

("PHPMD.CyclomaticComplexity")

("PHPMD.ExcessiveClassComplexity")

("PHPMD.StaticAccess")

("PHPMD.ExcessiveMethodLength")

("PHPMD.NPathComplexity")

("PHPMD.ShortVariable")

Table of Contents

Methods

__construct()  : mixed
Привязывает wire к уже открытому TCP stream.
close()  : void
Закрывает TCP stream и обнуляет ссылку (повторный вызов безопасен).
enableEncryption()  : void
Включает шифрование и MAC после обмена NEWKEYS.
receive()  : string
Читает следующий SSH-пакет и возвращает payload без padding.
send()  : void
Отправляет SSH payload (без packet_length/padding — их добавляет метод).

Methods

__construct()

Привязывает wire к уже открытому TCP stream.

public __construct(resource $stream) : mixed
Parameters
$stream : resource

Поток после TCP connect (binary-safe)

close()

Закрывает TCP stream и обнуляет ссылку (повторный вызов безопасен).

public close() : void

enableEncryption()

Включает шифрование и MAC после обмена NEWKEYS.

public enableEncryption(string $clientToServerKey, string $serverToClientKey, string $clientToServerIv, string $serverToClientIv, string $clientToServerMacKey, string $serverToClientMacKey) : void
Parameters
$clientToServerKey : string

Ключ AES client→server (16 байт)

$serverToClientKey : string

Ключ AES server→client (16 байт)

$clientToServerIv : string

IV/counter client→server (16 байт)

$serverToClientIv : string

IV/counter server→client (16 байт)

$clientToServerMacKey : string

Ключ HMAC client→server (32 байта)

$serverToClientMacKey : string

Ключ HMAC server→client (32 байта)

receive()

Читает следующий SSH-пакет и возвращает payload без padding.

public receive() : string
Tags
throws
ConnectionException

При ошибке decrypt/MAC/read или битом packet_length

Return values
string —

Payload начиная с message type; '' не ожидается при успехе

send()

Отправляет SSH payload (без packet_length/padding — их добавляет метод).

public send(string $payload) : void
Parameters
$payload : string

Содержимое пакета начиная с message type byte

Tags
throws
ConnectionException

При ошибке encrypt/write или закрытом stream

On this page

Search results