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
- Наследование
- Атрибуты
Комментарии
Этот класс расширяет 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.
SSLSocket
s создаются с помощью SSLSocketFactory
s или путем accept
ing соединения из 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 |
Возвращает уникальный |
Class |
Возвращает класс среды выполнения данного объекта |
EnableSessionCreation |
Возвращает значение, указывающее, могут ли создаваться новые сеансы SSL с помощью этого сокета, или значение , если существующие сеансы необходимо использовать повторно. |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
HandshakeApplicationProtocol |
Возвращает значение протокола приложения, согласованное при подтверждении SSL/TLS, которое выполняется в настоящее время. |
HandshakeApplicationProtocolSelector |
Извлекает функцию обратного вызова, которая выбирает значение протокола приложения во время подтверждения SSL/TLS. -или- Регистрирует функцию обратного вызова, которая выбирает значение протокола приложения для подтверждения SSL/TLS. |
HandshakeSession |
Возвращает объект , создаваемый |
InetAddress |
Возвращает адрес, к которому подключен сокет. (Унаследовано от Socket) |
InputStream |
Возвращает входной поток для этого сокета. (Унаследовано от Socket) |
IsBound |
Возвращает состояние привязки сокета. (Унаследовано от Socket) |
IsClosed |
Возвращает закрытое состояние сокета. (Унаследовано от Socket) |
IsConnected |
Возвращает состояние подключения сокета. (Унаследовано от Socket) |
IsInputShutdown |
Возвращает значение, указывающее, закрыта ли половина чтения соединения сокета. (Унаследовано от Socket) |
IsOutputShutdown |
Возвращает значение, указывающее, закрыта ли половина записи подключения сокета. (Унаследовано от Socket) |
JniIdentityHashCode |
Этот класс расширяет |
JniPeerMembers |
Этот класс расширяет |
KeepAlive |
Проверяет, включена ли |
LocalAddress |
Возвращает локальный адрес, к которому привязан сокет. (Унаследовано от Socket) |
LocalPort |
Возвращает номер локального порта, к которому привязан этот сокет. (Унаследовано от Socket) |
LocalSocketAddress |
Возвращает адрес конечной точки, к которому привязан этот сокет. (Унаследовано от Socket) |
NeedClientAuth |
Возвращает значение true, если сокет сервера должен требовать проверку подлинности клиента. |
OOBInline |
Проверяет, включена ли
(Унаследовано от Socket)
|
OutputStream |
Возвращает выходной поток для этого сокета. (Унаследовано от Socket) |
PeerReference |
Этот класс расширяет |
Port |
Возвращает номер удаленного порта, к которому подключен этот сокет. (Унаследовано от Socket) |
ReceiveBufferSize |
Возвращает значение |
RemoteSocketAddress |
Возвращает адрес конечной точки, к которому подключен этот сокет, или |
ReuseAddress |
Проверяет, включена ли |
SendBufferSize |
Получите значение |
Session |
Возвращает для |
SoLinger |
Возвращает параметр для |
SoTimeout |
Возвращает параметр для |
SSLParameters |
Возвращает параметры SSLParameters, которые действуют для этого SSLSocket. -или- Применяет sslParameters к этому сокету. |
TcpNoDelay |
Проверяет, включена ли |
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) |
Этот класс расширяет |
ConnectAsync(SocketAddress, Int32) |
Этот класс расширяет |
Dispose() |
Этот класс расширяет |
Dispose(Boolean) |
Этот класс расширяет |
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) |
Этот класс расширяет |
SetEnabledCipherSuites(String[]) |
Задает комплекты шифров, включенные для использования в этом соединении. |
SetEnabledProtocols(String[]) |
Задает версии протокола, включенные для использования в этом подключении. |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
SetOption(ISocketOption, Object) |
Задает значение параметра сокета. (Унаследовано от Socket) |
SetPerformancePreferences(Int32, Int32, Int32) |
Задает параметры производительности для этого сокета. (Унаследовано от Socket) |
SetSoLinger(Boolean, Int32) |
Включение и отключение |
ShutdownInput() |
Places входной поток для этого сокета в конце потока. (Унаследовано от Socket) |
ShutdownOutput() |
Отключает выходной поток для этого сокета. (Унаследовано от Socket) |
StartHandshake() |
Запускает подтверждение SSL для этого подключения. |
SupportedOptions() |
Возвращает набор параметров сокета, поддерживаемых этим сокетом. (Унаследовано от Socket) |
ToArray<T>() |
Этот класс расширяет |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Этот класс расширяет |
Wait() |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>. (Унаследовано от Object) |
Wait(Int64) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Этот класс расширяет |
IJavaPeerable.DisposeUnlessReferenced() |
Этот класс расширяет |
IJavaPeerable.Finalized() |
Этот класс расширяет |
IJavaPeerable.JniManagedPeerState |
Этот класс расширяет |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Этот класс расширяет |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Этот класс расширяет |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Этот класс расширяет |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверенное средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Этот класс расширяет |
GetJniTypeName(IJavaPeerable) |
Этот класс расширяет |