62,025
社区成员
发帖
与我相关
我的任务
分享
static bool ValidateServerCertificate2(object sender,
OpenSSL.X509.X509Certificate cert,
OpenSSL.X509.X509Chain chain,
int depth,
OpenSSL.VerifyResult result)
{
if (result == OpenSSL.VerifyResult.X509_V_OK)
return true;
return false;
}
_networkStream = new NetworkStream(_socket, true);
if (_useSsl)
{
// Create an SSL stream that will close the client's stream.
SslStream sslStream = new SslStream(
_networkStream,
false,
new RemoteCertificateValidationCallback(ValidateServerCertificate),
null
);
try
{
//OpenSSL.X509.X509List cer = new OpenSSL.X509.X509List(OpenSSL.Core.BIO.File("gmail.pem", "r"));
//OpenSSL.X509.X509Chain cacer = new OpenSSL.X509.X509Chain(OpenSSL.Core.BIO.File("Equifax.pem", "r"));
//sslStream.AuthenticateAsClient(_proxy.TargetHost,
// cer, cacer, OpenSSL.SslProtocols.Default, OpenSSL.SslStrength.Medium, false);
sslStream.AuthenticateAsClient(_proxy.TargetHost);
}
catch (System.Security.Authentication.AuthenticationException e)
{
_lastError = e.Message;
if (e.InnerException != null)
{
_lastError += Environment.NewLine + e.InnerException.Message;
}
_networkStream.Close();
return -1;
}
_streamReader = new StreamReader(sslStream, System.Text.Encoding.ASCII);
_streamWriter = new StreamWriter(sslStream, System.Text.Encoding.ASCII);
_streamWriter.AutoFlush = true;
}//end of usessl
else
{
_streamReader = new StreamReader(_networkStream, System.Text.Encoding.ASCII);
_streamWriter = new StreamWriter(_networkStream, System.Text.Encoding.ASCII);
_streamWriter.AutoFlush = true;
}