Share via


SSLSocket Clase

Definición

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

[Android.Runtime.Register("javax/net/ssl/SSLSocket", DoNotGenerateAcw=true)]
public abstract class SSLSocket : Java.Net.Socket
[<Android.Runtime.Register("javax/net/ssl/SSLSocket", DoNotGenerateAcw=true)>]
type SSLSocket = class
    inherit Socket
Herencia
SSLSocket
Atributos

Comentarios

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

Estos sockets son sockets de flujo normales, pero agregan una capa de protecciones de seguridad a través del protocolo de transporte de red subyacente, como TCP. Estas protecciones incluyen: <UL>

<LI><em>Integrity Protection</em>. SSL protege contra la modificación de mensajes por parte de un programa previo activo.

<LI><em>Authentication</em>. En la mayoría de los modos, SSL proporciona autenticación del mismo nivel. Normalmente, los servidores se autentican y los clientes pueden autenticarse según lo solicitado por los servidores.

<LI><em>Confidencialidad (Protección de privacidad)</em>. En la mayoría de los modos, SSL cifra los datos que se envían entre el cliente y el servidor. Esto protege la confidencialidad de los datos, por lo que los programadores pasivos no verán datos confidenciales, como información financiera o información personal de muchos tipos.

</UL>

Estos tipos de protección se especifican mediante un "conjunto de cifrado", que es una combinación de algoritmos criptográficos utilizados por una conexión SSL determinada. Durante el proceso de negociación, los dos puntos de conexión deben acordar un conjunto de cifrado que esté disponible en ambos entornos. Si no hay ningún conjunto de aplicaciones en común, no se puede establecer ninguna conexión SSL y no se pueden intercambiar datos.

El conjunto de cifrado utilizado se establece mediante un proceso de negociación denominado "protocolo de enlace". El objetivo de este proceso es crear o volver a unir una "sesión", que puede proteger muchas conexiones con el tiempo. Una vez completado el protocolo de enlace, puede acceder a los atributos de sesión mediante el <método em>getSession</em> . El protocolo de enlace inicial en esta conexión se puede iniciar de una de estas tres maneras: <UL>

<La llamada startHandshake a LI> que inicia explícitamente protocolos de enlace, o <li> cualquier intento de leer o escribir datos de aplicación en este socket provoca un protocolo de enlace implícito, o <li> una llamada a getSession intenta configurar una sesión si no hay ninguna sesión válida actualmente y se realiza un protocolo de enlace implícito. </UL>

Si se produce un error en el SSLSocket protocolo de enlace por cualquier motivo, se cierra y no se pueden realizar más comunicaciones.

Hay dos grupos de conjuntos de cifrado que necesitará saber al administrar conjuntos de cifrado: <UL>

<LI><em>Supported</em> cipher suites: todos los conjuntos que son compatibles con la implementación ssl. Esta lista se notifica mediante <em>getSupportedCipherSuites</em>.

<LI><em>Enabled</em> conjuntos de cifrado, que pueden ser menores que el conjunto completo de conjuntos admitidos. Este grupo se establece mediante el <método em>setEnabledCipherSuites</em> y se consulta mediante el <método em>getEnabledCipherSuites</em> . Inicialmente, se habilitará un conjunto predeterminado de conjuntos de cifrado en un nuevo socket que represente la configuración mínima sugerida.

</UL>

Los valores predeterminados de implementación requieren que solo los conjuntos de cifrado que autentiquen los servidores y proporcionen confidencialidad de forma predeterminada. Solo si ambos lados aceptan explícitamente comunicaciones no autenticadas o no privadas (sin cifrar) se seleccionará dicho conjunto de cifrado.

Cuando SSLSocketse crean por primera vez, no se realiza ningún protocolo de enlace para que las aplicaciones puedan establecer primero sus preferencias de comunicación: qué conjuntos de cifrado usar, si el socket debe estar en modo cliente o servidor, etc. Sin embargo, la seguridad siempre se proporciona en el momento en que se envían los datos de la aplicación a través de la conexión.

Puede registrarse para recibir notificaciones de eventos de finalización del protocolo de enlace. Esto implica el uso de dos clases adicionales. <Los objetos em>HandshakeCompletedEvent</em> se pasan a <las instancias de em>HandshakeCompletedListener</em> , registradas por los usuarios de esta API.

