SSLSocket Класс

Определение

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

[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
Наследование
SSLSocket
Атрибуты

Комментарии

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

Такие сокеты являются обычными сокетами потоков, но они добавляют уровень защиты по базовому протоколу сетевого транспорта, такому как TCP. Эти меры защиты включают: <UL>

<LI><em>Integrity Protection</em>. SSL защищает от изменения сообщений активным проводным приложением.

<LI><em>Authentication</em>. В большинстве режимов SSL обеспечивает одноранговую проверку подлинности. Серверы обычно проходят проверку подлинности, и клиенты могут проходить проверку подлинности по запросу серверов.

<LI><em>Конфиденциальность (защита конфиденциальности)</em>. В большинстве режимов SSL шифрует данные, передаваемые между клиентом и сервером. Это защищает конфиденциальность данных, чтобы пассивные пользователи не видели конфиденциальные данные, такие как финансовая или личная информация многих видов.

</УЛ>

Эти виды защиты определяются "набором шифров", который представляет собой сочетание криптографических алгоритмов, используемых данным SSL-подключением. В процессе согласования обе конечные точки должны согласовать шифр, доступный в обеих средах. Если такого набора общих нет, ssl-подключение установить не удастся, и данные не могут быть обменяться.

Используемый набор шифров устанавливается процессом согласования, который называется "подтверждением". Цель этого процесса — создать или повторно присоединиться к сеансу, который может защитить множество подключений с течением времени. После завершения подтверждения можно получить доступ к атрибутам сеанса с помощью <метода em>getSession</em> . Начальное подтверждение для этого подключения можно инициировать одним из трех способов: <UL>

<Вызов startHandshake LI>, который явно начинает подтверждение, или <LI> любая попытка чтения или записи данных приложения в этом сокете вызывает неявное подтверждение, или <li> вызов getSession пытается настроить сеанс, если в настоящее время нет допустимого сеанса, и выполняется неявное подтверждение. </УЛ>

Если рукопожатие по какой-либо причине завершается сбоем SSLSocket , объект закрывается, и дальнейшие сообщения не могут быть выполнены.

Существует две группы комплектов шифров, о которых необходимо знать при управлении комплектами шифров: <UL>

<Li><em>Supported</em> cipher suite — все наборы шифров, поддерживаемые реализацией SSL. Этот список отображается с помощью <команды em>getSupportedCipherSuites</em>.

<Комплекты шифров LI><em>Enabled</em> , которые могут быть меньше, чем полный набор поддерживаемых наборов. Эта группа задается с помощью <метода em>setEnabledCipherSuites</em> и запрашивается с помощью <метода em>getEnabledCipherSuites</em> . Изначально набор комплектов шифров по умолчанию будет включен в новом сокете, который представляет минимальную рекомендуемую конфигурацию.

</УЛ>

Для реализации по умолчанию требуется, чтобы по умолчанию были включены только комплекты шифров, которые проверяют подлинность серверов и обеспечивают конфиденциальность. Такой шифр будет выбран только в том случае, если обе стороны явно соглашаются на неавтономные и (или) закрытые (незашифрованные) сообщения.

При SSLSocketпервом создании не выполняется подтверждение, чтобы приложения могли сначала задать свои параметры связи: какие комплекты шифров использовать, должен ли сокет находиться в режиме клиента или сервера и т. д. Однако безопасность всегда обеспечивается к моменту отправки данных приложения через подключение.

Вы можете зарегистрироваться для получения уведомления о завершении подтверждения. Это предполагает использование двух дополнительных классов. <Объекты em>HandshakeCompletedEvent</em> передаются <в экземпляры em>HandshakeCompletedListener</em> , зарегистрированные пользователями этого API.

SSLSockets создаются с помощью SSLSocketFactorys или путем accepting соединения из SSLServerSocket.

Сокет SSL должен работать в режиме клиента или сервера. Это позволит определить, кто начинает процесс подтверждения, а также какие сообщения должны отправляться каждой стороной. Каждое подключение должно иметь один клиент и один сервер, иначе подтверждение не будет выполняться должным образом. После начала начального подтверждения сокет не может переключаться между режимами клиента и сервера, даже при выполнении повторных переговоров.

<h3>Конфигурация по умолчанию для разных версий< Android/h3>

SSLSocket Экземпляры, полученные из по умолчанию SSLSocketFactory, SSLServerSocketFactoryи SSLContext , настраиваются следующим образом:

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

<Протоколы< h4>/h4>

Сокет клиента: <таблица><tr><th><>Protocol</th>><Supported (API Levels)</th<>th>Enabled by default (API Levels)</th></tr<>/thead<>tbody><tr class="deprecated"<>td>SSLv3</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+</t 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>

Сокет сервера: <таблица><thead<>tr th>><Protocol</th>><Supported (API Levels)</th<>th>Enabled by default (API Levels)</th></tr<>/thead<>tbody><tr class="deprecated"<>td>SSLv3</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+</t 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>

<Комплекты шифров< h4>/h4>

Методы, работающие с именами наборов шифров (например, #getSupportedCipherSuites() getSupportedCipherSuites, ), #setEnabledCipherSuites(String[]) setEnabledCipherSuitesиспользовали стандартные имена для комплектов шифров начиная с API уровня 9, как показано в таблице ниже. До api уровня 9 использовались нестандартные имена (OpenSSL) (см. таблицу ниже). <table>thead><tr th><>Комплект шифров</th 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></tr 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="deprecated"<>td>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</td<>td>9-22</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<>/trtr<>class="deprecated"<>td>SSL_DHE_RSA_WITH_DES_CBC_SHA</td<>td>9-22</td<>td>9-19</td></tr 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></tr 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 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<>>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="deprecated"<>td>SSL_RSA_WITH_RC4_128_MD5</td<>td>9-25</td<>td>9-19</td<>/tr tr><class="deprecated"<>td>SSL_RSA_WITH_RC4_128_SHA</td<>td>9-25</td><td>9-23</Td></tr><tr><td>TLS_AES_128_GCM_SHA256</td><td>29+</td<>td>29+</td<>/tr<><>td>TLS_AES_256_GCM_SHA384</td<>td>29+</td<>td>29+</td<>/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="deprecated" ><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<>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/trd><><tr class="deprecated"<>td>TLS_DHE_RSA_WITH_AES_128_CBC_SHA256</td><td>20-25</td<>td></td></tr tr<>class="deprecated"<>td>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256</td<>td>20-25</td<>td>20-25</td></tr 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></tr tr<>class="deprecated"><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<>class="deprecated"<>td>TLS_DH_anon_WITH_AES_128_CBC_SHA256</td><td>20-22</td td></td<>/td<>/tr><tr class="deprecated">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 tr><class="deprecated"<>td>TLS_DH_anon_WITH_AES_256_CBC_SHA256</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></tr><tr<>td>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</tdtd>20+</td><td>20+</td></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<<>>/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="deprecated"><td TLS_ECDHE_ECDSA_WITH_NULL_SHA></Td><td>11-22</td><td></td></tr><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>21+</td><td>21+</td<>/tr tr><><td>TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA</td><td>21+</td><td>21+</td></tr<>td<>>TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256</td<>td>24+</td<>td>24+</td></tr<>tr class="deprecated"><td>TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA</td><td>11-22</td<>td>11-19</td<>/tr<>td><>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</td><td>11+</td<>td>11+</td></tr tr<>class="deprecated"<>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><td><>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</td<>td>11+</td><td>11+</td></tr tr<>class="deprecated"<>td>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384</td><td>20-28</Td><td></td></tr<>td><>TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</td<>td>20+</td><td>20+</td<>/tr tr<><>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><class="deprecated"><td>TLS_ECDHE_RSA_WITH_RC4_128_SHA</td<>td>11-25</td<>td>11-23</td></tr tr<>class="deprecated"<>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="deprecated"><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<>/tr tr<>class="deprecated"><td>TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA</td<>td>11-22</td<>td>11-19</td></tr 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></tr tr<>class="deprecated"><td>TLS_ECDH_ECDSA_WITH_NULL_SHA</td><td>11-22</td<>td></td<>/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</td><td>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="deprecated"<>td>TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256</td><td>20-22</td td><></td></tr><tr class="deprecated"<>td>TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256</td><td>20-22</td><td></td<>/tr<>class="deprecated"><td>TLS_ECDH_RSA_WITH_AES_256_CBC_SHA</td><td>11-22</td><td>11-19</td<>/tr><class="не рекомендуется">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<>/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>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><></tr><tr class="deprecated"<>td>TLS_ECDH_anon_WITH_NULL_SHA</td><td>11-22</td<>td></td></tr tr><class="deprecated"><td>TLS_ECDH_anon_WITH_RC4_128_SHA</td<>td>11-22</td td></td><<>/tr<>tr><td TLS_><EMPTY_RENEGOTIATION_INFO_SCSV/td><td>11+</td<>td>11+</td<>/tr><><td>TLS_FALLBACK_SCSV</td><td>21+</td><td></td></tr tr<>class="deprecated"><td>TLS_PSK_WITH_3DES_EDE_CBC_SHA</td<>td>21-22</tdtd></td></tr><td>><TLS_PSK_WITH_AES_128_CBC_SHA</td<>td>21+</td><td>21+</td<>/tr<>tr<>td>TLS_PSK_WITH_AES_256_CBC_SHA</td<>td>21+</td<>td>21+</td/td></tr tr><class="deprecated"><><td>TLS_PSK_WITH_RC4_128_SHA</td<>td>21-25</td><td></td></tr<>td<>>TLS_RSA_WITH_AES_128_CBC_SHA</td<>td>9+</td<>td>9+</td></tr<>tr class="deprecated"><td>TLS_RSA_WITH_AES_128_CBC_SHA256</td/td><td>20-28</td><td></td></tr<><>td>TLS_RSA_WITH_AES_128_GCM_SHA256</td><td>20+</td><td>20+</td<>/tr 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><>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>ПРИМЕЧАНИЕ</em>. Комплекты шифров PSK включены по умолчанию только в том случае, если SSLContext объект , с помощью которого был создан сокет, инициализирован с помощью PSKKeyManager.

Уровни API 1–8 используют имена OpenSSL для комплектов шифров. В таблице ниже перечислены имена OpenSSL и соответствующие стандартные имена, используемые в API уровня 9 и более новых версий. <table>thead><tr<>th>Комплект шифров< OpenSSL/th><Стандартный>набор< шифров/th<>>Поддерживаемые (уровни API)</th<>>Включен по умолчанию (уровни API)</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>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="deprecated"<>td>DES-CBC-SHA</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>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>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>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>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>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</td<>td>1+</td<>td>1+</td></tr tr><<>td>DHE-RSA-AES256-SHA</td<>td>TLS_DHE_RSA_WITH_AES_256_CBC_SHA</td><td>1+</td td><>1– 8, 11+</td<>/tr><tr class="deprecated"><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>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>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>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>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>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</td td><>1– 22</td><td>1– 19</td<>/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>SSL_RSA_WITH_RC4_128_SHA</td><td>1– 25</td><td>1– 23</td<>/tr></tbody></table>

Добавлено в версии 1.4.

Документация по Java для javax.net.ssl.SSLSocket.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

SSLSocket()

Используется только подклассами.

SSLSocket(InetAddress, Int32)

Используется только подклассами.

SSLSocket(InetAddress, Int32, InetAddress, Int32)

Используется только подклассами.

SSLSocket(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

SSLSocket(String, Int32)

Используется только подклассами.

SSLSocket(String, Int32, InetAddress, Int32)

Используется только подклассами.

Свойства

ApplicationProtocol

Возвращает последнее значение протокола приложения, согласованное для этого подключения.

Channel

Возвращает уникальный java.nio.channels.SocketChannel SocketChannel объект, связанный с этим сокетом, если таковой есть.

(Унаследовано от Socket)
Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
EnableSessionCreation

Возвращает значение, указывающее, могут ли создаваться новые сеансы SSL с помощью этого сокета, или значение , если существующие сеансы необходимо использовать повторно.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
HandshakeApplicationProtocol

Возвращает значение протокола приложения, согласованное при подтверждении SSL/TLS, которое выполняется в настоящее время.

HandshakeApplicationProtocolSelector

Извлекает функцию обратного вызова, которая выбирает значение протокола приложения во время подтверждения SSL/TLS. -или- Регистрирует функцию обратного вызова, которая выбирает значение протокола приложения для подтверждения SSL/TLS.

HandshakeSession

Возвращает объект , создаваемый SSLSession во время подтверждения SSL/TLS.

InetAddress

Возвращает адрес, к которому подключен сокет.

(Унаследовано от Socket)
InputStream

Возвращает входной поток для этого сокета.

(Унаследовано от Socket)
IsBound

Возвращает состояние привязки сокета.

(Унаследовано от Socket)
IsClosed

Возвращает закрытое состояние сокета.

(Унаследовано от Socket)
IsConnected

Возвращает состояние подключения сокета.

(Унаследовано от Socket)
IsInputShutdown

Возвращает значение, указывающее, закрыта ли половина чтения соединения сокета.

(Унаследовано от Socket)
IsOutputShutdown

Возвращает значение, указывающее, закрыта ли половина записи подключения сокета.

(Унаследовано от Socket)
JniIdentityHashCode

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
JniPeerMembers

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

KeepAlive

Проверяет, включена ли SocketOptions#SO_KEEPALIVE SO_KEEPALIVE функция . -или- Включить или отключить SocketOptions#SO_KEEPALIVE SO_KEEPALIVE.

(Унаследовано от Socket)
LocalAddress

Возвращает локальный адрес, к которому привязан сокет.

(Унаследовано от Socket)
LocalPort

Возвращает номер локального порта, к которому привязан этот сокет.

(Унаследовано от Socket)
LocalSocketAddress

Возвращает адрес конечной точки, к которому привязан этот сокет.

(Унаследовано от Socket)
NeedClientAuth

Возвращает значение true, если сокет сервера должен требовать проверку подлинности клиента.

OOBInline

Проверяет, включена ли SocketOptions#SO_OOBINLINE SO_OOBINLINE функция . -или- Включение и отключение SocketOptions#SO_OOBINLINE SO_OOBINLINE (получение срочных данных TCP)

        By default, this option is disabled and TCP urgent data received on a
        socket is silently discarded.
(Унаследовано от Socket)
OutputStream

Возвращает выходной поток для этого сокета.

(Унаследовано от Socket)
PeerReference

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
Port

Возвращает номер удаленного порта, к которому подключен этот сокет.

(Унаследовано от Socket)
ReceiveBufferSize

Возвращает значение SocketOptions#SO_RCVBUF SO_RCVBUF параметра для данного Socketобъекта , то есть размер буфера, используемый платформой для входных данных в этом Socketобъекте . -или- Задает SocketOptions#SO_RCVBUF SO_RCVBUF для параметра указанное значение для данного Socketобъекта .

(Унаследовано от Socket)
RemoteSocketAddress

Возвращает адрес конечной точки, к которому подключен этот сокет, или null , если он не подключен.

(Унаследовано от Socket)
ReuseAddress

Проверяет, включена ли SocketOptions#SO_REUSEADDR SO_REUSEADDR функция . -или- Включите или отключите параметр сокета SocketOptions#SO_REUSEADDR SO_REUSEADDR .

(Унаследовано от Socket)
SendBufferSize

Получите значение SocketOptions#SO_SNDBUF SO_SNDBUF параметра для данного Socketобъекта , то есть размер буфера, используемый платформой для вывода в этом Socketобъекте . -или- Задает SocketOptions#SO_SNDBUF SO_SNDBUF для параметра указанное значение для данного Socketобъекта .

(Унаследовано от Socket)
Session

Возвращает для SSLSession этого соединения.

SoLinger

Возвращает параметр для SocketOptions#SO_LINGER SO_LINGER.

(Унаследовано от Socket)
SoTimeout

Возвращает параметр для SocketOptions#SO_TIMEOUT SO_TIMEOUT. -или- Включить или отключить SocketOptions#SO_TIMEOUT SO_TIMEOUT с указанным временем ожидания в миллисекундах.

(Унаследовано от Socket)
SSLParameters

Возвращает параметры SSLParameters, которые действуют для этого SSLSocket. -или- Применяет sslParameters к этому сокету.

TcpNoDelay

Проверяет, включена ли SocketOptions#TCP_NODELAY TCP_NODELAY функция . -или- Включение и отключение SocketOptions#TCP_NODELAY TCP_NODELAY (отключение или включение алгоритма Нейгла).

(Унаследовано от Socket)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

TrafficClass

Возвращает класс или тип службы трафика в ip-заголовке для пакетов, отправленных из этого сокета, или задает класс трафика или тип службы октет в заголовке IP для пакетов, отправленных из этого сокета.

(Унаследовано от Socket)
UseClientMode

Возвращает значение true, если это подключение будет действовать в режиме клиента при подтверждении.

WantClientAuth

Возвращает значение true, если сервер должен запрашивать проверку подлинности клиента.

Методы

AddHandshakeCompletedListener(IHandshakeCompletedListener)

Регистрирует прослушиватель событий для получения уведомлений о завершении подтверждения SSL для этого подключения.

Bind(SocketAddress)

Привязывает сокет к локальному адресу.

(Унаследовано от Socket)
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Close()

Закрывает этот сокет.

(Унаследовано от Socket)
Connect(SocketAddress)

Подключает этот сокет к серверу.

(Унаследовано от Socket)
Connect(SocketAddress, Int32)

Подключает этот сокет к серверу с указанным значением времени ожидания.

(Унаследовано от Socket)
ConnectAsync(SocketAddress)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Socket)
ConnectAsync(SocketAddress, Int32)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Socket)
Dispose()

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
Dispose(Boolean)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
GetEnabledCipherSuites()

Возвращает имена комплектов шифров SSL, которые в настоящее время включены для использования в этом соединении.

GetEnabledProtocols()

Возвращает имена версий протокола, которые в настоящее время включены для использования в этом соединении.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetOption(ISocketOption)

Возвращает значение параметра сокета.

(Унаследовано от Socket)
GetSupportedCipherSuites()

Возвращает имена наборов шифров, которые могут быть включены для использования в этом соединении.

GetSupportedProtocols()

Возвращает имена протоколов, которые могут быть включены для использования в SSL-соединении.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
Notify()

Пробуждение одного потока, ожидающего на мониторе этого объекта.

(Унаследовано от Object)
NotifyAll()

Активирует все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
RemoveHandshakeCompletedListener(IHandshakeCompletedListener)

Удаляет ранее зарегистрированный прослушиватель завершения подтверждения.

SendUrgentData(Int32)

Отправка одного байта срочных данных в сокет.

(Унаследовано от Socket)
SendUrgentDataAsync(Int32)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Socket)
SetEnabledCipherSuites(String[])

Задает комплекты шифров, включенные для использования в этом соединении.

SetEnabledProtocols(String[])

Задает версии протокола, включенные для использования в этом подключении.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetOption(ISocketOption, Object)

Задает значение параметра сокета.

(Унаследовано от Socket)
SetPerformancePreferences(Int32, Int32, Int32)

Задает параметры производительности для этого сокета.

(Унаследовано от Socket)
SetSoLinger(Boolean, Int32)

Включение и отключение SocketOptions#SO_LINGER SO_LINGER с указанным временем в секундах.

(Унаследовано от Socket)
ShutdownInput()

Places входной поток для этого сокета в конце потока.

(Унаследовано от Socket)
ShutdownOutput()

Отключает выходной поток для этого сокета.

(Унаследовано от Socket)
StartHandshake()

Запускает подтверждение SSL для этого подключения.

SupportedOptions()

Возвращает набор параметров сокета, поддерживаемых этим сокетом.

(Унаследовано от Socket)
ToArray<T>()

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
Wait()

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>.

(Унаследовано от Object)
Wait(Int64)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

GetJniTypeName(IJavaPeerable)

Этот класс расширяет Socketи предоставляет безопасные сокеты с помощью таких протоколов, как протоколы SSL или TLS IETF.

Применяется к