- }
-
-#if NET_2_0
- public string Issuer {
- get { return x509.IssuerName; }
- }
-
- public string Subject {
- get { return x509.SubjectName; }
- }
-
- [ComVisible (false)]
- public override bool Equals (object obj)
- {
- X509Certificate x = (obj as X509Certificate);
- if (x != null)
- return this.Equals (x);
- return false;
- }
-
- [MonoTODO ("incomplete")]
- [ComVisible (false)]
- public virtual byte[] Export (X509ContentType contentType)
- {
- return Export (contentType, (byte[])null);
- }
-
- [MonoTODO ("incomplete")]
- [ComVisible (false)]
- public virtual byte[] Export (X509ContentType contentType, string password)
- {
- return Export (contentType, Encoding.UTF8.GetBytes (password));
- }
-
- [MonoTODO ("incomplete")]
- public virtual byte[] Export (X509ContentType contentType, SecureString password)
- {
- return Export (contentType, password.GetBuffer ());
- }
-
- [MonoTODO ("export!")]
- internal byte[] Export (X509ContentType contentType, byte[] password)
- {
- try {
- switch (contentType) {
- case X509ContentType.Cert:
- return x509.RawData;
- default:
- throw new NotSupportedException ();
- }
- }
- finally {
- // protect password
- if (password != null)
- Array.Clear (password, 0, password.Length);
- }
- }
-
- [MonoTODO]
- void IDeserializationCallback.OnDeserialization (object sender)
- {
- }
-
- [ComVisible (false)]
- public virtual void Import (byte[] rawData)
- {
- Import (rawData, (string)null, X509KeyStorageFlags.DefaultKeySet);
- }
-
- [MonoTODO ("missing KeyStorageFlags support")]
- [ComVisible (false)]
- public virtual void Import (byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
- {
- if (password == null) {
- x509 = new Mono.Security.X509.X509Certificate (rawData);
- // TODO - PKCS12 without password
- } else {
- // try PKCS#12
- try {
- PKCS12 pfx = new PKCS12 (rawData, password);
- if (pfx.Certificates.Count > 0) {
- x509 = pfx.Certificates [0];
- } else {
- x509 = null;
- }
- }
- catch {
- // it's possible to supply a (unrequired/unusued) password
- // fix bug #79028
- x509 = new Mono.Security.X509.X509Certificate (rawData);
- }
- }
- }
-
- [MonoTODO ("SecureString is incomplete")]
- public virtual void Import (byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags)
- {
- Import (rawData, (string)null, keyStorageFlags);
- }
-
- [ComVisible (false)]
- public virtual void Import (string fileName)
- {
- byte[] rawData = Load (fileName);
- Import (rawData, (string)null, X509KeyStorageFlags.DefaultKeySet);
- }
-
- [MonoTODO ("missing KeyStorageFlags support")]
- [ComVisible (false)]
- public virtual void Import (string fileName, string password, X509KeyStorageFlags keyStorageFlags)
- {
- byte[] rawData = Load (fileName);
- Import (rawData, password, keyStorageFlags);
- }
-
- [MonoTODO ("SecureString is incomplete")]
- public virtual void Import (string fileName, SecureString password, X509KeyStorageFlags keyStorageFlags)
- {
- byte[] rawData = Load (fileName);
- Import (rawData, (string)null, keyStorageFlags);
- }