@@ -54,8 +54,17 @@ public Stream CreateStream(EndPoint endPoint, CancellationToken cancellationToke
54
54
{
55
55
var sslStream = CreateSslStream ( stream ) ;
56
56
var targetHost = GetTargetHost ( endPoint ) ;
57
+
58
+ #if NET6_0_OR_GREATER
59
+ var options = GetAuthenticationOptions ( targetHost ) ;
60
+ sslStream . AuthenticateAsClient ( options ) ;
61
+ #elif NETSTANDARD2_1_OR_GREATER
62
+ var options = GetAuthenticationOptions ( targetHost ) ;
63
+ sslStream . AuthenticateAsClientAsync ( options , cancellationToken ) . GetAwaiter ( ) . GetResult ( ) ;
64
+ #else
57
65
var clientCertificates = new X509CertificateCollection ( _settings . ClientCertificates . ToArray ( ) ) ;
58
66
sslStream . AuthenticateAsClient ( targetHost , clientCertificates , _settings . EnabledSslProtocols , _settings . CheckCertificateRevocation ) ;
67
+ #endif
59
68
return sslStream ;
60
69
}
61
70
catch
@@ -73,8 +82,14 @@ public async Task<Stream> CreateStreamAsync(EndPoint endPoint, CancellationToken
73
82
{
74
83
var sslStream = CreateSslStream ( stream ) ;
75
84
var targetHost = GetTargetHost ( endPoint ) ;
85
+
86
+ #if NETSTANDARD2_1_OR_GREATER || NET6_0_OR_GREATER
87
+ var options = GetAuthenticationOptions ( targetHost ) ;
88
+ await sslStream . AuthenticateAsClientAsync ( options , cancellationToken ) . ConfigureAwait ( false ) ;
89
+ #else
76
90
var clientCertificates = new X509CertificateCollection ( _settings . ClientCertificates . ToArray ( ) ) ;
77
91
await sslStream . AuthenticateAsClientAsync ( targetHost , clientCertificates , _settings . EnabledSslProtocols , _settings . CheckCertificateRevocation ) . ConfigureAwait ( false ) ;
92
+ #endif
78
93
return sslStream ;
79
94
}
80
95
catch
@@ -106,6 +121,17 @@ private void DisposeStreamIgnoringExceptions(Stream stream)
106
121
}
107
122
}
108
123
124
+ #if NETSTANDARD2_1_OR_GREATER || NET6_0_OR_GREATER
125
+ private SslClientAuthenticationOptions GetAuthenticationOptions ( string targetHost ) => new ( )
126
+ {
127
+ AllowRenegotiation = false ,
128
+ ClientCertificates = new X509CertificateCollection ( _settings . ClientCertificates . ToArray ( ) ) ,
129
+ CertificateRevocationCheckMode = _settings . CheckCertificateRevocation ? X509RevocationMode . Online : X509RevocationMode . NoCheck ,
130
+ EnabledSslProtocols = _settings . EnabledSslProtocols ,
131
+ TargetHost = targetHost
132
+ } ;
133
+ #endif
134
+
109
135
private string GetTargetHost ( EndPoint endPoint )
110
136
{
111
137
DnsEndPoint dnsEndPoint ;
0 commit comments