Fix bootstrapping issue wrt moonlight profile
authorSebastien Pouliot <sebastien@ximian.com>
Tue, 2 Nov 2010 23:22:20 +0000 (19:22 -0400)
committerSebastien Pouliot <sebastien@ximian.com>
Tue, 2 Nov 2010 23:26:22 +0000 (19:26 -0400)
* mcs/class/corlib/Mono.Security.X509/X509Store.cs:
* mcs/class/Mono.Security/Mono.Security.X509/X509Store.cs:
Add if !INSIDE_CORLIB around code that use CspParameters
in order to allow compilation to work when bootstraping
the moonlight profile

mcs/class/Mono.Security/Mono.Security.X509/X509Store.cs
mcs/class/corlib/Mono.Security.X509/X509Store.cs

index 11461804b06924271c7be3d8e7825013c9794f95..a65caac368afacf672a51543396459b5f0cf4abe 100644 (file)
@@ -32,9 +32,9 @@ using System;
 using System.Collections;
 using System.Globalization;
 using System.IO;
-using System.Text;\r
-using System.Security.Cryptography;\r
-\r
+using System.Text;
+using System.Security.Cryptography;
+
 using Mono.Security.Cryptography;
 using Mono.Security.X509.Extensions;
 
@@ -45,8 +45,8 @@ namespace Mono.Security.X509 {
 #else
        public 
 #endif
-       class X509Store {\r
-\r
+       class X509Store {
+
                private string _storePath;
                private X509CertificateCollection _certificates;
                private ArrayList _crls;
@@ -118,16 +118,17 @@ namespace Mono.Security.X509 {
                                        fs.Close ();
                                }
                        }
-                       
-                       // Try to save privateKey if available..\r
-                       CspParameters cspParams = new CspParameters ();\r
-                       cspParams.KeyContainerName = CryptoConvert.ToHex (certificate.Hash);\r
-\r
-                       // Right now this seems to be the best way to know if we should use LM store.. ;)\r
-                       if (_storePath.StartsWith (X509StoreManager.LocalMachinePath))\r
-                               cspParams.Flags = CspProviderFlags.UseMachineKeyStore;\r
-\r
-                       ImportPrivateKey (certificate, cspParams);\r
+#if !INSIDE_CORLIB
+                       // Try to save privateKey if available..
+                       CspParameters cspParams = new CspParameters ();
+                       cspParams.KeyContainerName = CryptoConvert.ToHex (certificate.Hash);
+
+                       // Right now this seems to be the best way to know if we should use LM store.. ;)
+                       if (_storePath.StartsWith (X509StoreManager.LocalMachinePath))
+                               cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
+
+                       ImportPrivateKey (certificate, cspParams);
+#endif
                }
 
                public void Import (X509Crl crl) 
@@ -141,7 +142,7 @@ namespace Mono.Security.X509 {
                                        fs.Write (data, 0, data.Length);
                                }
                        }
-               }\r
+               }
 
                public void Remove (X509Certificate certificate) 
                {
@@ -210,7 +211,7 @@ namespace Mono.Security.X509 {
                        sb.Append (fileExtension);
 
                        return sb.ToString ();
-               }\r
+               }
 
                private byte[] Load (string filename) 
                {
@@ -227,21 +228,21 @@ namespace Mono.Security.X509 {
                {
                        byte[] data = Load (filename);
                        X509Certificate cert = new X509Certificate (data);
-
-                       // If privateKey it's available, load it too..\r
-                       CspParameters cspParams = new CspParameters ();\r
-                       cspParams.KeyContainerName = CryptoConvert.ToHex (cert.Hash);\r
-                       cspParams.Flags = CspProviderFlags.UseMachineKeyStore;\r
-                       KeyPairPersistence kpp = new KeyPairPersistence (cspParams);\r
-\r
-                       if (!kpp.Load ())\r
-                               return cert;\r
-\r
-                       if (cert.RSA != null)\r
-                               cert.RSA = new RSACryptoServiceProvider (cspParams);\r
-                       else if (cert.DSA != null)\r
-                               cert.DSA = new DSACryptoServiceProvider (cspParams);\r
-
+#if !INSIDE_CORLIB
+                       // If privateKey it's available, load it too..
+                       CspParameters cspParams = new CspParameters ();
+                       cspParams.KeyContainerName = CryptoConvert.ToHex (cert.Hash);
+                       cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
+                       KeyPairPersistence kpp = new KeyPairPersistence (cspParams);
+
+                       if (!kpp.Load ())
+                               return cert;
+
+                       if (cert.RSA != null)
+                               cert.RSA = new RSACryptoServiceProvider (cspParams);
+                       else if (cert.DSA != null)
+                               cert.DSA = new DSACryptoServiceProvider (cspParams);
+#endif
                        return cert;
                }
 
@@ -312,41 +313,42 @@ namespace Mono.Security.X509 {
                                }
                        }
                        return list;
-               }\r
-\r
-               private void ImportPrivateKey (X509Certificate certificate, CspParameters cspParams)\r
-               {\r
-                       RSACryptoServiceProvider rsaCsp = certificate.RSA as RSACryptoServiceProvider;\r
-                       if (rsaCsp != null) {\r
-                               if (rsaCsp.PublicOnly)\r
-                                       return;\r
-\r
-                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);\r
-                               csp.ImportParameters(rsaCsp.ExportParameters(true));\r
-                               csp.PersistKeyInCsp = true;\r
-                               return;\r
-                       }\r
-\r
-                       RSAManaged rsaMng = certificate.RSA as RSAManaged;\r
-                       if (rsaMng != null) {\r
-                               if (rsaMng.PublicOnly)\r
-                                       return;\r
-\r
-                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);\r
-                               csp.ImportParameters(rsaMng.ExportParameters(true));\r
-                               csp.PersistKeyInCsp = true;\r
-                               return;\r
-                       }\r
-\r
-                       DSACryptoServiceProvider dsaCsp = certificate.DSA as DSACryptoServiceProvider;\r
-                       if (dsaCsp != null) {\r
-                               if (dsaCsp.PublicOnly)\r
-                                       return;\r
-\r
-                               DSACryptoServiceProvider csp = new DSACryptoServiceProvider(cspParams);\r
-                               csp.ImportParameters(dsaCsp.ExportParameters(true));\r
-                               csp.PersistKeyInCsp = true;\r
-                       }\r
                }
