Как создать SSLStream, который использует Ssl3 вместо Tls

Я пытаюсь установить TCP-соединение, которое зашифровано с помощью Ssl3.

По сути, я просто создаю TCP-соединение, а затем создаю SSLStream:

var ss = new SslStream(poolItem.SecureConnection, false, remoteCertificateValidationCallback);

ss.ReadTimeout = ss.WriteTimeout = timeout;

ss.AuthenticateAsClient(host);

var pp = ss.SslProtocol;

Моя проблема в том, что по умолчанию SslStream использует TLS. Я хочу, чтобы это был Ssl3.

В HttpWebRequest вы можете использовать следующий код для изменения протокола:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

Я проверил это, и это не влияет на SslStream.

Как мне изменить протокол SslStream на Ssl3?

1 ответ

Решение

Вы просто должны использовать AuthenticateAsClient перегрузка, позволяющая указать, какие протоколы должны быть разрешены:

AuthenticateAsClient
  (host, new X509CertificateCollection(), SslProtocols.Ssl3, false);
Другие вопросы по тегам