示例#1
0
 /**
  * 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);
     }
 }
示例#2
0
 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;
 }
示例#3
0
 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());
 }
示例#4
0
 public function __construct(\fpoirotte\Pssht\Transport $transport, \fpoirotte\Pssht\Connection $connection, \fpoirotte\Pssht\MessageInterface $message)
 {
     $transport->setHandler(\fpoirotte\Pssht\Messages\CHANNEL\DATA::getMessageId(), $this);
 }