From: Martin Baulig Date: Fri, 23 Oct 2015 18:08:44 +0000 (-0400) Subject: [System]: Add internal 'Mono.Net.Security.NoReflectionHelper' class to avoid reflecti... X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=9da940dd64c20215d21112299d5f0f68855b599b;p=mono.git [System]: Add internal 'Mono.Net.Security.NoReflectionHelper' class to avoid reflection use. --- diff --git a/mcs/class/Mono.Security/Mono.Security.Interface/CertificateValidationHelper.cs b/mcs/class/Mono.Security/Mono.Security.Interface/CertificateValidationHelper.cs index 25d00096cde..18ada523b25 100644 --- a/mcs/class/Mono.Security/Mono.Security.Interface/CertificateValidationHelper.cs +++ b/mcs/class/Mono.Security/Mono.Security.Interface/CertificateValidationHelper.cs @@ -32,7 +32,7 @@ using System.Threading; using System.Security.Cryptography.X509Certificates; using Mono.Security.Protocol.Tls; using MX = Mono.Security.X509; -using MNS = Mono.Net.Security; +using Mono.Net.Security; namespace Mono.Security.Interface { @@ -119,7 +119,7 @@ namespace Mono.Security.Interface internal static ICertificateValidator GetDefaultValidator (MonoTlsSettings settings) { - return (ICertificateValidator)MNS.MonoTlsProviderFactory.GetDefaultCertificateValidator (settings); + return (ICertificateValidator)NoReflectionHelper.GetDefaultCertificateValidator (settings); } #if !INSIDE_SYSTEM diff --git a/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs b/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs index 7246d54a96b..c35ffe1af51 100644 --- a/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs +++ b/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs @@ -124,19 +124,6 @@ namespace Mono.Net.Security #endregion - #region Internal Interface - - internal static object GetDefaultCertificateValidator (object settings) - { - #if SECURITY_DEP - return ChainValidationHelper.GetDefaultValidator ((MSI.MonoTlsSettings)settings); - #else - throw new NotSupportedException (); - #endif - } - - #endregion - #if SECURITY_DEP && !MONO_FEATURE_NEW_SYSTEM_SOURCE #region Mono.Security visible API diff --git a/mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs b/mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs new file mode 100644 index 00000000000..b703ec7411a --- /dev/null +++ b/mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs @@ -0,0 +1,56 @@ +// +// NoReflectionHelper.cs +// +// Author: +// Martin Baulig +// +// Copyright (c) 2015 Xamarin, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if SECURITY_DEP +#if MONO_SECURITY_ALIAS +extern alias MonoSecurity; +using MSI = MonoSecurity::Mono.Security.Interface; +using MX = MonoSecurity::Mono.Security.X509; +#else +using MSI = Mono.Security.Interface; +using MX = Mono.Security.X509; +#endif +#endif + +using System; + +namespace Mono.Net.Security +{ + // + // Internal APIs which are used by Mono.Security.dll to avoid using reflection. + // + internal static class NoReflectionHelper + { + internal static object GetDefaultCertificateValidator (object settings) + { + #if SECURITY_DEP + return ChainValidationHelper.GetDefaultValidator ((MSI.MonoTlsSettings)settings); + #else + throw new NotSupportedException (); + #endif + } + } +} diff --git a/mcs/class/System/System.dll.sources b/mcs/class/System/System.dll.sources index 9e55a99d2cc..073a6c1be3a 100644 --- a/mcs/class/System/System.dll.sources +++ b/mcs/class/System/System.dll.sources @@ -625,6 +625,7 @@ Mono.Net.Security/MonoTlsProviderFactory.cs Mono.Net.Security/MonoTlsProviderImpl.cs Mono.Net.Security/MonoTlsProviderWrapper.cs Mono.Net.Security/MonoTlsStream.cs +Mono.Net.Security/NoReflectionHelper.cs ReferenceSources/AssertWrapper.cs ReferenceSources/BinaryCompatibility.cs diff --git a/mcs/class/System/mobile_System.dll.sources b/mcs/class/System/mobile_System.dll.sources index 1e45f421a8a..b8e7bdb8b32 100644 --- a/mcs/class/System/mobile_System.dll.sources +++ b/mcs/class/System/mobile_System.dll.sources @@ -360,6 +360,7 @@ Mono.Net.Security/MonoTlsProviderFactory.cs Mono.Net.Security/MonoTlsProviderImpl.cs Mono.Net.Security/MonoTlsProviderWrapper.cs Mono.Net.Security/MonoTlsStream.cs +Mono.Net.Security/NoReflectionHelper.cs ReferenceSources/AssertWrapper.cs ReferenceSources/Internal.cs