phpseclib\Net\SSH1::login PHP Method

login() public method

Login
public login ( string $username, string $password = '' ) : boolean
$username string
$password string
return boolean
    function login($username, $password = '')
    {
        if (!($this->bitmap & self::MASK_CONSTRUCTOR)) {
            $this->bitmap |= self::MASK_CONSTRUCTOR;
            if (!$this->_connect()) {
                return false;
            }
        }
        if (!($this->bitmap & self::MASK_CONNECTED)) {
            return false;
        }
        $data = pack('CNa*', NET_SSH1_CMSG_USER, strlen($username), $username);
        if (!$this->_send_binary_packet($data)) {
            throw new \RuntimeException('Error sending SSH_CMSG_USER');
        }
        $response = $this->_get_binary_packet();
        if ($response === true) {
            return false;
        }
        if ($response[self::RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) {
            $this->bitmap |= self::MASK_LOGIN;
            return true;
        } elseif ($response[self::RESPONSE_TYPE] != NET_SSH1_SMSG_FAILURE) {
            throw new \UnexpectedValueException('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE');
        }
        $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen($password), $password);
        if (!$this->_send_binary_packet($data)) {
            throw new \RuntimeException('Error sending SSH_CMSG_AUTH_PASSWORD');
        }
        // remove the username and password from the last logged packet
        if (defined('NET_SSH1_LOGGING') && NET_SSH1_LOGGING == self::LOG_COMPLEX) {
            $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen('password'), 'password');
            $this->message_log[count($this->message_log) - 1] = $data;
        }
        $response = $this->_get_binary_packet();
        if ($response === true) {
            return false;
        }
        if ($response[self::RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) {
            $this->bitmap |= self::MASK_LOGIN;
            return true;
        } elseif ($response[self::RESPONSE_TYPE] == NET_SSH1_SMSG_FAILURE) {
            return false;
        } else {
            throw new \UnexpectedValueException('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE');
        }
    }