Generate SslConnectionInfo.Unix.cs with T4 template (#84690)
authorAdeel Mujahid <3840695+am11@users.noreply.github.com>
Mon, 17 Apr 2023 01:30:24 +0000 (04:30 +0300)
committerGitHub <noreply@github.com>
Mon, 17 Apr 2023 01:30:24 +0000 (18:30 -0700)
* Generate SslConnectionInfo.Unix.cs with T4 template

* Try fitting into ushort

src/libraries/System.Net.Security/src/System.Net.Security.csproj
src/libraries/System.Net.Security/src/System/Net/Security/SslConnectionInfo.Unix.cs
src/libraries/System.Net.Security/src/System/Net/Security/SslConnectionInfo.Unix.tt [new file with mode: 0644]
src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.Lookup.cs [deleted file]
src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.Lookup.tt [deleted file]
src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.cs [deleted file]
src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteNameParser.ttinclude

index 56bf536..54f8c9f 100644 (file)
     <None Include="System\Net\Security\TlsCipherSuiteNameParser.ttinclude" />
   </ItemGroup>
   <ItemGroup Condition="'$(TargetPlatformIdentifier)' != '' and '$(TargetPlatformIdentifier)' != 'windows'">
-    <Compile Include="System\Net\Security\TlsCipherSuiteData.Lookup.cs">
+    <Compile Include="System\Net\Security\SslConnectionInfo.Unix.cs">
       <DesignTime>True</DesignTime>
       <AutoGen>True</AutoGen>
-      <DependentUpon>TlsCipherSuiteData.Lookup.tt</DependentUpon>
+      <DependentUpon>SslConnectionInfo.Unix.tt</DependentUpon>
     </Compile>
   </ItemGroup>
   <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
-    <None Include="System\Net\Security\TlsCipherSuiteData.Lookup.cs">
+    <None Include="System\Net\Security\SslConnectionInfo.Unix.cs">
       <DesignTime>True</DesignTime>
       <AutoGen>True</AutoGen>
-      <DependentUpon>TlsCipherSuiteData.Lookup.tt</DependentUpon>
+      <DependentUpon>SslConnectionInfo.Unix.tt</DependentUpon>
     </None>
   </ItemGroup>
   <ItemGroup Condition="'$(AllowTlsCipherSuiteGeneration)' == 'true'">
       <Generator>TextTemplatingFileGenerator</Generator>
       <LastGenOutput>TlsCipherSuite.cs</LastGenOutput>
     </None>
-    <None Include="System\Net\Security\TlsCipherSuiteData.Lookup.tt">
+    <None Include="System\Net\Security\SslConnectionInfo.Unix.tt">
       <Generator>TextTemplatingFileGenerator</Generator>
-      <LastGenOutput>TlsCipherSuiteData.Lookup.cs</LastGenOutput>
+      <LastGenOutput>SslConnectionInfo.Unix.cs</LastGenOutput>
     </None>
   </ItemGroup>
   <ItemGroup Condition="'$(AllowTlsCipherSuiteGeneration)' != 'true'">
     <None Include="System\Net\Security\TlsCipherSuite.tt" />
-    <None Include="System\Net\Security\TlsCipherSuiteData.Lookup.tt" />
+    <None Include="System\Net\Security\SslConnectionInfo.Unix.tt" />
   </ItemGroup>
   <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
     <Compile Include="System\Net\CertificateValidationPal.Windows.cs" />
              Link="Common\System\Net\Security\Unix\SecChannelBindings.cs" />
     <Compile Include="System\Net\Security\Pal.Managed\EndpointChannelBindingToken.cs" />
     <Compile Include="System\Net\Security\Pal.Managed\SafeChannelBindingHandle.cs" />
-    <Compile Include="System\Net\Security\SslConnectionInfo.Unix.cs" />
-    <Compile Include="System\Net\Security\TlsCipherSuiteData.cs" />
   </ItemGroup>
   <ItemGroup Condition="'$(TargetPlatformIdentifier)' != '' and '$(TargetPlatformIdentifier)' != 'windows' and '$(UseManagedNtlm)' != 'true'">
     <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\GssSafeHandles.cs"
index 049557b..e68fb8e 100644 (file)
@@ -1,7 +1,12 @@
 // Licensed to the .NET Foundation under one or more agreements.
 // The .NET Foundation licenses this file to you under the MIT license.
 
-using System.Collections.Generic;
+// This file has been auto-generated. Do not edit by hand.
+// Instead open Developer Command prompt and run: TextTransform FileName.tt
+// Or set AllowTlsCipherSuiteGeneration=true and open VS and edit there directly
+
+// This line is needed so that file compiles both as a T4 template and C# file
+
 using System.Diagnostics;
 using System.Security.Authentication;
 
@@ -12,14 +17,371 @@ namespace System.Net.Security
         private void MapCipherSuite(TlsCipherSuite cipherSuite)
         {
             TlsCipherSuite = cipherSuite;
-
-            TlsCipherSuiteData data = TlsCipherSuiteData.GetCipherSuiteData(cipherSuite);
-            KeyExchangeAlg = (int)data.KeyExchangeAlgorithm;
             KeyExchKeySize = 0;
-            DataCipherAlg = (int)data.CipherAlgorithm;
-            DataKeySize = data.CipherAlgorithmStrength;
-            DataHashAlg = (int)data.MACAlgorithm;
-            DataHashKeySize = data.MACAlgorithmStrength;
+            ReadOnlySpan<int> keyExchangeAlgs =
+                new[] { (int)ExchangeAlgorithmType.None, (int)ExchangeAlgorithmType.RsaSign, (int)ExchangeAlgorithmType.RsaKeyX, (int)ExchangeAlgorithmType.DiffieHellman, };
+            ReadOnlySpan<int> dataCipherAlgs =
+                new[] { (int)CipherAlgorithmType.None, (int)CipherAlgorithmType.Null, (int)CipherAlgorithmType.Des, (int)CipherAlgorithmType.Rc2, (int)CipherAlgorithmType.TripleDes, (int)CipherAlgorithmType.Aes128, (int)CipherAlgorithmType.Aes192, (int)CipherAlgorithmType.Aes256, (int)CipherAlgorithmType.Aes, (int)CipherAlgorithmType.Rc4, };
+            ReadOnlySpan<int> dataKeySizes =
+                new[] { 0, 40, 56, 128, 168, 256 };
+            ReadOnlySpan<int> dataHashAlgs =
+                new[] { (int)HashAlgorithmType.None, (int)HashAlgorithmType.Md5, (int)HashAlgorithmType.Sha1, (int)HashAlgorithmType.Sha256, (int)HashAlgorithmType.Sha384, (int)HashAlgorithmType.Sha512, };
+            ReadOnlySpan<int> dataHashKeySizes =
+                new[] { 0, 128, 160, 256, 384, 512 };
+
+            int data = GetPackedData(cipherSuite);
+            Debug.Assert(data != 0, $"No mapping found for cipherSuite {cipherSuite}");
+
+            KeyExchangeAlg = keyExchangeAlgs[(data >> 12) & 0xF];
+            DataCipherAlg = dataCipherAlgs[(data >> 8) & 0xF];
+            DataKeySize = dataKeySizes[(data >> 4) & 0xF];
+            DataHashAlg = dataHashAlgs[data & 0xF];
+            DataHashKeySize = dataHashKeySizes[data & 0xF];
+
+            static int GetPackedData(TlsCipherSuite cipherSuite)
+            {
+                switch (cipherSuite)
+                {
+                    case TlsCipherSuite.TLS_NULL_WITH_NULL_NULL: return 0 << 12 | 1 << 8 | 0 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_WITH_NULL_MD5: return 2 << 12 | 1 << 8 | 0 << 4 | 1;
+                    case TlsCipherSuite.TLS_RSA_WITH_NULL_SHA: return 2 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5: return 2 << 12 | 9 << 8 | 1 << 4 | 1;
+                    case TlsCipherSuite.TLS_RSA_WITH_RC4_128_MD5: return 2 << 12 | 9 << 8 | 3 << 4 | 1;
+                    case TlsCipherSuite.TLS_RSA_WITH_RC4_128_SHA: return 2 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5: return 2 << 12 | 3 << 8 | 1 << 4 | 1;
+                    case TlsCipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA: return 2 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA: return 2 << 12 | 2 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_WITH_DES_CBC_SHA: return 2 << 12 | 2 << 8 | 2 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA: return 2 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA: return 3 << 12 | 2 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA: return 3 << 12 | 2 << 8 | 2 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA: return 3 << 12 | 2 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA: return 3 << 12 | 2 << 8 | 2 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA: return 3 << 12 | 2 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA: return 3 << 12 | 2 << 8 | 2 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA: return 3 << 12 | 2 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA: return 3 << 12 | 2 << 8 | 2 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5: return 3 << 12 | 9 << 8 | 1 << 4 | 1;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_RC4_128_MD5: return 3 << 12 | 9 << 8 | 3 << 4 | 1;
+                    case TlsCipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA: return 3 << 12 | 2 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA: return 3 << 12 | 2 << 8 | 2 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_WITH_DES_CBC_SHA: return 0 << 12 | 2 << 8 | 2 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_WITH_3DES_EDE_CBC_SHA: return 0 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_WITH_RC4_128_SHA: return 0 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_WITH_IDEA_CBC_SHA: return 0 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_WITH_DES_CBC_MD5: return 0 << 12 | 2 << 8 | 2 << 4 | 1;
+                    case TlsCipherSuite.TLS_KRB5_WITH_3DES_EDE_CBC_MD5: return 0 << 12 | 4 << 8 | 4 << 4 | 1;
+                    case TlsCipherSuite.TLS_KRB5_WITH_RC4_128_MD5: return 0 << 12 | 9 << 8 | 3 << 4 | 1;
+                    case TlsCipherSuite.TLS_KRB5_WITH_IDEA_CBC_MD5: return 0 << 12 | 0 << 8 | 3 << 4 | 1;
+                    case TlsCipherSuite.TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA: return 0 << 12 | 2 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA: return 0 << 12 | 3 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC4_40_SHA: return 0 << 12 | 9 << 8 | 1 << 4 | 2;
+                    case TlsCipherSuite.TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5: return 0 << 12 | 2 << 8 | 1 << 4 | 1;
+                    case TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5: return 0 << 12 | 3 << 8 | 1 << 4 | 1;
+                    case TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC4_40_MD5: return 0 << 12 | 9 << 8 | 1 << 4 | 1;
+                    case TlsCipherSuite.TLS_PSK_WITH_NULL_SHA: return 0 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_NULL_SHA: return 3 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_NULL_SHA: return 2 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA: return 2 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA: return 2 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_WITH_NULL_SHA256: return 2 << 12 | 1 << 8 | 0 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA256: return 2 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA256: return 2 << 12 | 7 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_128_CBC_SHA: return 2 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA256: return 3 << 12 | 7 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA256: return 3 << 12 | 7 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA256: return 3 << 12 | 7 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256: return 3 << 12 | 7 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_AES_256_CBC_SHA256: return 3 << 12 | 7 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_256_CBC_SHA: return 2 << 12 | 0 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA: return 3 << 12 | 0 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA: return 3 << 12 | 0 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA: return 3 << 12 | 0 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA: return 3 << 12 | 0 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA: return 3 << 12 | 0 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_PSK_WITH_RC4_128_SHA: return 0 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_PSK_WITH_3DES_EDE_CBC_SHA: return 0 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_128_CBC_SHA: return 0 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_256_CBC_SHA: return 0 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_RC4_128_SHA: return 3 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_RC4_128_SHA: return 2 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA: return 2 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_AES_128_CBC_SHA: return 2 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_AES_256_CBC_SHA: return 2 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_WITH_SEED_CBC_SHA: return 2 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_SEED_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_SEED_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_SEED_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_SEED_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_SEED_CBC_SHA: return 3 << 12 | 0 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_128_GCM_SHA256: return 2 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_256_GCM_SHA384: return 2 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_128_GCM_SHA256: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_256_GCM_SHA384: return 0 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_AES_128_GCM_SHA256: return 2 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_AES_256_GCM_SHA384: return 2 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_128_CBC_SHA256: return 0 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_256_CBC_SHA384: return 0 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_PSK_WITH_NULL_SHA256: return 0 << 12 | 1 << 8 | 0 << 4 | 3;
+                    case TlsCipherSuite.TLS_PSK_WITH_NULL_SHA384: return 0 << 12 | 1 << 8 | 0 << 4 | 4;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_CBC_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_NULL_SHA256: return 3 << 12 | 1 << 8 | 0 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_NULL_SHA384: return 3 << 12 | 1 << 8 | 0 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_AES_128_CBC_SHA256: return 2 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_AES_256_CBC_SHA384: return 2 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_NULL_SHA256: return 2 << 12 | 1 << 8 | 0 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_NULL_SHA384: return 2 << 12 | 1 << 8 | 0 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256: return 2 << 12 | 0 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 3;
+                    case TlsCipherSuite.TLS_AES_128_GCM_SHA256: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_AES_256_GCM_SHA384: return 0 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_CHACHA20_POLY1305_SHA256: return 0 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_AES_128_CCM_SHA256: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_AES_128_CCM_8_SHA256: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_NULL_SHA: return 3 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_RC4_128_SHA: return 3 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_NULL_SHA: return 3 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA: return 3 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_NULL_SHA: return 3 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_RC4_128_SHA: return 3 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_NULL_SHA: return 3 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_RC4_128_SHA: return 3 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_anon_WITH_NULL_SHA: return 3 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_anon_WITH_RC4_128_SHA: return 3 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_anon_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDH_anon_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA: return 0 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA: return 0 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA: return 0 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_WITH_AES_128_CBC_SHA: return 0 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA: return 0 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA: return 0 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_WITH_AES_256_CBC_SHA: return 0 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA: return 0 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA: return 0 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_RC4_128_SHA: return 3 << 12 | 9 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA: return 3 << 12 | 4 << 8 | 4 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA: return 3 << 12 | 5 << 8 | 3 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA: return 3 << 12 | 7 << 8 | 5 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA: return 3 << 12 | 1 << 8 | 0 << 4 | 2;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA256: return 3 << 12 | 1 << 8 | 0 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA384: return 3 << 12 | 1 << 8 | 0 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_WITH_ARIA_128_CBC_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_WITH_ARIA_256_CBC_SHA384: return 2 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_WITH_ARIA_128_GCM_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_WITH_ARIA_256_GCM_SHA384: return 2 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_ARIA_128_CBC_SHA256: return 0 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_PSK_WITH_ARIA_256_CBC_SHA384: return 0 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384: return 2 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_PSK_WITH_ARIA_128_GCM_SHA256: return 0 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_ARIA_256_GCM_SHA384: return 0 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384: return 2 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384: return 2 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256: return 0 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384: return 0 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384: return 2 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256: return 0 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384: return 0 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256: return 2 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384: return 2 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256: return 3 << 12 | 0 << 8 | 3 << 4 | 3;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384: return 3 << 12 | 0 << 8 | 5 << 4 | 4;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_128_CCM: return 2 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_256_CCM: return 2 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CCM: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CCM: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_128_CCM_8: return 2 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_WITH_AES_256_CCM_8: return 2 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CCM_8: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CCM_8: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_128_CCM: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_256_CCM: return 0 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_CCM: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_CCM: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_128_CCM_8: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_AES_256_CCM_8: return 0 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_DHE_WITH_AES_128_CCM_8: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_DHE_WITH_AES_256_CCM_8: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CCM: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECCPWD_WITH_AES_128_GCM_SHA256: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECCPWD_WITH_AES_256_GCM_SHA384: return 0 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECCPWD_WITH_AES_128_CCM_SHA256: return 0 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECCPWD_WITH_AES_256_CCM_SHA384: return 0 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_PSK_WITH_CHACHA20_POLY1305_SHA256: return 0 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256: return 3 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256: return 2 << 12 | 0 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384: return 3 << 12 | 7 << 8 | 5 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    case TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256: return 3 << 12 | 5 << 8 | 3 << 4 | 0;
+                    default: return 0;
+                }
+            }
         }
     }
 }
diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslConnectionInfo.Unix.tt b/src/libraries/System.Net.Security/src/System/Net/Security/SslConnectionInfo.Unix.tt
new file mode 100644 (file)
index 0000000..6d85317
--- /dev/null
@@ -0,0 +1,91 @@
+<#@ template debug="false" hostspecific="false" language="C#" #>
+<#@ import namespace="System" #>
+<#@ assembly name="System.Core" #>
+<#@ assembly name="System.Net.Primitives" #>
+<#@ import namespace="System.Linq" #>
+<#@ import namespace="System.Text" #>
+<#@ import namespace="System.Collections.Generic" #>
+<#@ output extension=".cs" #>
+<#@ include file="TlsCipherSuiteNameParser.ttinclude" #><#@
+    include file="TlsCipherSuite.cs" #>
+<# Array tlsEnumValues = typeof(TlsCipherSuite).GetEnumValues(); #>
+<# Array exchangeEnumValues = typeof(ExchangeAlgorithmTypeIndex).GetEnumValues(); #>
+<# Array dataCipherAlgs = typeof(CipherAlgorithmTypeIndex).GetEnumValues(); #>
+<# Array dataHashAlgs = typeof(HashAlgorithmTypeIndex).GetEnumValues(); #>
+
+
+using System.Diagnostics;
+using System.Security.Authentication;
+
+namespace System.Net.Security
+{
+    internal partial struct SslConnectionInfo
+    {
+        private void MapCipherSuite(TlsCipherSuite cipherSuite)
+        {
+            TlsCipherSuite = cipherSuite;
+            KeyExchKeySize = 0;
+            ReadOnlySpan<int> keyExchangeAlgs =
+                new[] { <#
+foreach (ExchangeAlgorithmTypeIndex val in exchangeEnumValues)
+{
+    #>(int)ExchangeAlgorithmType.<#= val #>, <#
+}
+    #>};
+            ReadOnlySpan<int> dataCipherAlgs =
+                new[] { <#
+foreach (CipherAlgorithmTypeIndex val in dataCipherAlgs)
+{
+    #>(int)CipherAlgorithmType.<#= val #>, <#
+}
+    #>};
+<#
+ReadOnlySpan<int> strengths = new[] { 0, 40, 56, 128, 168, 256 };
+#>
+            ReadOnlySpan<int> dataKeySizes =
+                new[] { <#= string.Join(", ", strengths.ToArray()) #> };
+            ReadOnlySpan<int> dataHashAlgs =
+                new[] { <#
+foreach (HashAlgorithmTypeIndex val in dataHashAlgs)
+{
+    #>(int)HashAlgorithmType.<#= val #>, <#
+}
+    #>};
+            ReadOnlySpan<int> dataHashKeySizes =
+                new[] { 0, 128, 160, 256, 384, 512 };
+
+            int data = GetPackedData(cipherSuite);
+            Debug.Assert(data != 0, $"No mapping found for cipherSuite {cipherSuite}");
+
+            KeyExchangeAlg = keyExchangeAlgs[(data >> 12) & 0xF];
+            DataCipherAlg = dataCipherAlgs[(data >> 8) & 0xF];
+            DataKeySize = dataKeySizes[(data >> 4) & 0xF];
+            DataHashAlg = dataHashAlgs[data & 0xF];
+            DataHashKeySize = dataHashKeySizes[data & 0xF];
+
+            static int GetPackedData(TlsCipherSuite cipherSuite)
+            {
+                switch (cipherSuite)
+                {
+<#
+foreach (TlsCipherSuite val in tlsEnumValues)
+{
+    TlsCipherSuiteData data = new CipherSuiteNameData(val.ToString()).Data;
+    int exchangeAlgorithmType =  (int)Enum.Parse<ExchangeAlgorithmTypeIndex>(EnumHelpers.ToFrameworkName(data.KeyExchangeAlgorithm));
+    int cipherAlgorithmType =  (int)Enum.Parse<CipherAlgorithmTypeIndex>(EnumHelpers.ToFrameworkName(data.CipherAlgorithm));
+    int cipherAlgorithmStrength = (int)strengths.IndexOf(data.CipherAlgorithmStrength);
+    int hashAlgorithmType =  (int)Enum.Parse<HashAlgorithmTypeIndex>(EnumHelpers.ToFrameworkName(data.MACAlgorithm));
+
+    if (cipherAlgorithmStrength == -1)
+        throw new Exception($"Value '{data.CipherAlgorithmStrength}' is not found in 'strengths' array.");
+#>
+                    case TlsCipherSuite.<#= val #>: return <#= exchangeAlgorithmType #> << 12 | <#= cipherAlgorithmType #> << 8 | <#= cipherAlgorithmStrength #> << 4 | <#= hashAlgorithmType #>;
+<#
+}
+#>
+                    default: return 0;
+                }
+            }
+        }
+    }
+}
diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.Lookup.cs b/src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.Lookup.cs
deleted file mode 100644 (file)
index 9a97c04..0000000
+++ /dev/null
@@ -1,3394 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-// This file has been auto-generated. Do not edit by hand.
-// Instead open Developer Command prompt and run: TextTransform FileName.tt
-// Or set AllowTlsCipherSuiteGeneration=true and open VS and edit there directly
-
-// This line is needed so that file compiles both as a T4 template and C# file
-
-using System.Collections.Generic;
-using System.Security.Authentication;
-
-namespace System.Net.Security
-{
-    internal partial struct TlsCipherSuiteData
-    {
-        private const int LookupCount = 337;
-
-        private static readonly Dictionary<TlsCipherSuite, TlsCipherSuiteData> s_tlsLookup =
-            new Dictionary<TlsCipherSuite, TlsCipherSuiteData>(LookupCount)
-            {
-                {
-                    TlsCipherSuite.TLS_NULL_WITH_NULL_NULL,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_NULL_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_RC4_128_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Rc2,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_DES_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_RC4_128_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_DES_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_IDEA_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_DES_CBC_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 56,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_3DES_EDE_CBC_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_RC4_128_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_WITH_IDEA_CBC_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Rc2,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC4_40_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Des,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Rc2,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_KRB5_EXPORT_WITH_RC4_40_MD5,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 40,
-                        MACAlgorithm = HashAlgorithmType.Md5,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_NULL_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_AES_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_SEED_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_SEED_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_SEED_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_SEED_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_SEED_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_SEED_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_NULL_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_NULL_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_NULL_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_NULL_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_NULL_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_NULL_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_AES_128_CCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_AES_128_CCM_8_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_anon_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_anon_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_anon_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_anon_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_RC4_128_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Rc4,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.TripleDes,
-                        CipherAlgorithmStrength = 168,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha1,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Null,
-                        CipherAlgorithmStrength = 0,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.Sha256,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.Sha384,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_128_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_256_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_128_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_WITH_AES_256_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_128_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_AES_256_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_128_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_256_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_128_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_AES_256_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_128_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_AES_256_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_DHE_WITH_AES_128_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_DHE_WITH_AES_256_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECCPWD_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECCPWD_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECCPWD_WITH_AES_128_CCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECCPWD_WITH_AES_256_CCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.None,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.RsaKeyX,
-                        CipherAlgorithm = CipherAlgorithmType.None,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes256,
-                        CipherAlgorithmStrength = 256,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-                {
-                    TlsCipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.DiffieHellman,
-                        CipherAlgorithm = CipherAlgorithmType.Aes128,
-                        CipherAlgorithmStrength = 128,
-                        MACAlgorithm = HashAlgorithmType.None,
-                    }
-                },
-            };
-    }
-}
diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.Lookup.tt b/src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.Lookup.tt
deleted file mode 100644 (file)
index a36c425..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<#@ template debug="false" hostspecific="false" language="C#" #>
-<#@ import namespace="System" #>
-<#@ assembly name="System.Core" #>
-<#@ assembly name="System.Net.Primitives" #>
-<#@ import namespace="System.Linq" #>
-<#@ import namespace="System.Text" #>
-<#@ import namespace="System.Collections.Generic" #>
-<#@ output extension=".cs" #>
-<#@ include file="TlsCipherSuiteNameParser.ttinclude" #><#@
-    include file="TlsCipherSuite.cs" #>
-<# Array enumValues = typeof(TlsCipherSuite).GetEnumValues(); #>
-
-using System.Collections.Generic;
-using System.Security.Authentication;
-
-namespace System.Net.Security
-{
-    internal partial struct TlsCipherSuiteData
-    {
-        private const int LookupCount = <#= enumValues.Length #>;
-
-        private static readonly Dictionary<TlsCipherSuite, TlsCipherSuiteData> s_tlsLookup =
-            new Dictionary<TlsCipherSuite, TlsCipherSuiteData>(LookupCount)
-            {
-<#
-foreach (TlsCipherSuite val in enumValues)
-{
-    TlsCipherSuiteData data = new CipherSuiteNameData(val.ToString()).Data;
-#>
-                {
-                    TlsCipherSuite.<#= val #>,
-                    new TlsCipherSuiteData()
-                    {
-                        KeyExchangeAlgorithm = ExchangeAlgorithmType.<#= EnumHelpers.ToFrameworkName(data.KeyExchangeAlgorithm) #>,
-                        CipherAlgorithm = CipherAlgorithmType.<#= EnumHelpers.ToFrameworkName(data.CipherAlgorithm) #>,
-                        CipherAlgorithmStrength = <#= data.CipherAlgorithmStrength #>,
-                        MACAlgorithm = HashAlgorithmType.<#= EnumHelpers.ToFrameworkName(data.MACAlgorithm) #>,
-                    }
-                },
-<#
-}
-#>
-            };
-    }
-}
diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.cs b/src/libraries/System.Net.Security/src/System/Net/Security/TlsCipherSuiteData.cs
deleted file mode 100644 (file)
index c422b9a..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.Diagnostics;
-using System.Security.Authentication;
-
-namespace System.Net.Security
-{
-    internal partial struct TlsCipherSuiteData
-    {
-        internal ExchangeAlgorithmType KeyExchangeAlgorithm;
-        // The Key Exchange size isn't part of the CipherSuite
-        internal CipherAlgorithmType CipherAlgorithm;
-        internal int CipherAlgorithmStrength;
-        internal HashAlgorithmType MACAlgorithm;
-        internal int MACAlgorithmStrength => GetHashSize(MACAlgorithm);
-
-#if DEBUG
-        static TlsCipherSuiteData()
-        {
-            Debug.Assert(
-                s_tlsLookup.Count == LookupCount,
-                $"Lookup dictionary was of size {s_tlsLookup.Count} instead of {LookupCount}");
-
-            foreach (TlsCipherSuite value in Enum.GetValues<TlsCipherSuite>())
-            {
-                Debug.Assert(s_tlsLookup.ContainsKey(value), $"No mapping found for {value} ({value:X})");
-            }
-        }
-
-        public override string ToString()
-        {
-            return $"Kx={KeyExchangeAlgorithm} Enc={CipherAlgorithm} [{CipherAlgorithmStrength}] Mac={MACAlgorithm} [{MACAlgorithmStrength}]";
-        }
-#endif
-
-        public static TlsCipherSuiteData GetCipherSuiteData(TlsCipherSuite cipherSuite)
-        {
-            if (s_tlsLookup.TryGetValue(cipherSuite, out TlsCipherSuiteData mapping))
-            {
-                return mapping;
-            }
-
-            Debug.Fail($"No mapping found for cipherSuite {cipherSuite}");
-            return default(TlsCipherSuiteData);
-        }
-
-        private static int GetHashSize(HashAlgorithmType hash)
-        {
-            switch (hash)
-            {
-                case HashAlgorithmType.None:
-                     return 0;
-                case HashAlgorithmType.Md5:
-                    return 128;
-                case HashAlgorithmType.Sha1:
-                    return 160;
-                case HashAlgorithmType.Sha256:
-                    return 256;
-                case HashAlgorithmType.Sha384:
-                    return 384;
-                case HashAlgorithmType.Sha512:
-                    return 512;
-                default:
-                    throw new ArgumentOutOfRangeException(nameof(hash));
-            }
-        }
-    }
-}
index 7a3dee3..a24c8a5 100644 (file)
@@ -70,6 +70,38 @@ public enum HashAlgorithmType
     Aead,
 }
 
+public enum CipherAlgorithmTypeIndex
+{
+    None,
+    Null,
+    Des,
+    Rc2,
+    TripleDes,
+    Aes128,
+    Aes192,
+    Aes256,
+    Aes,
+    Rc4,
+}
+
+public enum ExchangeAlgorithmTypeIndex
+{
+    None,
+    RsaSign,
+    RsaKeyX,
+    DiffieHellman,
+}
+
+public enum HashAlgorithmTypeIndex
+{
+    None,
+    Md5,
+    Sha1,
+    Sha256,
+    Sha384,
+    Sha512
+}
+
 internal static class EnumHelpers
 {
     public static string ToFrameworkName(ExchangeAlgorithmType val)