SSLSockets se crean mediante SSLSocketFactorys o mediante acceptuna conexión desde un SSLServerSocket.

Un socket SSL debe elegir operar en el modo de cliente o servidor. Esto determinará quién comienza el proceso de protocolo de enlace, así como los mensajes que cada parte debe enviar. Cada conexión debe tener un cliente y un servidor, o el protocolo de enlace no avanzará correctamente. Una vez iniciado el protocolo de enlace inicial, un socket no puede cambiar entre los modos de cliente y servidor, incluso cuando se realizan renegociaciones.

<h3>Configuración predeterminada para diferentes versiones< de Android/h3>

SSLSocket Las instancias obtenidas de los valores predeterminados SSLSocketFactory, SSLServerSocketFactoryy SSLContext se configuran de la siguiente manera:

<style type="text/css"> tr.deprecated { background-color: #ccc; color: #999; font-style: italic; }</Estilo>

<h4>Protocols</h4>

Socket de cliente: <table>thead><tr><th>Protocol</th Supported (API Levels)/th<<>>>>Enabled by default (API Levels)<</th<>/tr<>/thead><tbody<>tr class="deprecated"<>td>SSLv3</td td><td>1–< 25</td td><>1– 22</td></tr tr>><<td>TLSv1</td td>><1+</td td<>>1+</td<>/tr tr<>td><>TLSv1.1</td td 16+</tdd><<>>td>20+</td></tr tr<>td><>TLSv1.2</td<>td>16+</td td<>>20+</td<>/tr tr><td><>TLSv1.3</Td><td>29+</td td<>>29+</td<>/tr<>/tbody></table>

Socket de servidor: <tablaad><<>tr><th>Protocol</th Supported (API Levels)/th<>><>>Enabled by default (API Levels)<</th></tr<>/thead<>tbody><tr class="deprecated"><td>SSLv3</td td td><>1– 25</td td><>1– 22</td></tr tr>><<td>TLSv1</td td>><1+</td td<>>1+</td<>/tr tr<>td><>TLSv1.1</td td 16+</tdd>><><td>16+</td<>/tr tr<>td><>TLSv1.2</td td>><16+</td td<>>16+</td<>/tr tr><td><>TLSv1.3</Td><td>29+</td td<>>29+</td<>/tr<>/tbody></table>

<conjuntos< de cifrado h4>/h4>

Los métodos que funcionan con nombres de conjunto de cifrado (por ejemplo, #getSupportedCipherSuites() getSupportedCipherSuites, #setEnabledCipherSuites(String[]) setEnabledCipherSuites) han usado nombres estándar para conjuntos de cifrado desde el nivel de API 9, como se muestra en la tabla siguiente. Antes del nivel de API 9, se habían usado nombres no estándar (OpenSSL) (consulte la tabla siguiente a esta tabla). <table>thead><tr><th>Cipher suite</th Supported (API Levels)/th<>>><>Enabled by default (API Levels)<</th<>/tr<>/thead><tbody><tr class="deprecated"td>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</td td<>9-22</td td><>9-19</td/td></tr<>class="deprecated">><<td><><SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA/td td>><9-22</td<>td>9-19</td></tr tr<>class="deprecated"><td>SSL_DHE_DSS_WITH_DES_CBC_SHA</td><td>9-22/td<>td>9-19</td></tr tr><class="desusado"<>td>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</td<>td>9-22<</td><td td>9-19</td<>/tr tr<>class="deprecated"><td>SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA</td><td>9-22</td td>><9-19</td<>/tr tr<>class="deprecated"td>SSL_DHE_RSA_WITH_DES_CBC_SHA</td td><9-22</td td<>>9-19</td></tr<>class="deprecated"><<>td>><SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA/td td><>9-22</td td>><</td<>/tr tr<>class="deprecated"><td>SSL_DH_anon_EXPORT_WITH_RC4_40_MD5</td td<>>9-22/td<>td></td/td<> tr<>class="deprecated"><td>SSL_DH_anon_WITH_3DES_EDE_CBC_SHA</td td><>9-22<</td><td></td></tr tr<>class="deprecated"><td>SSL_DH_anon_WITH_DES_CBC_SHA</td<>td>9-22</td<>td></td<>/tr class<>="deprecated"td>SSL_DH_anon_WITH_RC4_128_MD5</td td>><9-22</td<>td></td<>/tr<>class="deprecated"<>><td><SSL_RSA_EXPORT_WITH_DES40_CBC_SHA/td td<>>9-22</td<>td>9-19</td<>/tr tr<>class="deprecated"<>td>SSL_RSA_EXPORT_WITH_RC4_40_MD5</td<>td>9-22</td td<>>9-19</td></tr td>><<td>SSL_RSA_WITH_3DES_EDE_CBC_SHA</td td><>9+</td><td 9-19/td<>/tr tr<>class="deprecated"<>td>SSL_RSA_WITH_DES_CBC_SHA</td td<>>9-22</td td><>9-19</td></tr tr<>class="deprecated"td>SSL_RSA_WITH_NULL_MD5</td<>td>9-22</td td><></td></tr<>class="deprecated"<<>>td SSL_><><RSA_WITH_NULL_SHA/td td><>9-22</td td><<>/td<>/tr tr<>class="desusado"><td>SSL_RSA_WITH_RC4_128_MD5</td td>><9-25</td<>td>9-19</td<>/tr clase><="desusado"<>td>SSL_RSA_WITH_RC4_128_SHA</td<>td>9-25</td><>td 9-23</Td></tr tr>td<>td>TLS_AES_128_GCM_SHA256</td td><>29+/td td>><29+</td></tr>><<td td>TLS_AES_256_GCM_SHA384</td td<>>29+/td td>><29+<</td<>/tr tr<<>>td>TLS_CHACHA20_POLY1305_SHA256</td td><>29+<</td><<td>29+</td></tr tr><class="deprecated"><td>TLS_DHE_DSS_WITH_AES_128_CBC_SHA</td><td>9-22</td td><>9-22</td<>/tr tr><class="deprecated"><td>TLS_DHE_DSS_WITH_AES_128_CBC_SHA256</td td><>20-22</td><td></td<>/tr tr><class="en desuso" td>TLS_DHE_DSS_WITH_AES_128_GCM_SHA256</td<>td>20-22</td td><></td></tr tr<>class="deprecated"td>TLS_DHE_DSS_WITH_AES_256_CBC_SHA</td<>td>9-22</td td><>11-22</td></tr tr<>class="deprecated"><><td>TLS_DHE_DSS_WITH_AES_256_CBC_SHA256</td>><<td>20-22</td td>><</td></tr><class="deprecated"<>td>TLS_DHE_DSS_WITH_AES_256_GCM_SHA384</td><td>20-22</td><td></td<>/tr class="deprecated"<>td>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</td td<>>9-25/td><td>9-25<</td></tr><><tr class="deprecated"><td>TLS_DHE_RSA_WITH_AES_128_CBC_SHA256</td<>td>20-25</td td><<>/td/td<>/tr class<>="deprecated"td>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256</td td>><20-25</td td><>20-25</td<>/tr<>class="deprecated"<>><td TLS_DHE_RSA_><WITH_AES_256_CBC_SHA/td td>><9-25</td><td>11-25</td<>/tr tr<>class="deprecated"<>td>TLS_DHE_RSA_WITH_AES_256_CBC_SHA256</td td<>>20-25/td td td<>/td><></tr<>class="desusado"><td>TLS_DHE_RSA_WITH_AES_256_GCM_SHA384</td td><>20-25<</td><td>20-25</td></tr tr><class="deprecated"<>td>TLS_DH_anon_WITH_AES_128_CBC_SHA</td td>><9-22</td<>td></td></tr tr class="deprecated"><td>TLS_DH_anon_WITH_AES_128_CBC_SHA256</td td><>20-22</td td td><<>/td/td></tr><tr><class="en desuso"><td>TLS_DH_anon_WITH_AES_128_GCM_SHA256</td<>td>20-22</td td><></td<>/tr tr><class="deprecated"><td>TLS_DH_anon_WITH_AES_256_CBC_SHA</td td><>9-22</td><td></td></tr class<>="deprecated"><td>TLS_DH_anon_WITH_AES_256_CBC_SHA256</td><td td>20-22</td td><></td<>/tr tr><class="deprecated"<>td>TLS_DH_anon_WITH_AES_256_GCM_SHA384</td td<>>20-22</td td<>></td<>/tr class="deprecated"><td>TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA</td td>><11-22</td td<>>11-19</td></tr><><tr><td>TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA</td td>><11+</td<>td>11+</td></tr tr<>class="deprecated"<>td>TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256</td td<>>20-28</td<>td td></td></tr tr>><<td>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</td><td>20+</td td><>20+</td></tr tr<>td>><TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA</td td<>>11+</td td<>>11+</td<>/tr tr class="deprecated"<>td>TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384</td td>><20-28</td td>><</td/td></tr><><tr><td>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</td td><>20+/td td><>20+</td<>/tr tr><<>td>TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256</td td<>>24+</td td<>>24+<</td></tr tr<>class="desusado"><td TLS_ECDHE_ECDSA_WITH_NULL_SHA></Td><td>11-22</td td><></td<>/tr class><="deprecated"><td>TLS_ECDHE_ECDSA_WITH_RC4_128_SHA</td td><>11-25</td><td>11-23</td<>/tr tr<>td<>>TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA</td td td<>>21+</td td><>21+</td<>/tr tr><td>TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA</td<>td>21+</td td><>21+</td></tr tr<>><td>TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256</td td>><24+</td td<>24+</td<>>/tr tr<>class="en desuso"><td>TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA</td>><<td>11-22</td<>td>11-19</td></tr tr<<>>td>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</td td>><11+</td<>td>11+</td<>/tr clase<>="en desuso"><td>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</td td><>20-28</td><>< td/td></tr><Tr><td>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</td td<>>20+</td td>><20+</td<>/tr tr><><td>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</td td><>11+</td td<>11+</td<>>/tr tr<>class="desusado"><td>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384</td td><>20-28</Td><td></td></tr tr><<>td>TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</td<>td>20+</td td>><20+</td<>/tr tr><><td td>TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256</td td<>>24+</td<>td>24+</td></tr tr<>class="deprecated"><td TLS_><ECDHE_RSA_WITH_NULL_SHA/td td<>>11-22</td td></td>><</tr tr<>class="desusado"td>TLS_ECDHE_RSA_WITH_RC4_128_SHA</td<>td>11-25</td<>td>11-23</td<>/tr tr<>class="desusado">><<td>TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA</td td><>11-22</Td><td 11-19/td></tr tr<>class="deprecated"<>td>TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA</td td<>>11-22/td td<>>11-19</td<>/tr tr><class="en desuso"<>td>TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256</td td>><20-22<</td<>>< td/td><></Tr><tr class="deprecated">td>TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256</td td>><20-22</td td>><</td/td<>/tr tr<>class="deprecated"td>TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA</td><td>11-22</td td<>>11-19</td></tr<>class="deprecated"<>><td<><TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384/td td><>20-22</td td><></td></tr tr<>class="deprecated"<>td>TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384</td td<>>20-22</td><td></td/td>< tr<>class="deprecated"<>td>TLS_ECDH_ECDSA_WITH_NULL_SHA</td><td>11-22</td td><></td></tr tr><class="deprecated"<>td>TLS_ECDH_ECDSA_WITH_RC4_128_SHA</td<>td>11-22</td<>td>11-19</td></tr tr<>class="deprecated"><td>TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA</td td<>>11-22</tdtd>11-19</td></tr tr><class="deprecated"<>td>TLS_ECDH_RSA_WITH_AES_128_CBC_SHA</td td<>>11-22/td><td>11-19</td<>/tr tr><class="en desuso"<>td>TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256</td td><>20-22<</td><>< td/td ></tr><class="deprecated"<>td>TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256</td td>><20-22</td td<>/td></td></tr tr><class="deprecated"<>td>TLS_ECDH_RSA_WITH_AES_256_CBC_SHA</td><td>11-22</td td>><11-19</td></tr clase=<>><"deprecated"><td>TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384</td><td>20-22</td td><></td></tr tr><class="deprecated"td>TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384</td td>><20-22</td td></td/td<>></tr tr<>class="deprecated"<>><td TLS_ECDH_RSA_><WITH_NULL_SHA/td td>><11-22</td td><></td></tr tr<>class="deprecated"td>TLS_ECDH_RSA_WITH_RC4_128_SHA</td<>td>11-22</td<>td>11-19</td<>/tr tr<>class="deprecated"<><>td>TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA</td td td><>11-22</td td>><</td></tr tr<>class="deprecated"<>td>TLS_ECDH_anon_WITH_AES_128_CBC_SHA</td td>><11-22</td td><></td<>/tr tr<>class="deprecated"<>td>TLS_ECDH_anon_WITH_AES_256_CBC_SHA</td td><>11-22</td td><></td td/tr><class="deprecated"<>td>TLS_ECDH_anon_WITH_NULL_SHA</td td><>11-22</td td></td></td<>/tr tr<>class="deprecated"<>td>TLS_ECDH_anon_WITH_RC4_128_SHA</td<>td>11-22</td td></td></td<> tr<<>>td TLS_>><<EMPTY_RENEGOTIATION_INFO_SCSV/td td><>11+/td td<>>11+</td<>/tr tr><<>td>TLS_FALLBACK_SCSV</td td<>>21+<</td><>< td/td></tr class<>="en desuso"><td>TLS_PSK_WITH_3DES_EDE_CBC_SHA</td td<>>21-22</tdtd></td></tr tr><<>td>TLS_PSK_WITH_AES_128_CBC_SHA</td td>><21+</td td>><21+</td<>/tr td><<>td>TLS_PSK_WITH_AES_256_CBC_SHA</td td>><21+</td<>td>21+</td></tr tr><class="en desuso"><><td>TLS_PSK_WITH_RC4_128_SHA</td<>td>21-25</td<>td></td></tr tr<<>>td>TLS_RSA_WITH_AES_128_CBC_SHA</td td>><9+</td td><9+</td>></tr tr<>class="en desuso"><td>TLS_RSA_WITH_AES_128_CBC_SHA256</td><td>20-28</td td>><</td<>/tr tr><<>td>TLS_RSA_WITH_AES_128_GCM_SHA256</td td<>>20+/td td td<>>20+</td<>/tr td<>>><TLS_RSA_WITH_AES_256_CBC_SHA</td<>td>9+</td td<>>11+<</td></tr><tr class="deprecated"><td>TLS_RSA_WITH_AES_256_CBC_SHA256</td><td>20-28</td td<>/td<><>/tr><><td td>TLS_RSA_WITH_AES_256_GCM_SHA384</td td<>>20+</td<>td>20+</td></tr tr<>class="deprecated"><td TLS_RSA_><WITH_NULL_SHA256/td td><>20-22</td td><<>/td<>/tr<>/tbody></table>

<em>NOTE</em>: Los conjuntos de cifrado psk están habilitados de forma predeterminada solo si el SSLContext a través del que se creó el socket se ha inicializado con un PSKKeyManager.

Los niveles de API 1 a 8 usan nombres openSSL para conjuntos de cifrado. En la tabla siguiente se enumeran estos nombres openSSL y sus nombres estándar correspondientes usados en los niveles de API 9 y versiones posteriores. <table><thead><tr><th>OpenSSL cipher suite</th><>Standard cipher suite</<>>th Supported (API Levels)</th><>Enabled by default (API Levels)/th (API Levels)</th<>/tr></thead>

<tbody><tr><td>AES128-SHA</td td><>TLS_RSA_WITH_AES_128_CBC_SHA</td<>td>1+</td td<>>1+</td<>/tr tr><<>td>AES256-SHA</td td<>td>TLS_RSA_WITH_AES_256_CBC_SHA</td><td>1+</td td><>1– 8, 11+</td></tr tr><td><>DES-CBC-MD5</td td>><SSL_CK_DES_64_CBC_WITH_MD5</td td><>1– 8</td td><>1– 8</td<>/tr tr><class="desusado"><td>DES-CBC-SHA</td td td>><SSL_RSA_WITH_DES_CBC_SHA</td td><>1– 22</td td><>1– 19</td<>/tr tr><><td>DES-CBC3-MD5</td td><td>SSL_CK_DES_192_EDE3_CBC_WITH_MD5</td td><>1– 8</td td><>1– 8</td<>/tr tr><td><>DES-CBC3-SHA</td td<>td>SSL_RSA_WITH_3DES_EDE_CBC_SHA</td td>><1+</td td><>1– 19</td<>/tr tr><class="deprecated"<>td>DHE-DSS-AES128-SHA</td td><td>TLS_DHE_DSS_WITH_AES_128_CBC_SHA</td td><>1– 22</td td><>1– 22</td<>/tr tr><class="deprecated"<>td>DHE-DSS-AES256-SHA</td td><td>TLS_DHE_DSS_WITH_AES_256_CBC_SHA</td td><>1– 22</td td><>1– 8, 11– 22</td></tr tr>><<td>DHE-RSA-AES128-SHA</td><td td>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</td td>><1+</td td><>1+</td<>/tr tr><td<>>DHE-RSA-AES256-SHA</t TLS_DHE_RSA_WITH_AES_256_CBC_SHA< d>><td td>><1+</td td><>1– 8, 11+</td></tr clase<>="en desuso"><td>EDH-DSS-DES-CBC-SHA</td td>><SSL_DHE_DSS_WITH_DES_CBC_SHA</td td><>1– 22</td td><>1– 19</td></tr tr><class="deprecated"><td>EDH-DSS-DES-CBC3-SHA</td td td><>SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA</td><td>1– 22</td td><>1– 19</td<>/tr tr><class="deprecated"<>td>EDH-RSA-DES-CBC-SHA</td td td>><SSL_DHE_RSA_WITH_DES_CBC_SHA</td td><>1– 22</td td><>1– 19</td<>/tr tr><class="deprecated"<>td>EDH-RSA-DES-CBC3-SHA</td td td>><SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA</td td><>1– 22</td td><>1– 19</td></tr tr><class="deprecated"><td>EXP-DES-CBC-SHA</td td>><SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</td td><>1– 22</td td><>1– 19</td></tr tr><class="deprecated"><td>EXP-EDH-DSS-DES-CBC-SHA</td td td><>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</td><td>1– 22</td td><>1– 19</td<>/tr tr><class="deprecated"<>td>EXP-EDH-RSA-DES-CBC-SHA</td td td>><SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</td td><>1– 22</td td><>1– 19</td></tr tr><<>td>EXP-RC2-CBC-MD5</td td>><SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5</td td><>1– 8</td td><>1– 8</td></tr tr><class="deprecated"><td>EXP-RC4-MD5</td td>><SSL_RSA_EXPORT_WITH_RC4_40_MD5</td td><>1– 22</td td><>1– 19</td<>/tr tr><td>><RC2-CBC-MD5</td td>><SSL_CK_RC2_128_CBC_WITH_MD5</td td><>1– 8</td td><>1– 8</td></tr tr><class="deprecated"><td>RC4-MD5</td td>><SSL_RSA_WITH_RC4_128_MD5</td td><>1– 25</td td><>1– 19</td<>/tr tr><class="deprecated"><td>RC4-SHA</td td td>><SSL_RSA_WITH_RC4_128_SHA</td td><>1– 25</td td><>1– 23</td<>/tr></tbody></table>

Se agregó en la versión 1.4.

Documentación de Java para javax.net.ssl.SSLSocket.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Constructores

SSLSocket()

Solo se usa en subclases.

SSLSocket(InetAddress, Int32)

Solo se usa en subclases.

SSLSocket(InetAddress, Int32, InetAddress, Int32)

Solo se usa en subclases.

SSLSocket(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el entorno de ejecución.

SSLSocket(String, Int32)

Solo se usa en subclases.

SSLSocket(String, Int32, InetAddress, Int32)

Solo se usa en subclases.

Propiedades

ApplicationProtocol

Devuelve el valor de protocolo de aplicación más reciente negociado para esta conexión.

Channel

Devuelve el objeto único java.nio.channels.SocketChannel SocketChannel asociado a este socket, si existe.

(Heredado de Socket)
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
EnableSessionCreation

Devuelve si este socket puede crear nuevas sesiones SSL o si se deben reutilizar las sesiones existentes.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
HandshakeApplicationProtocol

Devuelve el valor del protocolo de aplicación negociado en un protocolo de enlace SSL/TLS actualmente en curso.

HandshakeApplicationProtocolSelector

Recupera la función de devolución de llamada que selecciona un valor de protocolo de aplicación durante un protocolo de enlace SSL/TLS. -o bien- Registra una función de devolución de llamada que selecciona un valor de protocolo de aplicación para un protocolo de enlace SSL/TLS.

HandshakeSession

Devuelve el objeto SSLSession que se construye durante un protocolo de enlace SSL/TLS.

InetAddress

Devuelve la dirección a la que está conectado el socket.

(Heredado de Socket)
InputStream

Devuelve un flujo de entrada para este socket.

(Heredado de Socket)
IsBound

Devuelve el estado de enlace del socket.

(Heredado de Socket)
IsClosed

Devuelve el estado cerrado del socket.

(Heredado de Socket)
IsConnected

Devuelve el estado de conexión del socket.

(Heredado de Socket)
IsInputShutdown

Devuelve si se cierra la mitad de lectura de la conexión de socket.

(Heredado de Socket)
IsOutputShutdown

Devuelve si se cierra la mitad de escritura de la conexión de socket.

(Heredado de Socket)
JniIdentityHashCode

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
JniPeerMembers

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

KeepAlive

Comprueba si SocketOptions#SO_KEEPALIVE SO_KEEPALIVE está habilitado. -o bien- Habilitar o deshabilitar SocketOptions#SO_KEEPALIVE SO_KEEPALIVE.

(Heredado de Socket)
LocalAddress

Obtiene la dirección local a la que está enlazado el socket.

(Heredado de Socket)
LocalPort

Devuelve el número de puerto local al que está enlazado este socket.

(Heredado de Socket)
LocalSocketAddress

Devuelve la dirección del punto de conexión al que está enlazado este socket.

(Heredado de Socket)
NeedClientAuth

Devuelve true si el socket del servidor debe requerir autenticación de cliente.

OOBInline

Comprueba si SocketOptions#SO_OOBINLINE SO_OOBINLINE está habilitado. -o bien- Habilitar o deshabilitar SocketOptions#SO_OOBINLINE SO_OOBINLINE (recepción de datos urgentes de TCP)

        By default, this option is disabled and TCP urgent data received on a
        socket is silently discarded.
(Heredado de Socket)
OutputStream

Devuelve un flujo de salida para este socket.

(Heredado de Socket)
PeerReference

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
Port

Devuelve el número de puerto remoto al que está conectado este socket.

(Heredado de Socket)
ReceiveBufferSize

Obtiene el valor de la SocketOptions#SO_RCVBUF SO_RCVBUF opción para , Socketque es el tamaño del búfer usado por la plataforma para la entrada en este Socketobjeto . -o bien- Establece la SocketOptions#SO_RCVBUF SO_RCVBUF opción en el valor especificado para este Socket.

(Heredado de Socket)
RemoteSocketAddress

Devuelve la dirección del punto de conexión al que está conectado este socket o null si no está conectado.

(Heredado de Socket)
ReuseAddress

Comprueba si SocketOptions#SO_REUSEADDR SO_REUSEADDR está habilitado. -o bien- Habilite o deshabilite la SocketOptions#SO_REUSEADDR SO_REUSEADDR opción de socket.

(Heredado de Socket)
SendBufferSize

Obtenga el valor de la SocketOptions#SO_SNDBUF SO_SNDBUF opción para , Socketque es el tamaño del búfer usado por la plataforma para la salida en este Socket. -o bien- Establece la SocketOptions#SO_SNDBUF SO_SNDBUF opción en el valor especificado para este Socket.

(Heredado de Socket)
Session

Devuelve para SSLSession esta conexión.

SoLinger

Devuelve la configuración de SocketOptions#SO_LINGER SO_LINGER.

(Heredado de Socket)
SoTimeout

Devuelve la configuración de SocketOptions#SO_TIMEOUT SO_TIMEOUT. -o bien- Habilite o deshabilite SocketOptions#SO_TIMEOUT SO_TIMEOUT con el tiempo de espera especificado, en milisegundos.

(Heredado de Socket)
SSLParameters

Devuelve sslParameters en vigor para este SSLSocket. -o bien- Aplica SSLParameters a este socket.

TcpNoDelay

Comprueba si SocketOptions#TCP_NODELAY TCP_NODELAY está habilitado. -o bien- Habilitar/deshabilitar SocketOptions#TCP_NODELAY TCP_NODELAY (deshabilitar/habilitar el algoritmo de Nagle).

(Heredado de Socket)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

TrafficClass

Obtiene la clase de tráfico o el tipo de servicio en el encabezado IP de los paquetes enviados desde este socket o establece la clase de tráfico o el tipo de octeto de servicio en el encabezado IP de los paquetes enviados desde este socket.

(Heredado de Socket)
UseClientMode

Devuelve true si esta conexión actuará en modo cliente al protocolo de enlace.

WantClientAuth

Devuelve true si el servidor debe solicitar autenticación de cliente.

Métodos

AddHandshakeCompletedListener(IHandshakeCompletedListener)

Registra un agente de escucha de eventos para recibir notificaciones que ha completado un protocolo de enlace SSL en esta conexión.

Bind(SocketAddress)

Enlaza el socket a una dirección local.

(Heredado de Socket)
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Close()

Cierra este socket.

(Heredado de Socket)
Connect(SocketAddress)

Conecta este socket al servidor.

(Heredado de Socket)
Connect(SocketAddress, Int32)

Conecta este socket al servidor con un valor de tiempo de espera especificado.

(Heredado de Socket)
ConnectAsync(SocketAddress)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Socket)
ConnectAsync(SocketAddress, Int32)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Socket)
Dispose()

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
Dispose(Boolean)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GetEnabledCipherSuites()

Devuelve los nombres de los conjuntos de cifrado SSL que están habilitados actualmente para su uso en esta conexión.

GetEnabledProtocols()

Devuelve los nombres de las versiones de protocolo que están habilitadas actualmente para su uso en esta conexión.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
GetOption(ISocketOption)

Devuelve el valor de una opción de socket.

(Heredado de Socket)
GetSupportedCipherSuites()

Devuelve los nombres de los conjuntos de cifrado que se podrían habilitar para su uso en esta conexión.

GetSupportedProtocols()

Devuelve los nombres de los protocolos que se podrían habilitar para su uso en una conexión SSL.

JavaFinalize()

Llamado por el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto.

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
RemoveHandshakeCompletedListener(IHandshakeCompletedListener)

Quita un agente de escucha de finalización de protocolo de enlace registrado previamente.

SendUrgentData(Int32)

Envíe un byte de datos urgentes en el socket.

(Heredado de Socket)
SendUrgentDataAsync(Int32)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Socket)
SetEnabledCipherSuites(String[])

