/** * Construct a new SSH connection layer. * * \param fpoirotte::Pssht::Transport $transport * SSH transport layer. */ public function __construct(\fpoirotte\Pssht\Transport $transport) { $this->channels = array(); $transport->setHandler(\fpoirotte\Pssht\Messages\CHANNEL\OPEN::getMessageId(), new \fpoirotte\Pssht\Handlers\CHANNEL\OPEN($this))->setHandler(\fpoirotte\Pssht\Messages\CHANNEL\CLOSE::getMessageId(), new \fpoirotte\Pssht\Handlers\CHANNEL\CLOSE($this))->setHandler(\fpoirotte\Pssht\Messages\CHANNEL\REQUEST\Base::getMessageId(), new \fpoirotte\Pssht\Handlers\CHANNEL\REQUEST($this)); foreach (array_merge(range(91, 96), array(99, 100)) as $msgId) { $transport->setHandler($msgId, $this); } }
public function handle($msgType, \fpoirotte\Pssht\Wire\Decoder $decoder, \fpoirotte\Pssht\Transport $transport, array &$context) { $message = \fpoirotte\Pssht\Messages\SERVICE\REQUEST::unserialize($decoder); $service = $message->getServiceName(); if ($service === 'ssh-userauth') { $response = new \fpoirotte\Pssht\Messages\SERVICE\ACCEPT($service); $transport->setHandler(\fpoirotte\Pssht\Messages\USERAUTH\REQUEST\Base::getMessageId(), $this->userAuthRequestHandler); } else { $response = new DISCONNECT(DISCONNECT::SSH_DISCONNECT_SERVICE_NOT_AVAILABLE, 'No such service'); } $transport->writeMessage($response); return true; }
public static function addHandlers(\fpoirotte\Pssht\Transport $transport) { $transport->setHandler(\fpoirotte\Pssht\Messages\KEX\ECDH\INIT\Curve25519::getMessageId(), new \fpoirotte\Pssht\Handlers\KEX\ECDH\INIT\Curve25519()); }
public function __construct(\fpoirotte\Pssht\Transport $transport, \fpoirotte\Pssht\Connection $connection, \fpoirotte\Pssht\MessageInterface $message) { $transport->setHandler(\fpoirotte\Pssht\Messages\CHANNEL\DATA::getMessageId(), $this); }