+#if !INSIDE_CORLIB
+               private void ImportPrivateKey (X509Certificate certificate, CspParameters cspParams)
+               {
+                       RSACryptoServiceProvider rsaCsp = certificate.RSA as RSACryptoServiceProvider;
+                       if (rsaCsp != null) {
+                               if (rsaCsp.PublicOnly)
+                                       return;
+
+                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);
+                               csp.ImportParameters(rsaCsp.ExportParameters(true));
+                               csp.PersistKeyInCsp = true;
+                               return;
+                       }
+
+                       RSAManaged rsaMng = certificate.RSA as RSAManaged;
+                       if (rsaMng != null) {
+                               if (rsaMng.PublicOnly)
+                                       return;
+
+                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);
+                               csp.ImportParameters(rsaMng.ExportParameters(true));
+                               csp.PersistKeyInCsp = true;
+                               return;
+                       }
+
+                       DSACryptoServiceProvider dsaCsp = certificate.DSA as DSACryptoServiceProvider;
+                       if (dsaCsp != null) {
+                               if (dsaCsp.PublicOnly)
+                                       return;
+
+                               DSACryptoServiceProvider csp = new DSACryptoServiceProvider(cspParams);
+                               csp.ImportParameters(dsaCsp.ExportParameters(true));
+                               csp.PersistKeyInCsp = true;
+                       }
+               }
+#endif
        }
 }
index 11461804b06924271c7be3d8e7825013c9794f95..a65caac368afacf672a51543396459b5f0cf4abe 100644 (file)
@@ -32,9 +32,9 @@ using System;
 using System.Collections;
 using System.Globalization;
 using System.IO;
-using System.Text;\r
-using System.Security.Cryptography;\r
-\r
+using System.Text;
+using System.Security.Cryptography;
+
 using Mono.Security.Cryptography;
 using Mono.Security.X509.Extensions;
 
@@ -45,8 +45,8 @@ namespace Mono.Security.X509 {
 #else
        public 
 #endif
-       class X509Store {\r
-\r
+       class X509Store {
+
                private string _storePath;
                private X509CertificateCollection _certificates;
                private ArrayList _crls;
@@ -118,16 +118,17 @@ namespace Mono.Security.X509 {
                                        fs.Close ();
                                }
                        }
-                       
-                       // Try to save privateKey if available..\r
-                       CspParameters cspParams = new CspParameters ();\r
-                       cspParams.KeyContainerName = CryptoConvert.ToHex (certificate.Hash);\r
-\r
-                       // Right now this seems to be the best way to know if we should use LM store.. ;)\r
-                       if (_storePath.StartsWith (X509StoreManager.LocalMachinePath))\r
-                               cspParams.Flags = CspProviderFlags.UseMachineKeyStore;\r
-\r
-                       ImportPrivateKey (certificate, cspParams);\r
+#if !INSIDE_CORLIB
+                       // Try to save privateKey if available..
+                       CspParameters cspParams = new CspParameters ();
+                       cspParams.KeyContainerName = CryptoConvert.ToHex (certificate.Hash);
+
+                       // Right now this seems to be the best way to know if we should use LM store.. ;)
+                       if (_storePath.StartsWith (X509StoreManager.LocalMachinePath))
+                               cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
+
+                       ImportPrivateKey (certificate, cspParams);
+#endif
                }
 
                public void Import (X509Crl crl) 
@@ -141,7 +142,7 @@ namespace Mono.Security.X509 {
                                        fs.Write (data, 0, data.Length);
                                }
                        }
