summary refs log tree commit diff
path: root/crypto/src/asn1/x509/ExtendedKeyUsage.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/x509/ExtendedKeyUsage.cs')
-rw-r--r--crypto/src/asn1/x509/ExtendedKeyUsage.cs30
1 files changed, 13 insertions, 17 deletions
diff --git a/crypto/src/asn1/x509/ExtendedKeyUsage.cs b/crypto/src/asn1/x509/ExtendedKeyUsage.cs
index 1e7d4d642..f812c308d 100644
--- a/crypto/src/asn1/x509/ExtendedKeyUsage.cs
+++ b/crypto/src/asn1/x509/ExtendedKeyUsage.cs
@@ -1,5 +1,5 @@
 using System;
-using System.Collections;
+using System.Collections.Generic;
 
 using Org.BouncyCastle.Utilities;
 
@@ -38,11 +38,10 @@ namespace Org.BouncyCastle.Asn1.X509
             return GetInstance(X509Extensions.GetExtensionParsedValue(extensions, X509Extensions.ExtendedKeyUsage));
         }
 
-        internal readonly IDictionary usageTable = Platform.CreateHashtable();
+        internal readonly ISet<DerObjectIdentifier> m_usageTable = new HashSet<DerObjectIdentifier>();
         internal readonly Asn1Sequence seq;
 
-        private ExtendedKeyUsage(
-            Asn1Sequence seq)
+        private ExtendedKeyUsage(Asn1Sequence seq)
         {
             this.seq = seq;
 
@@ -50,23 +49,21 @@ namespace Org.BouncyCastle.Asn1.X509
             {
                 DerObjectIdentifier oid = DerObjectIdentifier.GetInstance(element);
 
-                this.usageTable[oid] = oid;
+                m_usageTable.Add(oid);
             }
         }
 
-        public ExtendedKeyUsage(
-            params KeyPurposeID[] usages)
+        public ExtendedKeyUsage(params KeyPurposeID[] usages)
         {
             this.seq = new DerSequence(usages);
 
             foreach (KeyPurposeID usage in usages)
             {
-                this.usageTable[usage] = usage;
+                m_usageTable.Add(usage);
             }
         }
 
-        public ExtendedKeyUsage(
-            IEnumerable usages)
+        public ExtendedKeyUsage(IEnumerable<DerObjectIdentifier> usages)
         {
             Asn1EncodableVector v = new Asn1EncodableVector();
 
@@ -75,16 +72,15 @@ namespace Org.BouncyCastle.Asn1.X509
                 DerObjectIdentifier oid = DerObjectIdentifier.GetInstance(usage);
 
                 v.Add(oid);
-                this.usageTable[oid] = oid;
+                m_usageTable.Add(oid);
             }
 
             this.seq = new DerSequence(v);
         }
 
-        public bool HasKeyPurposeId(
-            KeyPurposeID keyPurposeId)
+        public bool HasKeyPurposeId(KeyPurposeID keyPurposeId)
         {
-            return usageTable.Contains(keyPurposeId);
+            return m_usageTable.Contains(keyPurposeId);
         }
 
         /**
@@ -92,14 +88,14 @@ namespace Org.BouncyCastle.Asn1.X509
          * The returned ArrayList contains DerObjectIdentifier instances.
          * @return An ArrayList with all key purposes.
          */
-        public IList GetAllUsages()
+        public IList<DerObjectIdentifier> GetAllUsages()
         {
-            return Platform.CreateArrayList(usageTable.Values);
+            return new List<DerObjectIdentifier>(m_usageTable);
         }
 
         public int Count
         {
-            get { return usageTable.Count; }
+            get { return m_usageTable.Count; }
         }
 
         public override Asn1Object ToAsn1Object()