diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs b/src/libraries/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs index 8db7686811751..bb4f84ce8de8f 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs @@ -34,7 +34,7 @@ public SafeDeleteSslContext(SafeFreeSslCredentials credential, SslAuthentication { int osStatus; - _sslContext = CreateSslContext(credential, sslAuthenticationOptions.IsServer); + _sslContext = CreateSslContext(credential, sslAuthenticationOptions); // Make sure the class instance is associated to the session and is provided // in the Read/Write callback connection parameter @@ -129,7 +129,7 @@ public SafeDeleteSslContext(SafeFreeSslCredentials credential, SslAuthentication } } - private static SafeSslHandle CreateSslContext(SafeFreeSslCredentials credential, bool isServer) + private static SafeSslHandle CreateSslContext(SafeFreeSslCredentials credential, SslAuthenticationOptions sslAuthenticationOptions) { switch (credential.Policy) { @@ -145,7 +145,7 @@ private static SafeSslHandle CreateSslContext(SafeFreeSslCredentials credential, throw new PlatformNotSupportedException(SR.Format(SR.net_encryptionpolicy_notsupported, credential.Policy)); } - SafeSslHandle sslContext = Interop.AppleCrypto.SslCreateContext(isServer ? 1 : 0); + SafeSslHandle sslContext = Interop.AppleCrypto.SslCreateContext(sslAuthenticationOptions.IsServer ? 1 : 0); try { @@ -157,14 +157,14 @@ private static SafeSslHandle CreateSslContext(SafeFreeSslCredentials credential, } // Let None mean "system default" - if (credential.Protocols != SslProtocols.None) + if (sslAuthenticationOptions.EnabledSslProtocols != SslProtocols.None) { - SetProtocols(sslContext, credential.Protocols); + SetProtocols(sslContext, sslAuthenticationOptions.EnabledSslProtocols); } - if (credential.CertificateContext != null) + if (sslAuthenticationOptions.CertificateContext != null) { - SetCertificate(sslContext, credential.CertificateContext); + SetCertificate(sslContext, sslAuthenticationOptions.CertificateContext); } Interop.AppleCrypto.SslBreakOnCertRequested(sslContext, true); @@ -360,7 +360,6 @@ internal static void SetCertificate(SafeSslHandle sslContext, SslStreamCertifica { Debug.Assert(sslContext != null, "sslContext != null"); - IntPtr[] ptrs = new IntPtr[context!.IntermediateCertificates!.Length + 1]; for (int i = 0; i < context.IntermediateCertificates.Length; i++) diff --git a/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs b/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs index 5528baeb02abb..e27f6f635ac90 100644 --- a/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs +++ b/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs @@ -791,10 +791,7 @@ public async Task SslStream_UntrustedCaWithCustomTrust_OK(bool usePartialChain) serverChain = _certificates.serverChain; } - // TODO: line below is wrong, but it breaks on Mac, it should be - // serverOptions.ServerCertificateContext = SslStreamCertificateContext.Create(_certificates.serverCert, serverChain); - // [ActiveIssue("https://github.com/dotnet/runtime/issues/73295")] - serverOptions.ServerCertificateContext = SslStreamCertificateContext.Create(_certificates.serverCert, _certificates.serverChain); + serverOptions.ServerCertificateContext = SslStreamCertificateContext.Create(_certificates.serverCert, serverChain); (Stream clientStream, Stream serverStream) = TestHelper.GetConnectedStreams(); using (clientStream)