-               }\r
+               }
 
                public void Remove (X509Certificate certificate) 
                {
@@ -210,7 +211,7 @@ namespace Mono.Security.X509 {
                        sb.Append (fileExtension);
 
                        return sb.ToString ();
-               }\r
+               }
 
                private byte[] Load (string filename) 
                {
@@ -227,21 +228,21 @@ namespace Mono.Security.X509 {
                {
                        byte[] data = Load (filename);
                        X509Certificate cert = new X509Certificate (data);
-
-                       // If privateKey it's available, load it too..\r
-                       CspParameters cspParams = new CspParameters ();\r
-                       cspParams.KeyContainerName = CryptoConvert.ToHex (cert.Hash);\r
-                       cspParams.Flags = CspProviderFlags.UseMachineKeyStore;\r
-                       KeyPairPersistence kpp = new KeyPairPersistence (cspParams);\r
-\r
-                       if (!kpp.Load ())\r
-                               return cert;\r
-\r
-                       if (cert.RSA != null)\r
-                               cert.RSA = new RSACryptoServiceProvider (cspParams);\r
-                       else if (cert.DSA != null)\r
-                               cert.DSA = new DSACryptoServiceProvider (cspParams);\r
-
+#if !INSIDE_CORLIB
+                       // If privateKey it's available, load it too..
+                       CspParameters cspParams = new CspParameters ();
+                       cspParams.KeyContainerName = CryptoConvert.ToHex (cert.Hash);
+                       cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
+                       KeyPairPersistence kpp = new KeyPairPersistence (cspParams);
+
+                       if (!kpp.Load ())
+                               return cert;
+
+                       if (cert.RSA != null)
+                               cert.RSA = new RSACryptoServiceProvider (cspParams);
+                       else if (cert.DSA != null)
+                               cert.DSA = new DSACryptoServiceProvider (cspParams);
+#endif
                        return cert;
                }
 
@@ -312,41 +313,42 @@ namespace Mono.Security.X509 {
                                }
                        }
                        return list;
-               }\r
-\r
-               private void ImportPrivateKey (X509Certificate certificate, CspParameters cspParams)\r
-               {\r
-                       RSACryptoServiceProvider rsaCsp = certificate.RSA as RSACryptoServiceProvider;\r
-                       if (rsaCsp != null) {\r
-                               if (rsaCsp.PublicOnly)\r
-                                       return;\r
-\r
-                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);\r
-                               csp.ImportParameters(rsaCsp.ExportParameters(true));\r
-                               csp.PersistKeyInCsp = true;\r
-                               return;\r
-                       }\r
-\r
-                       RSAManaged rsaMng = certificate.RSA as RSAManaged;\r
-                       if (rsaMng != null) {\r
-                               if (rsaMng.PublicOnly)\r
-                                       return;\r
-\r
-                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);\r
-                               csp.ImportParameters(rsaMng.ExportParameters(true));\r
-                               csp.PersistKeyInCsp = true;\r
-                               return;\r
-                       }\r
-\r
-                       DSACryptoServiceProvider dsaCsp = certificate.DSA as DSACryptoServiceProvider;\r
-                       if (dsaCsp != null) {\r
-                               if (dsaCsp.PublicOnly)\r
-                                       return;\r
-\r
-                               DSACryptoServiceProvider csp = new DSACryptoServiceProvider(cspParams);\r
-                               csp.ImportParameters(dsaCsp.ExportParameters(true));\r
-                               csp.PersistKeyInCsp = true;\r
-                       }\r
                }
+#if !INSIDE_CORLIB
+               private void ImportPrivateKey (X509Certificate certificate, CspParameters cspParams)
+               {
+                       RSACryptoServiceProvider rsaCsp = certificate.RSA as RSACryptoServiceProvider;
+                       if (rsaCsp != null) {
+                               if (rsaCsp.PublicOnly)
+                                       return;
+
+                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);
+                               csp.ImportParameters(rsaCsp.ExportParameters(true));
+                               csp.PersistKeyInCsp = true;
+                               return;
+                       }
+
+                       RSAManaged rsaMng = certificate.RSA as RSAManaged;
+                       if (rsaMng != null) {
+                               if (rsaMng.PublicOnly)
+                                       return;
+
+                               RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cspParams);
+                               csp.ImportParameters(rsaMng.ExportParameters(true));
+                               csp.PersistKeyInCsp = true;
+                               return;
+                       }
+
+                       DSACryptoServiceProvider dsaCsp = certificate.DSA as DSACryptoServiceProvider;
+                       if (dsaCsp != null) {
+                               if (dsaCsp.PublicOnly)
+                                       return;
+
+                               DSACryptoServiceProvider csp = new DSACryptoServiceProvider(cspParams);
+                               csp.ImportParameters(dsaCsp.ExportParameters(true));
+                               csp.PersistKeyInCsp = true;
+                       }
+               }
+#endif
        }
 }