# File lib/net/ssh/authentication/methods/abstract.rb, line 43
    def userauth_request(username, next_service, auth_method, *others)
      buffer = Net::SSH::Buffer.from(:byte, USERAUTH_REQUEST,
        :string, username, :string, next_service, :string, auth_method)

      others.each do |value|
        case value
        when true, false then buffer.write_bool(value)
        when String      then buffer.write_string(value)
        else raise ArgumentError, "don't know how to write #{value.inspect}"
        end
      end

      buffer
    end