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;
#else
public
#endif
- class X509Store {\r
-\r
+ class X509Store {
+
private string _storePath;
private X509CertificateCollection _certificates;
private ArrayList _crls;
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)
fs.Write (data, 0, data.Length);
}
}
- }\r
+ }
public void Remove (X509Certificate certificate)
{
sb.Append (fileExtension);
return sb.ToString ();
- }\r
+ }
private byte[] Load (string filename)
{
{
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;
}
}
}
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
}
}
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;
#else
public
#endif
- class X509Store {\r
-\r
+ class X509Store {
+
private string _storePath;
private X509CertificateCollection _certificates;
private ArrayList _crls;
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)
fs.Write (data, 0, data.Length);
}
}
- }\r
+ }
public void Remove (X509Certificate certificate)
{
sb.Append (fileExtension);
return sb.ToString ();
- }\r
+ }
private byte[] Load (string filename)
{
{
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;
}
}
}
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
}
}