SSLSocket Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Esta clase extiende Socket
s 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
- Atributos
Comentarios
Esta clase extiende Socket
s 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 SSLSocket
se 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.
SSLSocket
s se crean mediante SSLSocketFactory
s o mediante accept
una 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
, SSLServerSocketFactory
y 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 |
Class |
Devuelve la clase en tiempo de ejecución de este |
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 |
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 |
JniPeerMembers |
Esta clase extiende |
KeepAlive |
Comprueba si |
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
(Heredado de Socket)
|
OutputStream |
Devuelve un flujo de salida para este socket. (Heredado de Socket) |
PeerReference |
Esta clase extiende |
Port |
Devuelve el número de puerto remoto al que está conectado este socket. (Heredado de Socket) |
ReceiveBufferSize |
Obtiene el valor de la |
RemoteSocketAddress |
Devuelve la dirección del punto de conexión al que está conectado este socket o |
ReuseAddress |
Comprueba si |
SendBufferSize |
Obtenga el valor de la |
Session |
Devuelve para |
SoLinger |
Devuelve la configuración de |
SoTimeout |
Devuelve la configuración de |
SSLParameters |
Devuelve sslParameters en vigor para este SSLSocket. -o bien- Aplica SSLParameters a este socket. |
TcpNoDelay |
Comprueba si |
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 |
ConnectAsync(SocketAddress, Int32) |
Esta clase extiende |
Dispose() |
Esta clase extiende |
Dispose(Boolean) |
Esta clase extiende |
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 |
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 |
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 |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
Esta clase extiende |
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 |
IJavaPeerable.DisposeUnlessReferenced() |
Esta clase extiende |
IJavaPeerable.Finalized() |
Esta clase extiende |
IJavaPeerable.JniManagedPeerState |
Esta clase extiende |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Esta clase extiende |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Esta clase extiende |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Esta clase extiende |
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 |
GetJniTypeName(IJavaPeerable) |
Esta clase extiende |