From 2f787345439a94935fca16dd2edd2a0351310695 Mon Sep 17 00:00:00 2001 From: Kevin Jones Date: Mon, 1 Aug 2022 09:46:14 -0400 Subject: [PATCH] Remove cctor from X500NameEncoder (#73115) --- .../X509Certificates/X500NameEncoder.cs | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/X500NameEncoder.cs b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/X500NameEncoder.cs index d8a3be4164490..00fb503ad2550 100644 --- a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/X500NameEncoder.cs +++ b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/X500NameEncoder.cs @@ -11,11 +11,10 @@ namespace System.Security.Cryptography.X509Certificates internal static partial class X500NameEncoder { private const string OidTagPrefix = "OID."; - - private static readonly List s_useSemicolonSeparators = new List(1) { ';' }; - private static readonly List s_useCommaSeparators = new List(1) { ',' }; - private static readonly List s_useNewlineSeparators = new List(2) { '\r', '\n' }; - private static readonly List s_defaultSeparators = new List(2) { ',', ';' }; + private const string UseSemicolonSeparators = ";"; + private const string UseCommaSeparators = ","; + private const string UseNewlineSeparators = "\r\n"; + private const string DefaultSeparators = ",;"; internal static string X500DistinguishedNameDecode( byte[] encodedName, @@ -72,31 +71,31 @@ internal static byte[] X500DistinguishedNameEncode( bool noQuotes = (flags & X500DistinguishedNameFlags.DoNotUseQuotes) == X500DistinguishedNameFlags.DoNotUseQuotes; bool forceUtf8Encoding = (flags & X500DistinguishedNameFlags.ForceUTF8Encoding) == X500DistinguishedNameFlags.ForceUTF8Encoding; - List dnSeparators; + string dnSeparators; // This rank ordering is based off of testing against the Windows implementation. if ((flags & X500DistinguishedNameFlags.UseSemicolons) == X500DistinguishedNameFlags.UseSemicolons) { // Just semicolon. - dnSeparators = s_useSemicolonSeparators; + dnSeparators = UseSemicolonSeparators; } else if ((flags & X500DistinguishedNameFlags.UseCommas) == X500DistinguishedNameFlags.UseCommas) { // Just comma - dnSeparators = s_useCommaSeparators; + dnSeparators = UseCommaSeparators; } else if ((flags & X500DistinguishedNameFlags.UseNewLines) == X500DistinguishedNameFlags.UseNewLines) { // CR or LF. Not "and". Whichever is first was the separator, the later one is trimmed as whitespace. - dnSeparators = s_useNewlineSeparators; + dnSeparators = UseNewlineSeparators; } else { // Comma or semicolon, but not CR or LF. - dnSeparators = s_defaultSeparators; + dnSeparators = DefaultSeparators; } - Debug.Assert(dnSeparators.Count != 0); + Debug.Assert(dnSeparators.Length != 0); List encodedSets = ParseDistinguishedName(stringForm, dnSeparators, noQuotes, forceUtf8Encoding); @@ -178,7 +177,7 @@ private enum ParseState private static List ParseDistinguishedName( string stringForm, - List dnSeparators, + string dnSeparators, bool noQuotes, bool forceUtf8Encoding) {