// Path: src/main/net/sourceforge/jtds/ssl/Ssl.java
// public interface Ssl {
//     /**
//      * SSL is not used.
//      */
//     String SSL_OFF = "off";
//     /**
//      * SSL is requested; a plain socket is used if SSL is not available.
//      */
//     String SSL_REQUEST = "request";
//     /**
//      * SSL is required; an exception if thrown if SSL is not available.
//      */
//     String SSL_REQUIRE = "require";
//     /**
//      * SSL is required and the server must return a certificate signed by a
//      * client-trusted authority.
//      */
//     String SSL_AUTHENTICATE = "authenticate";
//     /** Size of TLS record header. */
//     int  TLS_HEADER_SIZE = 5;
//     /** TLS Change Cipher Spec record type. */
//     byte TYPE_CHANGECIPHERSPEC = 20;
//     /** TLS Alert record type. */
//     byte TYPE_ALERT = 21;
//     /** TLS Handshake record. */
//     byte TYPE_HANDSHAKE = 22;
//     /** TLS Application data record. */
//     byte TYPE_APPLICATIONDATA = 23;
//     /** TLS Hand shake Header Size. */
//     int HS_HEADER_SIZE = 4;
//     /** TLS Hand shake client key exchange sub type. */
//     int TYPE_CLIENTKEYEXCHANGE = 16;
//     /** TLS Hand shake client hello sub type. */
//     int TYPE_CLIENTHELLO = 1;
// 
// }


import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.SQLTimeoutException;
import java.sql.SQLWarning;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Random;
import org.ietf.jgss.GSSContext;
import org.ietf.jgss.GSSException;
import org.ietf.jgss.GSSManager;
import org.ietf.jgss.GSSName;
import org.ietf.jgss.Oid;
import net.sourceforge.jtds.ssl.Ssl;
import net.sourceforge.jtds.util.Logger;
import net.sourceforge.jtds.util.SSPIJNIClient;
import net.sourceforge.jtds.util.TimerThread;
        }

        return EMPTY_PARAMETER_INFO;
    }

    /**
     * Retrieve the current result set data items.
     *
     * @return the row data as an <code>Object</code> array
     */
    Object[] getRowData() {
        return rowData;
    }

    /**
     * Negotiate SSL settings with SQL 2000+ server.
     * <p/>
     * Server returns the following values for SSL mode:
     * <ol>
     * <ll>0 = Certificate installed encrypt login packet only.
     * <li>1 = Certificate installed client requests force encryption.
     * <li>2 = No certificate no encryption possible.
     * <li>3 = Server requests force encryption.
     * </ol>
     * @param instance The server instance name.
     * @param ssl The SSL URL property value.
     * @throws IOException
     */
    void negotiateSSL(String instance, String ssl)
            throws IOException, SQLException {
// Path: src/main/net/sourceforge/jtds/ssl/Ssl.java
// public interface Ssl {
//     /**
//      * SSL is not used.
//      */
//     String SSL_OFF = "off";
//     /**
//      * SSL is requested; a plain socket is used if SSL is not available.
//      */
//     String SSL_REQUEST = "request";
//     /**
//      * SSL is required; an exception if thrown if SSL is not available.
//      */
//     String SSL_REQUIRE = "require";
//     /**
//      * SSL is required and the server must return a certificate signed by a
//      * client-trusted authority.
//      */
//     String SSL_AUTHENTICATE = "authenticate";
//     /** Size of TLS record header. */
//     int  TLS_HEADER_SIZE = 5;
//     /** TLS Change Cipher Spec record type. */
//     byte TYPE_CHANGECIPHERSPEC = 20;
//     /** TLS Alert record type. */
//     byte TYPE_ALERT = 21;
//     /** TLS Handshake record. */
//     byte TYPE_HANDSHAKE = 22;
//     /** TLS Application data record. */
//     byte TYPE_APPLICATIONDATA = 23;
//     /** TLS Hand shake Header Size. */
//     int HS_HEADER_SIZE = 4;
//     /** TLS Hand shake client key exchange sub type. */
//     int TYPE_CLIENTKEYEXCHANGE = 16;
//     /** TLS Hand shake client hello sub type. */
//     int TYPE_CLIENTHELLO = 1;
// 
// }


// Path: src/main/net/sourceforge/jtds/jdbc/TdsCore.java
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.SQLTimeoutException;
import java.sql.SQLWarning;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Random;
import org.ietf.jgss.GSSContext;
import org.ietf.jgss.GSSException;
import org.ietf.jgss.GSSManager;
import org.ietf.jgss.GSSName;
import org.ietf.jgss.Oid;
import net.sourceforge.jtds.ssl.Ssl;
import net.sourceforge.jtds.util.Logger;
import net.sourceforge.jtds.util.SSPIJNIClient;
import net.sourceforge.jtds.util.TimerThread;

        }

        return EMPTY_PARAMETER_INFO;
    }

    /**
     * Retrieve the current result set data items.
     *
     * @return the row data as an <code>Object</code> array
     */
    Object[] getRowData() {
        return rowData;
    }

    /**
     * Negotiate SSL settings with SQL 2000+ server.
     * <p/>
     * Server returns the following values for SSL mode:
     * <ol>
     * <ll>0 = Certificate installed encrypt login packet only.
     * <li>1 = Certificate installed client requests force encryption.
     * <li>2 = No certificate no encryption possible.
     * <li>3 = Server requests force encryption.
     * </ol>
     * @param instance The server instance name.
     * @param ssl The SSL URL property value.
     * @throws IOException
     */
    void negotiateSSL(String instance, String ssl)
            throws IOException, SQLException {
        if (!ssl.equalsIgnoreCase(Ssl.SSL_OFF)) {