Establece los conjuntos de cifrado habilitados para su uso en esta conexión.

SetEnabledProtocols(String[])

Establece las versiones de protocolo habilitadas para su uso en esta conexión.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetOption(ISocketOption, Object)

Establece el valor de una opción de socket.

(Heredado de Socket)
SetPerformancePreferences(Int32, Int32, Int32)

Establece las preferencias de rendimiento de este socket.

(Heredado de Socket)
SetSoLinger(Boolean, Int32)

Habilite o deshabilite SocketOptions#SO_LINGER SO_LINGER con el tiempo de persistencia especificado en segundos.

(Heredado de Socket)
ShutdownInput()

Places el flujo de entrada de este socket al final del flujo.

(Heredado de Socket)
ShutdownOutput()

Deshabilita el flujo de salida de este socket.

(Heredado de Socket)
StartHandshake()

Inicia un protocolo de enlace SSL en esta conexión.

SupportedOptions()

Devuelve un conjunto de las opciones de socket admitidas por este socket.

(Heredado de Socket)
ToArray<T>()

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
IJavaPeerable.Finalized()

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

GetJniTypeName(IJavaPeerable)

Esta clase extiende Sockets y proporciona sockets seguros mediante protocolos como los protocolos "Capa de sockets seguros" (SSL) o IETF "Seguridad de la capa de transporte" (TLS).

Se aplica a