/**@class javax.net.ssl.HttpsURLConnection
@extends java.net.HttpURLConnection

 <code>HttpsURLConnection</code> extends <code>HttpURLConnection</code>
 with support for https-specific features.
 <P>
 See <A HREF="http://www.w3.org/pub/WWW/Protocols/">
 http://www.w3.org/pub/WWW/Protocols/</A> and
 <A HREF="http://www.ietf.org/"> RFC 2818 </A>
 for more details on the
 https specification.
 <P>
 This class uses <code>HostnameVerifier</code> and
 <code>SSLSocketFactory</code>.
 There are default implementations defined for both classes.
 However, the implementations can be replaced on a per-class (static) or
 per-instance basis.  All new <code>HttpsURLConnection</code>s instances
 will be assigned
 the "default" static values at instance creation, but they can be overriden
 by calling the appropriate per-instance set method(s) before
 <code>connect</code>ing.

 @since 1.4
*/
var HttpsURLConnection = {

/**Returns the cipher suite in use on this connection.
@return {String} the cipher suite
@throws IllegalStateException if this method is called before
          the connection has been established.
*/
getCipherSuite : function(  ) {},

/**Returns the certificate(s) that were sent to the server during
 handshaking.
 <P>
 Note: This method is useful only when using certificate-based
 cipher suites.
 <P>
 When multiple certificates are available for use in a
 handshake, the implementation chooses what it considers the
 "best" certificate chain available, and transmits that to
 the other side.  This method allows the caller to know
 which certificate chain was actually sent.
@return {Object {java.security.cert.Certificate}} an ordered array of certificates,
          with the client's own certificate first followed by any
          certificate authorities.  If no certificates were sent,
          then null is returned.
@throws IllegalStateException if this method is called before
          the connection has been established.
@see #getLocalPrincipal()
*/
getLocalCertificates : function(  ) {},

/**Returns the server's certificate chain which was established
 as part of defining the session.
 <P>
 Note: This method can be used only when using certificate-based
 cipher suites; using it with non-certificate-based cipher suites,
 such as Kerberos, will throw an SSLPeerUnverifiedException.
@return {Object {java.security.cert.Certificate}} an ordered array of server certificates,
          with the peer's own certificate first followed by
          any certificate authorities.
@throws SSLPeerUnverifiedException if the peer is not verified.
@throws IllegalStateException if this method is called before
          the connection has been established.
@see #getPeerPrincipal()
*/
getServerCertificates : function(  ) {},

/**Returns the server's principal which was established as part of
 defining the session.
 <P>
 Note: Subclasses should override this method. If not overridden, it
 will default to returning the X500Principal of the server's end-entity
 certificate for certificate-based ciphersuites, or throw an
 SSLPeerUnverifiedException for non-certificate based ciphersuites,
 such as Kerberos.
@return {Object {java.security.Principal}} the server's principal. Returns an X500Principal of the
 end-entity certiticate for X509-based cipher suites, and
 KerberosPrincipal for Kerberos cipher suites.
@throws SSLPeerUnverifiedException if the peer was not verified
@throws IllegalStateException if this method is called before
          the connection has been established.
@see #getServerCertificates()
@see #getLocalPrincipal()
@since 1.5
*/
getPeerPrincipal : function(  ) {},

/**Returns the principal that was sent to the server during handshaking.
 <P>
 Note: Subclasses should override this method. If not overridden, it
 will default to returning the X500Principal of the end-entity certificate
 that was sent to the server for certificate-based ciphersuites or,
 return null for non-certificate based ciphersuites, such as Kerberos.
@return {Object {java.security.Principal}} the principal sent to the server. Returns an X500Principal
 of the end-entity certificate for X509-based cipher suites, and
 KerberosPrincipal for Kerberos cipher suites. If no principal was
 sent, then null is returned.
@throws IllegalStateException if this method is called before
          the connection has been established.
@see #getLocalCertificates()
@see #getPeerPrincipal()
@since 1.5
*/
getLocalPrincipal : function(  ) {},

/**Sets the default <code>HostnameVerifier</code> inherited by a
 new instance of this class.
 <p>
 Developers are <em>strongly</em> discouraged from changing the default
 {@code HostnameVerifier} as {@link #getDefaultHostnameVerifier}() is used by several
 classes for hostname verification on Android.
 <table>
     <tr>
         <th>User</th>
         <th>Effect</th>
     </tr>
     <tr>
         <td>Android's default {@link javax.net.ssl.TrustManager}, as used with Android's default
         {@link javax.net.ssl.SSLContext}, {@link javax.net.ssl.SSLSocketFactory} and {@link javax.net.ssl.SSLSocket} implementations.
         </td>
         <td>The {@code HostnameVerifier} is used to verify the peer's
         certificate hostname after connecting if {@code
         SSLParameters.setEndpointIdentificationAlgorithm("HTTPS")} has been called.
         Instances use the <em>current</em> default {@code HostnameVerifier} at verification
         time.</td>
     </tr>
     <tr>
         <td>{@link android.net.SSLCertificateSocketFactory}</td>
         <td>The current default {@code HostnameVerifier} is used from various {@code
         createSocket} methods. See {@link android.net.SSLCertificateSocketFactory} for
         details; for example {@link android.net.SSLCertificateSocketFactory#createSocket(String, int)}.
         </td>
     </tr>
     <tr>
         <td>Android's default {@link javax.net.ssl.HttpsURLConnection} implementation.</td>
         <td>The {@code HostnameVerifier} is used after a successful TLS handshake to verify
         the URI host against the TLS session server. Instances use the default {@code
         HostnameVerifier} set <em>when they were created</em> unless overridden with {@link #setHostnameVerifier}(HostnameVerifier).
         Android's <code>HttpsURLConnection</code> relies on the {@code HostnameVerifier}
         for the <em>entire</em> hostname verification step.</td>
     </tr>
 </table>
 <p>
 If this method is not called, the default <code>HostnameVerifier</code> will check the
 hostname according to RFC 2818.
@param {Object {HostnameVerifier}} v the default host name verifier
@throws IllegalArgumentException if the <code>HostnameVerifier</code>
          parameter is null.
@throws SecurityException if a security manager exists and its
         <code>checkPermission</code> method does not allow
         <code>SSLPermission("setHostnameVerifier")</code>
@see #getDefaultHostnameVerifier()
*/
setDefaultHostnameVerifier : function(  ) {},

/**Gets the default <code>HostnameVerifier</code> that is inherited
 by new instances of this class.
@return {Object {javax.net.ssl.HostnameVerifier}} the default host name verifier
@see #setDefaultHostnameVerifier(HostnameVerifier)
*/
getDefaultHostnameVerifier : function(  ) {},

/**Sets the <code>HostnameVerifier</code> for this instance.
 <P>
 New instances of this class inherit the default static hostname
 verifier set by {@link #setDefaultHostnameVerifier(HostnameVerifier)
 setDefaultHostnameVerifier}.  Calls to this method replace
 this object's <code>HostnameVerifier</code>.
 <p>
 Android's <code>HttpsURLConnection</code> relies on the {@code HostnameVerifier}
 for the <em>entire</em> hostname verification step.
@param {Object {HostnameVerifier}} v the host name verifier
@throws IllegalArgumentException if the <code>HostnameVerifier</code>
  parameter is null.
@see #getHostnameVerifier()
@see #setDefaultHostnameVerifier(HostnameVerifier)
*/
setHostnameVerifier : function(  ) {},

/**Gets the <code>HostnameVerifier</code> in place on this instance.
@return {Object {javax.net.ssl.HostnameVerifier}} the host name verifier
@see #setHostnameVerifier(HostnameVerifier)
@see #setDefaultHostnameVerifier(HostnameVerifier)
*/
getHostnameVerifier : function(  ) {},

/**Sets the default <code>SSLSocketFactory</code> inherited by new
 instances of this class.
 <P>
 The socket factories are used when creating sockets for secure
 https URL connections.
@param {Object {SSLSocketFactory}} sf the default SSL socket factory
@throws IllegalArgumentException if the SSLSocketFactory
          parameter is null.
@throws SecurityException if a security manager exists and its
         <code>checkSetFactory</code> method does not allow
         a socket factory to be specified.
@see #getDefaultSSLSocketFactory()
*/
setDefaultSSLSocketFactory : function(  ) {},

/**Gets the default static <code>SSLSocketFactory</code> that is
 inherited by new instances of this class.
 <P>
 The socket factories are used when creating sockets for secure
 https URL connections.
@return {Object {javax.net.ssl.SSLSocketFactory}} the default <code>SSLSocketFactory</code>
@see #setDefaultSSLSocketFactory(SSLSocketFactory)
*/
getDefaultSSLSocketFactory : function(  ) {},

/**Sets the <code>SSLSocketFactory</code> to be used when this instance
 creates sockets for secure https URL connections.
 <P>
 New instances of this class inherit the default static
 <code>SSLSocketFactory</code> set by
 {@link #setDefaultSSLSocketFactory(SSLSocketFactory)
 setDefaultSSLSocketFactory}.  Calls to this method replace
 this object's <code>SSLSocketFactory</code>.
@param {Object {SSLSocketFactory}} sf the SSL socket factory
@throws IllegalArgumentException if the <code>SSLSocketFactory</code>
          parameter is null.
@throws SecurityException if a security manager exists and its
         <code>checkSetFactory</code> method does not allow
         a socket factory to be specified.
@see #getSSLSocketFactory()
*/
setSSLSocketFactory : function(  ) {},

/**Gets the SSL socket factory to be used when creating sockets
 for secure https URL connections.
@return {Object {javax.net.ssl.SSLSocketFactory}} the <code>SSLSocketFactory</code>
@see #setSSLSocketFactory(SSLSocketFactory)
*/
getSSLSocketFactory : function(  ) {},


};