# System.Security.Cryptography.X509Certificates

``` diff
 namespace System.Security.Cryptography.X509Certificates {
     public sealed class PublicKey {
+        public DSA GetDSAPublicKey();
+        public ECDiffieHellman GetECDiffieHellmanPublicKey();
+        public ECDsa GetECDsaPublicKey();
+        public RSA GetRSAPublicKey();
     }
-    public class X509Certificate2Collection : X509CertificateCollection {
+    public class X509Certificate2Collection : X509CertificateCollection, IEnumerable, IEnumerable<X509Certificate2> {
+        IEnumerator<X509Certificate2> System.Collections.Generic.IEnumerable<System.Security.Cryptography.X509Certificates.X509Certificate2>.GetEnumerator();
     }
-    public sealed class X509Certificate2Enumerator : IEnumerator {
+    public sealed class X509Certificate2Enumerator : IDisposable, IEnumerator, IEnumerator<X509Certificate2> {
+        void System.IDisposable.Dispose();
     }
-    public sealed class X509ChainElementCollection : ICollection, IEnumerable {
+    public sealed class X509ChainElementCollection : ICollection, IEnumerable, IEnumerable<X509ChainElement> {
+        IEnumerator<X509ChainElement> System.Collections.Generic.IEnumerable<System.Security.Cryptography.X509Certificates.X509ChainElement>.GetEnumerator();
     }
-    public sealed class X509ChainElementEnumerator : IEnumerator {
+    public sealed class X509ChainElementEnumerator : IDisposable, IEnumerator, IEnumerator<X509ChainElement> {
+        void System.IDisposable.Dispose();
     }
-    public sealed class X509ExtensionCollection : ICollection, IEnumerable {
+    public sealed class X509ExtensionCollection : ICollection, IEnumerable, IEnumerable<X509Extension> {
+        IEnumerator<X509Extension> System.Collections.Generic.IEnumerable<System.Security.Cryptography.X509Certificates.X509Extension>.GetEnumerator();
     }
-    public sealed class X509ExtensionEnumerator : IEnumerator {
+    public sealed class X509ExtensionEnumerator : IDisposable, IEnumerator, IEnumerator<X509Extension> {
+        void System.IDisposable.Dispose();
     }
 }
```

