diff --git a/crypto/src/asn1/Asn1EncodableVector.cs b/crypto/src/asn1/Asn1EncodableVector.cs
index 7560968b6..b4249b7c0 100644
--- a/crypto/src/asn1/Asn1EncodableVector.cs
+++ b/crypto/src/asn1/Asn1EncodableVector.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.Collections.Generic;
namespace Org.BouncyCastle.Asn1
@@ -141,7 +140,7 @@ namespace Org.BouncyCastle.Asn1
get { return elementCount; }
}
- IEnumerator IEnumerable.GetEnumerator()
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
diff --git a/crypto/src/asn1/Asn1Sequence.cs b/crypto/src/asn1/Asn1Sequence.cs
index fea5a6984..d164b32f1 100644
--- a/crypto/src/asn1/Asn1Sequence.cs
+++ b/crypto/src/asn1/Asn1Sequence.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.Collections.Generic;
using System.IO;
@@ -113,7 +112,7 @@ namespace Org.BouncyCastle.Asn1
this.elements = elementVector.TakeElements();
}
- IEnumerator IEnumerable.GetEnumerator()
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
diff --git a/crypto/src/asn1/Asn1Set.cs b/crypto/src/asn1/Asn1Set.cs
index f9bfd21c3..1045b7f74 100644
--- a/crypto/src/asn1/Asn1Set.cs
+++ b/crypto/src/asn1/Asn1Set.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
@@ -136,7 +135,7 @@ namespace Org.BouncyCastle.Asn1
this.isSorted = isSorted || elements.Length < 2;
}
- IEnumerator IEnumerable.GetEnumerator()
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
diff --git a/crypto/src/asn1/LazyDLEnumerator.cs b/crypto/src/asn1/LazyDLEnumerator.cs
index 5e1be8228..b71cb49e9 100644
--- a/crypto/src/asn1/LazyDLEnumerator.cs
+++ b/crypto/src/asn1/LazyDLEnumerator.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.Collections.Generic;
using System.IO;
@@ -20,7 +19,7 @@ namespace Org.BouncyCastle.Asn1
Reset();
}
- object IEnumerator.Current
+ object System.Collections.IEnumerator.Current
{
get { return Current; }
}
diff --git a/crypto/src/asn1/cms/AttributeTable.cs b/crypto/src/asn1/cms/AttributeTable.cs
index e20e6e9b2..aa312a13f 100644
--- a/crypto/src/asn1/cms/AttributeTable.cs
+++ b/crypto/src/asn1/cms/AttributeTable.cs
@@ -1,5 +1,5 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Utilities;
@@ -7,76 +7,64 @@ namespace Org.BouncyCastle.Asn1.Cms
{
public class AttributeTable
{
- private readonly IDictionary attributes;
+ private readonly Dictionary<DerObjectIdentifier, object> m_attributes;
- public AttributeTable(
- IDictionary attrs)
+ public AttributeTable(IDictionary<DerObjectIdentifier, object> attrs)
{
- this.attributes = Platform.CreateHashtable(attrs);
+ m_attributes = new Dictionary<DerObjectIdentifier, object>(attrs);
}
- public AttributeTable(
- Asn1EncodableVector v)
+ public AttributeTable(Asn1EncodableVector v)
{
- this.attributes = Platform.CreateHashtable(v.Count);
+ m_attributes = new Dictionary<DerObjectIdentifier, object>(v.Count);
- foreach (Asn1Encodable o in v)
+ foreach (Asn1Encodable e in v)
{
- Attribute a = Attribute.GetInstance(o);
-
- AddAttribute(a);
+ AddAttribute(Attribute.GetInstance(e));
}
}
- public AttributeTable(
- Asn1Set s)
+ public AttributeTable(Asn1Set s)
{
- this.attributes = Platform.CreateHashtable(s.Count);
+ m_attributes = new Dictionary<DerObjectIdentifier, object>(s.Count);
- for (int i = 0; i != s.Count; i++)
+ foreach (Asn1Encodable e in s)
{
- Attribute a = Attribute.GetInstance(s[i]);
-
- AddAttribute(a);
+ AddAttribute(Attribute.GetInstance(e));
}
}
- public AttributeTable(
- Attributes attrs)
+ public AttributeTable(Attributes attrs)
: this(Asn1Set.GetInstance(attrs.ToAsn1Object()))
{
}
- private void AddAttribute(
- Attribute a)
+ private void AddAttribute(Attribute a)
{
DerObjectIdentifier oid = a.AttrType;
- object obj = attributes[oid];
- if (obj == null)
+ if (!m_attributes.TryGetValue(oid, out object existingValue))
{
- attributes[oid] = a;
+ m_attributes[oid] = a;
+ return;
}
- else
- {
- IList v;
-
- if (obj is Attribute)
- {
- v = Platform.CreateArrayList();
- v.Add(obj);
- v.Add(a);
- }
- else
- {
- v = (IList) obj;
-
- v.Add(a);
- }
+ if (existingValue is IList<Attribute> existingList)
+ {
+ existingList.Add(a);
+ return;
+ }
- attributes[oid] = v;
+ if (existingValue is Attribute existingAttr)
+ {
+ var newList = new List<Attribute>();
+ newList.Add(existingAttr);
+ newList.Add(a);
+ m_attributes[oid] = newList;
+ return;
}
+
+ throw new InvalidOperationException();
}
/// <summary>Return the first attribute matching the given OBJECT IDENTIFIER</summary>
@@ -84,16 +72,18 @@ namespace Org.BouncyCastle.Asn1.Cms
{
get
{
- object obj = attributes[oid];
+ if (!m_attributes.TryGetValue(oid, out object existingValue))
+ return null;
- if (obj is IList)
- {
- return (Attribute)((IList)obj)[0];
- }
+ if (existingValue is IList<Attribute> existingList)
+ return existingList[0];
- return (Attribute) obj;
- }
- }
+ if (existingValue is Attribute existingAttr)
+ return existingAttr;
+
+ throw new InvalidOperationException();
+ }
+ }
/**
* Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
@@ -102,26 +92,30 @@ namespace Org.BouncyCastle.Asn1.Cms
* @param oid type of attribute required.
* @return a vector of all the attributes found of type oid.
*/
- public Asn1EncodableVector GetAll(
- DerObjectIdentifier oid)
+ public Asn1EncodableVector GetAll(DerObjectIdentifier oid)
{
Asn1EncodableVector v = new Asn1EncodableVector();
- object obj = attributes[oid];
-
- if (obj is IList)
+ if (m_attributes.TryGetValue(oid, out object existingValue))
{
- foreach (Attribute a in (IList)obj)
+ if (existingValue is IList<Attribute> existingList)
{
- v.Add(a);
+ foreach (var attr in existingList)
+ {
+ v.Add(attr);
+ }
+ }
+ else if (existingValue is Attribute existingAttr)
+ {
+ v.Add(existingAttr);
+ }
+ else
+ {
+ throw new InvalidOperationException();
}
- }
- else if (obj != null)
- {
- v.Add((Attribute) obj);
}
- return v;
+ return v;
}
public int Count
@@ -130,52 +124,60 @@ namespace Org.BouncyCastle.Asn1.Cms
{
int total = 0;
- foreach (object o in attributes.Values)
- {
- if (o is IList)
- {
- total += ((IList)o).Count;
- }
- else
- {
- ++total;
- }
- }
+ foreach (object existingValue in m_attributes.Values)
+ {
+ if (existingValue is IList<Attribute> existingList)
+ {
+ total += existingList.Count;
+ }
+ else if (existingValue is Attribute existingAttr)
+ {
+ ++total;
+ }
+ else
+ {
+ throw new InvalidOperationException();
+ }
+ }
return total;
}
}
- public IDictionary ToDictionary()
+ public IDictionary<DerObjectIdentifier, object> ToDictionary()
{
- return Platform.CreateHashtable(attributes);
+ return new Dictionary<DerObjectIdentifier, object>(m_attributes);
}
public Asn1EncodableVector ToAsn1EncodableVector()
{
Asn1EncodableVector v = new Asn1EncodableVector();
- foreach (object obj in attributes.Values)
+ foreach (object existingValue in m_attributes.Values)
{
- if (obj is IList)
+ if (existingValue is IList<Attribute> existingList)
{
- foreach (object el in (IList)obj)
+ foreach (Attribute existingAttr in existingList)
{
- v.Add(Attribute.GetInstance(el));
+ v.Add(existingAttr);
}
}
+ else if (existingValue is Attribute existingAttr)
+ {
+ v.Add(existingAttr);
+ }
else
{
- v.Add(Attribute.GetInstance(obj));
+ throw new InvalidOperationException();
}
}
- return v;
+ return v;
}
public Attributes ToAttributes()
{
- return new Attributes(this.ToAsn1EncodableVector());
+ return new Attributes(ToAsn1EncodableVector());
}
/**
@@ -187,7 +189,7 @@ namespace Org.BouncyCastle.Asn1.Cms
*/
public AttributeTable Add(DerObjectIdentifier attrType, Asn1Encodable attrValue)
{
- AttributeTable newTable = new AttributeTable(attributes);
+ AttributeTable newTable = new AttributeTable(m_attributes);
newTable.AddAttribute(new Attribute(attrType, new DerSet(attrValue)));
@@ -196,9 +198,9 @@ namespace Org.BouncyCastle.Asn1.Cms
public AttributeTable Remove(DerObjectIdentifier attrType)
{
- AttributeTable newTable = new AttributeTable(attributes);
+ AttributeTable newTable = new AttributeTable(m_attributes);
- newTable.attributes.Remove(attrType);
+ newTable.m_attributes.Remove(attrType);
return newTable;
}
diff --git a/crypto/src/asn1/cms/ContentInfo.cs b/crypto/src/asn1/cms/ContentInfo.cs
index f130a4bc7..847df6dd8 100644
--- a/crypto/src/asn1/cms/ContentInfo.cs
+++ b/crypto/src/asn1/cms/ContentInfo.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Utilities;
diff --git a/crypto/src/asn1/cms/SignedData.cs b/crypto/src/asn1/cms/SignedData.cs
index 1e97346e6..789f8bd72 100644
--- a/crypto/src/asn1/cms/SignedData.cs
+++ b/crypto/src/asn1/cms/SignedData.cs
@@ -1,7 +1,4 @@
using System;
-using System.Collections;
-
-using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1.Cms
{
@@ -140,8 +137,7 @@ namespace Org.BouncyCastle.Asn1.Cms
return Version1;
}
- private bool CheckForVersion3(
- Asn1Set signerInfs)
+ private bool CheckForVersion3(Asn1Set signerInfs)
{
foreach (object obj in signerInfs)
{
@@ -156,45 +152,42 @@ namespace Org.BouncyCastle.Asn1.Cms
return false;
}
- private SignedData(
- Asn1Sequence seq)
+ private SignedData(Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
version = (DerInteger)e.Current;
e.MoveNext();
- digestAlgorithms = ((Asn1Set)e.Current);
+ digestAlgorithms = (Asn1Set)e.Current.ToAsn1Object();
e.MoveNext();
- contentInfo = ContentInfo.GetInstance(e.Current);
+ contentInfo = ContentInfo.GetInstance(e.Current.ToAsn1Object());
while (e.MoveNext())
{
- Asn1Object o = (Asn1Object)e.Current;
+ Asn1Object o = e.Current.ToAsn1Object();
//
// an interesting feature of SignedData is that there appear
// to be varying implementations...
// for the moment we ignore anything which doesn't fit.
//
- if (o is Asn1TaggedObject)
+ if (o is Asn1TaggedObject tagged)
{
- Asn1TaggedObject tagged = (Asn1TaggedObject)o;
-
switch (tagged.TagNo)
{
- case 0:
- certsBer = tagged is BerTaggedObject;
- certificates = Asn1Set.GetInstance(tagged, false);
- break;
- case 1:
- crlsBer = tagged is BerTaggedObject;
- crls = Asn1Set.GetInstance(tagged, false);
- break;
- default:
- throw new ArgumentException("unknown tag value " + tagged.TagNo);
+ case 0:
+ certsBer = tagged is BerTaggedObject;
+ certificates = Asn1Set.GetInstance(tagged, false);
+ break;
+ case 1:
+ crlsBer = tagged is BerTaggedObject;
+ crls = Asn1Set.GetInstance(tagged, false);
+ break;
+ default:
+ throw new ArgumentException("unknown tag value " + tagged.TagNo);
}
}
else
diff --git a/crypto/src/asn1/cms/SignerInfo.cs b/crypto/src/asn1/cms/SignerInfo.cs
index 82ed04082..dbd0125c4 100644
--- a/crypto/src/asn1/cms/SignerInfo.cs
+++ b/crypto/src/asn1/cms/SignerInfo.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Utilities;
@@ -17,8 +16,7 @@ namespace Org.BouncyCastle.Asn1.Cms
private Asn1OctetString encryptedDigest;
private Asn1Set unauthenticatedAttributes;
- public static SignerInfo GetInstance(
- object obj)
+ public static SignerInfo GetInstance(object obj)
{
if (obj == null || obj is SignerInfo)
return (SignerInfo) obj;
@@ -65,26 +63,26 @@ namespace Org.BouncyCastle.Asn1.Cms
private SignerInfo(Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
- version = (DerInteger) e.Current;
+ version = (DerInteger)e.Current;
e.MoveNext();
- sid = SignerIdentifier.GetInstance(e.Current);
+ sid = SignerIdentifier.GetInstance(e.Current.ToAsn1Object());
e.MoveNext();
- digAlgorithm = AlgorithmIdentifier.GetInstance(e.Current);
+ digAlgorithm = AlgorithmIdentifier.GetInstance(e.Current.ToAsn1Object());
e.MoveNext();
- object obj = e.Current;
+ var obj = e.Current.ToAsn1Object();
- if (obj is Asn1TaggedObject)
+ if (obj is Asn1TaggedObject tagged)
{
- authenticatedAttributes = Asn1Set.GetInstance((Asn1TaggedObject) obj, false);
+ authenticatedAttributes = Asn1Set.GetInstance(tagged, false);
e.MoveNext();
- digEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(e.Current);
+ digEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(e.Current.ToAsn1Object());
}
else
{
@@ -93,11 +91,11 @@ namespace Org.BouncyCastle.Asn1.Cms
}
e.MoveNext();
- encryptedDigest = DerOctetString.GetInstance(e.Current);
+ encryptedDigest = Asn1OctetString.GetInstance(e.Current.ToAsn1Object());
if (e.MoveNext())
{
- unauthenticatedAttributes = Asn1Set.GetInstance((Asn1TaggedObject) e.Current, false);
+ unauthenticatedAttributes = Asn1Set.GetInstance((Asn1TaggedObject)e.Current.ToAsn1Object(), false);
}
else
{
diff --git a/crypto/src/asn1/cryptopro/ECGOST3410ParamSetParameters.cs b/crypto/src/asn1/cryptopro/ECGOST3410ParamSetParameters.cs
index 8e568a229..87df3c4a9 100644
--- a/crypto/src/asn1/cryptopro/ECGOST3410ParamSetParameters.cs
+++ b/crypto/src/asn1/cryptopro/ECGOST3410ParamSetParameters.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
@@ -11,25 +10,20 @@ namespace Org.BouncyCastle.Asn1.CryptoPro
{
internal readonly DerInteger p, q, a, b, x, y;
- public static ECGost3410ParamSetParameters GetInstance(
- Asn1TaggedObject obj,
- bool explicitly)
+ public static ECGost3410ParamSetParameters GetInstance(Asn1TaggedObject obj, bool explicitly)
{
return GetInstance(Asn1Sequence.GetInstance(obj, explicitly));
}
- public static ECGost3410ParamSetParameters GetInstance(
- object obj)
+ public static ECGost3410ParamSetParameters GetInstance(object obj)
{
if (obj == null || obj is ECGost3410ParamSetParameters)
{
return (ECGost3410ParamSetParameters) obj;
}
- if (obj is Asn1Sequence)
- {
- return new ECGost3410ParamSetParameters((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new ECGost3410ParamSetParameters(seq);
throw new ArgumentException("Invalid GOST3410Parameter: " + Platform.GetTypeName(obj));
}
diff --git a/crypto/src/asn1/cryptopro/GOST28147Parameters.cs b/crypto/src/asn1/cryptopro/GOST28147Parameters.cs
index fc0d792d1..9167cd4b5 100644
--- a/crypto/src/asn1/cryptopro/GOST28147Parameters.cs
+++ b/crypto/src/asn1/cryptopro/GOST28147Parameters.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Utilities;
@@ -11,31 +10,23 @@ namespace Org.BouncyCastle.Asn1.CryptoPro
private readonly Asn1OctetString iv;
private readonly DerObjectIdentifier paramSet;
- public static Gost28147Parameters GetInstance(
- Asn1TaggedObject obj,
- bool explicitly)
+ public static Gost28147Parameters GetInstance(Asn1TaggedObject obj, bool explicitly)
{
return GetInstance(Asn1Sequence.GetInstance(obj, explicitly));
}
- public static Gost28147Parameters GetInstance(
- object obj)
+ public static Gost28147Parameters GetInstance(object obj)
{
if (obj == null || obj is Gost28147Parameters)
- {
return (Gost28147Parameters) obj;
- }
- if (obj is Asn1Sequence)
- {
- return new Gost28147Parameters((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new Gost28147Parameters(seq);
throw new ArgumentException("Invalid GOST3410Parameter: " + Platform.GetTypeName(obj));
}
- private Gost28147Parameters(
- Asn1Sequence seq)
+ private Gost28147Parameters(Asn1Sequence seq)
{
if (seq.Count != 2)
throw new ArgumentException("Wrong number of elements in sequence", "seq");
diff --git a/crypto/src/asn1/cryptopro/GOST3410ParamSetParameters.cs b/crypto/src/asn1/cryptopro/GOST3410ParamSetParameters.cs
index ee6ed8c99..c82e4248a 100644
--- a/crypto/src/asn1/cryptopro/GOST3410ParamSetParameters.cs
+++ b/crypto/src/asn1/cryptopro/GOST3410ParamSetParameters.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
@@ -12,25 +11,18 @@ namespace Org.BouncyCastle.Asn1.CryptoPro
private readonly int keySize;
private readonly DerInteger p, q, a;
- public static Gost3410ParamSetParameters GetInstance(
- Asn1TaggedObject obj,
- bool explicitly)
+ public static Gost3410ParamSetParameters GetInstance(Asn1TaggedObject obj, bool explicitly)
{
return GetInstance(Asn1Sequence.GetInstance(obj, explicitly));
}
- public static Gost3410ParamSetParameters GetInstance(
- object obj)
+ public static Gost3410ParamSetParameters GetInstance(object obj)
{
if (obj == null || obj is Gost3410ParamSetParameters)
- {
return (Gost3410ParamSetParameters) obj;
- }
- if (obj is Asn1Sequence)
- {
- return new Gost3410ParamSetParameters((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new Gost3410ParamSetParameters(seq);
throw new ArgumentException("Invalid GOST3410Parameter: " + Platform.GetTypeName(obj));
}
diff --git a/crypto/src/asn1/esf/SignerLocation.cs b/crypto/src/asn1/esf/SignerLocation.cs
index 4c82d09fd..0e87812be 100644
--- a/crypto/src/asn1/esf/SignerLocation.cs
+++ b/crypto/src/asn1/esf/SignerLocation.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X500;
@@ -24,27 +23,26 @@ namespace Org.BouncyCastle.Asn1.Esf
private DirectoryString localityName;
private Asn1Sequence postalAddress;
- public SignerLocation(
- Asn1Sequence seq)
+ public SignerLocation(Asn1Sequence seq)
{
foreach (Asn1TaggedObject obj in seq)
{
switch (obj.TagNo)
{
- case 0:
- this.countryName = DirectoryString.GetInstance(obj, true);
- break;
- case 1:
- this.localityName = DirectoryString.GetInstance(obj, true);
- break;
- case 2:
- bool isExplicit = obj.IsExplicit(); // handle erroneous implicitly tagged sequences
- this.postalAddress = Asn1Sequence.GetInstance(obj, isExplicit);
- if (postalAddress != null && postalAddress.Count > 6)
- throw new ArgumentException("postal address must contain less than 6 strings");
- break;
- default:
- throw new ArgumentException("illegal tag");
+ case 0:
+ this.countryName = DirectoryString.GetInstance(obj, true);
+ break;
+ case 1:
+ this.localityName = DirectoryString.GetInstance(obj, true);
+ break;
+ case 2:
+ bool isExplicit = obj.IsExplicit(); // handle erroneous implicitly tagged sequences
+ this.postalAddress = Asn1Sequence.GetInstance(obj, isExplicit);
+ if (postalAddress != null && postalAddress.Count > 6)
+ throw new ArgumentException("postal address must contain less than 6 strings");
+ break;
+ default:
+ throw new ArgumentException("illegal tag");
}
}
}
@@ -78,13 +76,10 @@ namespace Org.BouncyCastle.Asn1.Esf
{
}
- public static SignerLocation GetInstance(
- object obj)
+ public static SignerLocation GetInstance(object obj)
{
if (obj == null || obj is SignerLocation)
- {
return (SignerLocation) obj;
- }
return new SignerLocation(Asn1Sequence.GetInstance(obj));
}
diff --git a/crypto/src/asn1/icao/DataGroupHash.cs b/crypto/src/asn1/icao/DataGroupHash.cs
index bf83718f3..c4a674152 100644
--- a/crypto/src/asn1/icao/DataGroupHash.cs
+++ b/crypto/src/asn1/icao/DataGroupHash.cs
@@ -1,7 +1,4 @@
using System;
-using System.Collections;
-
-using Org.BouncyCastle.Asn1;
namespace Org.BouncyCastle.Asn1.Icao
{
@@ -38,8 +35,7 @@ namespace Org.BouncyCastle.Asn1.Icao
private readonly DerInteger dataGroupNumber;
private readonly Asn1OctetString dataGroupHashValue;
- public static DataGroupHash GetInstance(
- object obj)
+ public static DataGroupHash GetInstance(object obj)
{
if (obj is DataGroupHash)
return (DataGroupHash)obj;
@@ -50,8 +46,7 @@ namespace Org.BouncyCastle.Asn1.Icao
return null;
}
- private DataGroupHash(
- Asn1Sequence seq)
+ private DataGroupHash(Asn1Sequence seq)
{
if (seq.Count != 2)
throw new ArgumentException("Wrong number of elements in sequence", "seq");
diff --git a/crypto/src/asn1/icao/LDSSecurityObject.cs b/crypto/src/asn1/icao/LDSSecurityObject.cs
index 5d7331a4f..c379d76bb 100644
--- a/crypto/src/asn1/icao/LDSSecurityObject.cs
+++ b/crypto/src/asn1/icao/LDSSecurityObject.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Math;
@@ -31,8 +30,7 @@ namespace Org.BouncyCastle.Asn1.Icao
private DataGroupHash[] datagroupHash;
private LdsVersionInfo versionInfo;
- public static LdsSecurityObject GetInstance(
- object obj)
+ public static LdsSecurityObject GetInstance(object obj)
{
if (obj is LdsSecurityObject)
return (LdsSecurityObject)obj;
@@ -43,13 +41,12 @@ namespace Org.BouncyCastle.Asn1.Icao
return null;
}
- private LdsSecurityObject(
- Asn1Sequence seq)
+ private LdsSecurityObject(Asn1Sequence seq)
{
if (seq == null || seq.Count == 0)
throw new ArgumentException("null or empty sequence passed.");
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
// version
e.MoveNext();
diff --git a/crypto/src/asn1/isismtt/x509/Admissions.cs b/crypto/src/asn1/isismtt/x509/Admissions.cs
index 2aa6764bb..42ebceb1c 100644
--- a/crypto/src/asn1/isismtt/x509/Admissions.cs
+++ b/crypto/src/asn1/isismtt/x509/Admissions.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Utilities;
@@ -30,18 +29,13 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
private readonly NamingAuthority namingAuthority;
private readonly Asn1Sequence professionInfos;
- public static Admissions GetInstance(
- object obj)
+ public static Admissions GetInstance(object obj)
{
if (obj == null || obj is Admissions)
- {
- return (Admissions) obj;
- }
+ return (Admissions)obj;
- if (obj is Asn1Sequence)
- {
- return new Admissions((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new Admissions(seq);
throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj");
}
@@ -62,44 +56,43 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
*
* @param seq The ASN.1 sequence.
*/
- private Admissions(
- Asn1Sequence seq)
+ private Admissions(Asn1Sequence seq)
{
if (seq.Count > 3)
throw new ArgumentException("Bad sequence size: " + seq.Count);
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
- Asn1Encodable o = (Asn1Encodable) e.Current;
- if (o is Asn1TaggedObject)
+ Asn1Encodable o = e.Current;
+ if (o is Asn1TaggedObject tagged1)
{
- switch (((Asn1TaggedObject)o).TagNo)
+ switch (tagged1.TagNo)
{
- case 0:
- admissionAuthority = GeneralName.GetInstance((Asn1TaggedObject)o, true);
- break;
- case 1:
- namingAuthority = NamingAuthority.GetInstance((Asn1TaggedObject)o, true);
- break;
- default:
- throw new ArgumentException("Bad tag number: " + ((Asn1TaggedObject)o).TagNo);
+ case 0:
+ admissionAuthority = GeneralName.GetInstance((Asn1TaggedObject)o, true);
+ break;
+ case 1:
+ namingAuthority = NamingAuthority.GetInstance((Asn1TaggedObject)o, true);
+ break;
+ default:
+ throw new ArgumentException("Bad tag number: " + ((Asn1TaggedObject)o).TagNo);
}
e.MoveNext();
- o = (Asn1Encodable) e.Current;
+ o = e.Current;
}
- if (o is Asn1TaggedObject)
+ if (o is Asn1TaggedObject tagged2)
{
- switch (((Asn1TaggedObject)o).TagNo)
+ switch (tagged2.TagNo)
{
- case 1:
- namingAuthority = NamingAuthority.GetInstance((Asn1TaggedObject)o, true);
- break;
- default:
- throw new ArgumentException("Bad tag number: " + ((Asn1TaggedObject)o).TagNo);
+ case 1:
+ namingAuthority = NamingAuthority.GetInstance((Asn1TaggedObject)o, true);
+ break;
+ default:
+ throw new ArgumentException("Bad tag number: " + ((Asn1TaggedObject)o).TagNo);
}
e.MoveNext();
- o = (Asn1Encodable) e.Current;
+ o = e.Current;
}
professionInfos = Asn1Sequence.GetInstance(o);
if (e.MoveNext())
diff --git a/crypto/src/asn1/isismtt/x509/NamingAuthority.cs b/crypto/src/asn1/isismtt/x509/NamingAuthority.cs
index 543dcecc7..78ef25654 100644
--- a/crypto/src/asn1/isismtt/x509/NamingAuthority.cs
+++ b/crypto/src/asn1/isismtt/x509/NamingAuthority.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X500;
using Org.BouncyCastle.Utilities;
@@ -37,25 +36,18 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
private readonly string namingAuthorityUrl;
private readonly DirectoryString namingAuthorityText;
- public static NamingAuthority GetInstance(
- object obj)
+ public static NamingAuthority GetInstance(object obj)
{
if (obj == null || obj is NamingAuthority)
- {
return (NamingAuthority) obj;
- }
- if (obj is Asn1Sequence)
- {
- return new NamingAuthority((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new NamingAuthority(seq);
throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj");
}
- public static NamingAuthority GetInstance(
- Asn1TaggedObject obj,
- bool isExplicit)
+ public static NamingAuthority GetInstance(Asn1TaggedObject obj, bool isExplicit)
{
return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit));
}
@@ -75,24 +67,23 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
*
* @param seq The ASN.1 sequence.
*/
- private NamingAuthority(
- Asn1Sequence seq)
+ private NamingAuthority(Asn1Sequence seq)
{
if (seq.Count > 3)
throw new ArgumentException("Bad sequence size: " + seq.Count);
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
if (e.MoveNext())
{
- Asn1Encodable o = (Asn1Encodable) e.Current;
- if (o is DerObjectIdentifier)
+ Asn1Encodable o = e.Current;
+ if (o is DerObjectIdentifier oid)
{
- namingAuthorityID = (DerObjectIdentifier) o;
+ namingAuthorityID = oid;
}
- else if (o is DerIA5String)
+ else if (o is DerIA5String ia5)
{
- namingAuthorityUrl = DerIA5String.GetInstance(o).GetString();
+ namingAuthorityUrl = ia5.GetString();
}
else if (o is IAsn1String)
{
@@ -106,10 +97,10 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
if (e.MoveNext())
{
- Asn1Encodable o = (Asn1Encodable) e.Current;
- if (o is DerIA5String)
+ Asn1Encodable o = e.Current;
+ if (o is DerIA5String ia5)
{
- namingAuthorityUrl = DerIA5String.GetInstance(o).GetString();
+ namingAuthorityUrl = ia5.GetString();
}
else if (o is IAsn1String)
{
@@ -123,7 +114,7 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
if (e.MoveNext())
{
- Asn1Encodable o = (Asn1Encodable) e.Current;
+ Asn1Encodable o = e.Current;
if (o is IAsn1String)
{
namingAuthorityText = DirectoryString.GetInstance(o);
diff --git a/crypto/src/asn1/isismtt/x509/ProcurationSyntax.cs b/crypto/src/asn1/isismtt/x509/ProcurationSyntax.cs
index 60d3a88e8..23be2d388 100644
--- a/crypto/src/asn1/isismtt/x509/ProcurationSyntax.cs
+++ b/crypto/src/asn1/isismtt/x509/ProcurationSyntax.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X500;
using Org.BouncyCastle.Asn1.X509;
@@ -49,18 +48,13 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
private readonly GeneralName thirdPerson;
private readonly IssuerSerial certRef;
- public static ProcurationSyntax GetInstance(
- object obj)
+ public static ProcurationSyntax GetInstance(object obj)
{
if (obj == null || obj is ProcurationSyntax)
- {
return (ProcurationSyntax) obj;
- }
- if (obj is Asn1Sequence)
- {
- return new ProcurationSyntax((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new ProcurationSyntax(seq);
throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj");
}
@@ -86,38 +80,37 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
*
* @param seq The ASN.1 sequence.
*/
- private ProcurationSyntax(
- Asn1Sequence seq)
+ private ProcurationSyntax(Asn1Sequence seq)
{
if (seq.Count < 1 || seq.Count > 3)
throw new ArgumentException("Bad sequence size: " + seq.Count);
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
while (e.MoveNext())
{
Asn1TaggedObject o = Asn1TaggedObject.GetInstance(e.Current);
switch (o.TagNo)
{
- case 1:
- country = DerPrintableString.GetInstance(o, true).GetString();
- break;
- case 2:
- typeOfSubstitution = DirectoryString.GetInstance(o, true);
- break;
- case 3:
- Asn1Object signingFor = o.GetObject();
- if (signingFor is Asn1TaggedObject)
- {
- thirdPerson = GeneralName.GetInstance(signingFor);
- }
- else
- {
- certRef = IssuerSerial.GetInstance(signingFor);
- }
- break;
- default:
- throw new ArgumentException("Bad tag number: " + o.TagNo);
+ case 1:
+ country = DerPrintableString.GetInstance(o, true).GetString();
+ break;
+ case 2:
+ typeOfSubstitution = DirectoryString.GetInstance(o, true);
+ break;
+ case 3:
+ Asn1Object signingFor = o.GetObject();
+ if (signingFor is Asn1TaggedObject)
+ {
+ thirdPerson = GeneralName.GetInstance(signingFor);
+ }
+ else
+ {
+ certRef = IssuerSerial.GetInstance(signingFor);
+ }
+ break;
+ default:
+ throw new ArgumentException("Bad tag number: " + o.TagNo);
}
}
}
diff --git a/crypto/src/asn1/isismtt/x509/ProfessionInfo.cs b/crypto/src/asn1/isismtt/x509/ProfessionInfo.cs
index b65757c09..daa76730d 100644
--- a/crypto/src/asn1/isismtt/x509/ProfessionInfo.cs
+++ b/crypto/src/asn1/isismtt/x509/ProfessionInfo.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X500;
using Org.BouncyCastle.Utilities;
@@ -145,18 +144,13 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
private readonly string registrationNumber;
private readonly Asn1OctetString addProfessionInfo;
- public static ProfessionInfo GetInstance(
- object obj)
+ public static ProfessionInfo GetInstance(object obj)
{
if (obj == null || obj is ProfessionInfo)
- {
return (ProfessionInfo) obj;
- }
- if (obj is Asn1Sequence)
- {
- return new ProfessionInfo((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new ProfessionInfo(seq);
throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj");
}
@@ -178,44 +172,42 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
*
* @param seq The ASN.1 sequence.
*/
- private ProfessionInfo(
- Asn1Sequence seq)
+ private ProfessionInfo(Asn1Sequence seq)
{
if (seq.Count > 5)
throw new ArgumentException("Bad sequence size: " + seq.Count);
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
- Asn1Encodable o = (Asn1Encodable) e.Current;
+ Asn1Encodable o = e.Current;
- if (o is Asn1TaggedObject)
+ if (o is Asn1TaggedObject ato)
{
- Asn1TaggedObject ato = (Asn1TaggedObject) o;
if (ato.TagNo != 0)
throw new ArgumentException("Bad tag number: " + ato.TagNo);
namingAuthority = NamingAuthority.GetInstance(ato, true);
e.MoveNext();
- o = (Asn1Encodable) e.Current;
+ o = e.Current;
}
professionItems = Asn1Sequence.GetInstance(o);
if (e.MoveNext())
{
- o = (Asn1Encodable) e.Current;
- if (o is Asn1Sequence)
+ o = e.Current;
+ if (o is Asn1Sequence sequence)
{
- professionOids = Asn1Sequence.GetInstance(o);
+ professionOids = sequence;
}
- else if (o is DerPrintableString)
+ else if (o is DerPrintableString printable)
{
- registrationNumber = DerPrintableString.GetInstance(o).GetString();
+ registrationNumber = printable.GetString();
}
- else if (o is Asn1OctetString)
+ else if (o is Asn1OctetString octets)
{
- addProfessionInfo = Asn1OctetString.GetInstance(o);
+ addProfessionInfo = octets;
}
else
{
@@ -225,14 +217,14 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
if (e.MoveNext())
{
- o = (Asn1Encodable) e.Current;
- if (o is DerPrintableString)
+ o = e.Current;
+ if (o is DerPrintableString printable)
{
- registrationNumber = DerPrintableString.GetInstance(o).GetString();
+ registrationNumber = printable.GetString();
}
- else if (o is DerOctetString)
+ else if (o is Asn1OctetString octets)
{
- addProfessionInfo = (DerOctetString) o;
+ addProfessionInfo = octets;
}
else
{
@@ -242,10 +234,10 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
if (e.MoveNext())
{
- o = (Asn1Encodable) e.Current;
- if (o is DerOctetString)
+ o = e.Current;
+ if (o is Asn1OctetString octets)
{
- addProfessionInfo = (DerOctetString) o;
+ addProfessionInfo = octets;
}
else
{
diff --git a/crypto/src/asn1/isismtt/x509/Restriction.cs b/crypto/src/asn1/isismtt/x509/Restriction.cs
index 75df25201..4334d331d 100644
--- a/crypto/src/asn1/isismtt/x509/Restriction.cs
+++ b/crypto/src/asn1/isismtt/x509/Restriction.cs
@@ -17,8 +17,7 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
{
private readonly DirectoryString restriction;
- public static Restriction GetInstance(
- object obj)
+ public static Restriction GetInstance(object obj)
{
if (obj is Restriction)
return (Restriction) obj;
@@ -40,8 +39,7 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
*
* @param restriction A IAsn1String.
*/
- private Restriction(
- DirectoryString restriction)
+ private Restriction(DirectoryString restriction)
{
this.restriction = restriction;
}
@@ -51,8 +49,7 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
*
* @param restriction The description of the restriction.
*/
- public Restriction(
- string restriction)
+ public Restriction(string restriction)
{
this.restriction = new DirectoryString(restriction);
}
diff --git a/crypto/src/asn1/ocsp/CrlID.cs b/crypto/src/asn1/ocsp/CrlID.cs
index 3b3869a7a..fc1e59d22 100644
--- a/crypto/src/asn1/ocsp/CrlID.cs
+++ b/crypto/src/asn1/ocsp/CrlID.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
namespace Org.BouncyCastle.Asn1.Ocsp
{
@@ -10,9 +9,8 @@ namespace Org.BouncyCastle.Asn1.Ocsp
private readonly DerInteger crlNum;
private readonly DerGeneralizedTime crlTime;
- // TODO Add GetInstance method(s) and amke this private?
- public CrlID(
- Asn1Sequence seq)
+ // TODO Add GetInstance method(s) and make this private?
+ public CrlID(Asn1Sequence seq)
{
foreach (Asn1TaggedObject o in seq)
{
diff --git a/crypto/src/asn1/oiw/ElGamalParameter.cs b/crypto/src/asn1/oiw/ElGamalParameter.cs
index 3e020f059..b0a0ce348 100644
--- a/crypto/src/asn1/oiw/ElGamalParameter.cs
+++ b/crypto/src/asn1/oiw/ElGamalParameter.cs
@@ -1,7 +1,5 @@
using System;
-using System.Collections;
-using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Math;
namespace Org.BouncyCastle.Asn1.Oiw
diff --git a/crypto/src/asn1/pkcs/ContentInfo.cs b/crypto/src/asn1/pkcs/ContentInfo.cs
index 526a3c48e..d19b4659c 100644
--- a/crypto/src/asn1/pkcs/ContentInfo.cs
+++ b/crypto/src/asn1/pkcs/ContentInfo.cs
@@ -1,7 +1,4 @@
using System;
-using System.Collections;
-
-using Org.BouncyCastle.Asn1;
namespace Org.BouncyCastle.Asn1.Pkcs
{
diff --git a/crypto/src/asn1/pkcs/DHParameter.cs b/crypto/src/asn1/pkcs/DHParameter.cs
index 23be5d2ab..7a07a18b0 100644
--- a/crypto/src/asn1/pkcs/DHParameter.cs
+++ b/crypto/src/asn1/pkcs/DHParameter.cs
@@ -1,7 +1,3 @@
-using Org.BouncyCastle.Asn1;
-using System;
-using System.Collections;
-
using Org.BouncyCastle.Math;
namespace Org.BouncyCastle.Asn1.Pkcs
@@ -28,7 +24,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
public DHParameter(
Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
p = (DerInteger)e.Current;
diff --git a/crypto/src/asn1/pkcs/EncryptedPrivateKeyInfo.cs b/crypto/src/asn1/pkcs/EncryptedPrivateKeyInfo.cs
index 987027009..5ca612f27 100644
--- a/crypto/src/asn1/pkcs/EncryptedPrivateKeyInfo.cs
+++ b/crypto/src/asn1/pkcs/EncryptedPrivateKeyInfo.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Utilities;
@@ -12,8 +11,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
private readonly AlgorithmIdentifier algId;
private readonly Asn1OctetString data;
- private EncryptedPrivateKeyInfo(
- Asn1Sequence seq)
+ private EncryptedPrivateKeyInfo(Asn1Sequence seq)
{
if (seq.Count != 2)
throw new ArgumentException("Wrong number of elements in sequence", "seq");
@@ -38,10 +36,8 @@ namespace Org.BouncyCastle.Asn1.Pkcs
return (EncryptedPrivateKeyInfo) obj;
}
- if (obj is Asn1Sequence)
- {
- return new EncryptedPrivateKeyInfo((Asn1Sequence) obj);
- }
+ if (obj is Asn1Sequence seq)
+ return new EncryptedPrivateKeyInfo(seq);
throw new ArgumentException("Unknown object in factory: " + Platform.GetTypeName(obj), "obj");
}
diff --git a/crypto/src/asn1/pkcs/PBEParameter.cs b/crypto/src/asn1/pkcs/PBEParameter.cs
index 56cea5fb7..e8e7c5a82 100644
--- a/crypto/src/asn1/pkcs/PBEParameter.cs
+++ b/crypto/src/asn1/pkcs/PBEParameter.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
diff --git a/crypto/src/asn1/pkcs/PrivateKeyInfo.cs b/crypto/src/asn1/pkcs/PrivateKeyInfo.cs
index d52a31f73..8d767c477 100644
--- a/crypto/src/asn1/pkcs/PrivateKeyInfo.cs
+++ b/crypto/src/asn1/pkcs/PrivateKeyInfo.cs
@@ -1,6 +1,4 @@
using System;
-using System.Collections;
-using System.IO;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Math;
@@ -108,7 +106,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
private PrivateKeyInfo(Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
this.version = DerInteger.GetInstance(CollectionUtilities.RequireNext(e));
diff --git a/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs b/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs
index 119ee98de..c445df562 100644
--- a/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs
+++ b/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs
@@ -1,7 +1,5 @@
using System;
-using System.Collections;
-using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Math;
namespace Org.BouncyCastle.Asn1.Pkcs
diff --git a/crypto/src/asn1/pkcs/SignedData.cs b/crypto/src/asn1/pkcs/SignedData.cs
index ae335103c..e309d9245 100644
--- a/crypto/src/asn1/pkcs/SignedData.cs
+++ b/crypto/src/asn1/pkcs/SignedData.cs
@@ -1,7 +1,4 @@
using System;
-using System.Collections;
-
-using Org.BouncyCastle.Asn1;
namespace Org.BouncyCastle.Asn1.Pkcs
{
@@ -47,7 +44,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
private SignedData(
Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
version = (DerInteger) e.Current;
@@ -60,26 +57,24 @@ namespace Org.BouncyCastle.Asn1.Pkcs
while (e.MoveNext())
{
- Asn1Object o = (Asn1Object) e.Current;
+ Asn1Object o = e.Current.ToAsn1Object();
//
// an interesting feature of SignedData is that there appear to be varying implementations...
// for the moment we ignore anything which doesn't fit.
//
- if (o is Asn1TaggedObject)
+ if (o is Asn1TaggedObject tagged)
{
- Asn1TaggedObject tagged = (Asn1TaggedObject)o;
-
switch (tagged.TagNo)
{
- case 0:
- certificates = Asn1Set.GetInstance(tagged, false);
- break;
- case 1:
- crls = Asn1Set.GetInstance(tagged, false);
- break;
- default:
- throw new ArgumentException("unknown tag value " + tagged.TagNo);
+ case 0:
+ certificates = Asn1Set.GetInstance(tagged, false);
+ break;
+ case 1:
+ crls = Asn1Set.GetInstance(tagged, false);
+ break;
+ default:
+ throw new ArgumentException("unknown tag value " + tagged.TagNo);
}
}
else
diff --git a/crypto/src/asn1/pkcs/SignerInfo.cs b/crypto/src/asn1/pkcs/SignerInfo.cs
index c594b45e9..7abd8e5c6 100644
--- a/crypto/src/asn1/pkcs/SignerInfo.cs
+++ b/crypto/src/asn1/pkcs/SignerInfo.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Utilities;
@@ -57,7 +56,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
public SignerInfo(
Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
version = (DerInteger) e.Current;
@@ -69,11 +68,11 @@ namespace Org.BouncyCastle.Asn1.Pkcs
digAlgorithm = AlgorithmIdentifier.GetInstance(e.Current);
e.MoveNext();
- object obj = e.Current;
+ var obj = e.Current;
- if (obj is Asn1TaggedObject)
+ if (obj is Asn1TaggedObject tagged)
{
- authenticatedAttributes = Asn1Set.GetInstance((Asn1TaggedObject) obj, false);
+ authenticatedAttributes = Asn1Set.GetInstance(tagged, false);
e.MoveNext();
digEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(e.Current);
diff --git a/crypto/src/asn1/smime/SMIMECapabilities.cs b/crypto/src/asn1/smime/SMIMECapabilities.cs
index 0bfa05034..0142f0797 100644
--- a/crypto/src/asn1/smime/SMIMECapabilities.cs
+++ b/crypto/src/asn1/smime/SMIMECapabilities.cs
@@ -1,7 +1,6 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
-using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.Nist;
using Org.BouncyCastle.Asn1.Pkcs;
using Org.BouncyCastle.Asn1.X509;
@@ -76,35 +75,22 @@ namespace Org.BouncyCastle.Asn1.Smime
* matching the passed in capability Oid. If the Oid passed is null the
* entire set is returned.
*/
- public IList GetCapabilitiesForOid(
- DerObjectIdentifier capability)
+ public IList<SmimeCapability> GetCapabilitiesForOid(DerObjectIdentifier capability)
{
- IList list = Platform.CreateArrayList();
+ var list = new List<SmimeCapability>();
DoGetCapabilitiesForOid(capability, list);
return list;
}
- private void DoGetCapabilitiesForOid(DerObjectIdentifier capability, IList list)
+ private void DoGetCapabilitiesForOid(DerObjectIdentifier capability, IList<SmimeCapability> list)
{
- if (capability == null)
+ foreach (object o in capabilities)
{
- foreach (object o in capabilities)
- {
- SmimeCapability cap = SmimeCapability.GetInstance(o);
+ SmimeCapability cap = SmimeCapability.GetInstance(o);
- list.Add(cap);
- }
- }
- else
- {
- foreach (object o in capabilities)
- {
- SmimeCapability cap = SmimeCapability.GetInstance(o);
-
- if (capability.Equals(cap.CapabilityID))
- {
- list.Add(cap);
- }
+ if (capability == null || capability.Equals(cap.CapabilityID))
+ {
+ list.Add(cap);
}
}
}
diff --git a/crypto/src/asn1/tsp/TSTInfo.cs b/crypto/src/asn1/tsp/TSTInfo.cs
index 3f5ab28bb..28a840e77 100644
--- a/crypto/src/asn1/tsp/TSTInfo.cs
+++ b/crypto/src/asn1/tsp/TSTInfo.cs
@@ -1,9 +1,6 @@
using System;
-using System.Collections;
-using System.IO;
using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1.Tsp
{
@@ -30,10 +27,9 @@ namespace Org.BouncyCastle.Asn1.Tsp
return new TstInfo(Asn1Sequence.GetInstance(obj));
}
- private TstInfo(
- Asn1Sequence seq)
+ private TstInfo(Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
// version
e.MoveNext();
diff --git a/crypto/src/asn1/x500/style/IetfUtilities.cs b/crypto/src/asn1/x500/style/IetfUtilities.cs
index 53e5fccf4..e269f418d 100644
--- a/crypto/src/asn1/x500/style/IetfUtilities.cs
+++ b/crypto/src/asn1/x500/style/IetfUtilities.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.IO;
using System.Text;
diff --git a/crypto/src/asn1/x509/AttributeTable.cs b/crypto/src/asn1/x509/AttributeTable.cs
index 71c42872e..eeee88fd7 100644
--- a/crypto/src/asn1/x509/AttributeTable.cs
+++ b/crypto/src/asn1/x509/AttributeTable.cs
@@ -1,55 +1,50 @@
-using System;
-using System.Collections;
+using System.Collections.Generic;
-using Org.BouncyCastle.Utilities;
+using Org.BouncyCastle.Utilities.Collections;
namespace Org.BouncyCastle.Asn1.X509
{
public class AttributeTable
{
- private readonly IDictionary attributes;
+ private readonly IDictionary<DerObjectIdentifier, AttributeX509> m_attributes;
- public AttributeTable(
- IDictionary attrs)
+ public AttributeTable(IDictionary<DerObjectIdentifier, AttributeX509> attrs)
{
- this.attributes = Platform.CreateHashtable(attrs);
+ m_attributes = new Dictionary<DerObjectIdentifier, AttributeX509>(attrs);
}
- public AttributeTable(
- Asn1EncodableVector v)
+ public AttributeTable(Asn1EncodableVector v)
{
- this.attributes = Platform.CreateHashtable(v.Count);
+ m_attributes = new Dictionary<DerObjectIdentifier, AttributeX509>(v.Count);
- for (int i = 0; i != v.Count; i++)
+ for (int i = 0; i != v.Count; i++)
{
AttributeX509 a = AttributeX509.GetInstance(v[i]);
- attributes.Add(a.AttrType, a);
+ m_attributes.Add(a.AttrType, a);
}
}
- public AttributeTable(
- Asn1Set s)
+ public AttributeTable(Asn1Set s)
{
- this.attributes = Platform.CreateHashtable(s.Count);
+ m_attributes = new Dictionary<DerObjectIdentifier, AttributeX509>(s.Count);
- for (int i = 0; i != s.Count; i++)
+ for (int i = 0; i != s.Count; i++)
{
AttributeX509 a = AttributeX509.GetInstance(s[i]);
- attributes.Add(a.AttrType, a);
+ m_attributes.Add(a.AttrType, a);
}
}
- public AttributeX509 Get(
- DerObjectIdentifier oid)
+ public AttributeX509 Get(DerObjectIdentifier oid)
{
- return (AttributeX509) attributes[oid];
+ return CollectionUtilities.GetValueOrNull(m_attributes, oid);
}
- public IDictionary ToDictionary()
+ public IDictionary<DerObjectIdentifier, AttributeX509> ToDictionary()
{
- return Platform.CreateHashtable(attributes);
+ return new Dictionary<DerObjectIdentifier, AttributeX509>(m_attributes);
}
}
}
diff --git a/crypto/src/asn1/x509/AuthorityInformationAccess.cs b/crypto/src/asn1/x509/AuthorityInformationAccess.cs
index f4b694cf0..57868baea 100644
--- a/crypto/src/asn1/x509/AuthorityInformationAccess.cs
+++ b/crypto/src/asn1/x509/AuthorityInformationAccess.cs
@@ -1,8 +1,6 @@
using System;
-using System.Collections;
using System.Text;
-using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1.X509
diff --git a/crypto/src/asn1/x509/AuthorityKeyIdentifier.cs b/crypto/src/asn1/x509/AuthorityKeyIdentifier.cs
index e7f12016a..64cfce214 100644
--- a/crypto/src/asn1/x509/AuthorityKeyIdentifier.cs
+++ b/crypto/src/asn1/x509/AuthorityKeyIdentifier.cs
@@ -1,10 +1,8 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Digests;
using Org.BouncyCastle.Math;
-using Org.BouncyCastle.Utilities;
using Org.BouncyCastle.Utilities.Encoders;
namespace Org.BouncyCastle.Asn1.X509
diff --git a/crypto/src/asn1/x509/CertificateList.cs b/crypto/src/asn1/x509/CertificateList.cs
index 567cf132a..3d5d2e557 100644
--- a/crypto/src/asn1/x509/CertificateList.cs
+++ b/crypto/src/asn1/x509/CertificateList.cs
@@ -1,7 +1,5 @@
using System;
-using System.Collections;
-
-using Org.BouncyCastle.Asn1;
+using System.Collections.Generic;
namespace Org.BouncyCastle.Asn1.X509
{
@@ -65,7 +63,7 @@ namespace Org.BouncyCastle.Asn1.X509
return tbsCertList.GetRevokedCertificates();
}
- public IEnumerable GetRevokedCertificateEnumeration()
+ public IEnumerable<CrlEntry> GetRevokedCertificateEnumeration()
{
return tbsCertList.GetRevokedCertificateEnumeration();
}
diff --git a/crypto/src/asn1/x509/DSAParameter.cs b/crypto/src/asn1/x509/DSAParameter.cs
index 2eb65024b..166ed9d08 100644
--- a/crypto/src/asn1/x509/DSAParameter.cs
+++ b/crypto/src/asn1/x509/DSAParameter.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
diff --git a/crypto/src/asn1/x509/DigestInfo.cs b/crypto/src/asn1/x509/DigestInfo.cs
index 3ac535e2e..d9fceda32 100644
--- a/crypto/src/asn1/x509/DigestInfo.cs
+++ b/crypto/src/asn1/x509/DigestInfo.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Utilities;
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()
diff --git a/crypto/src/asn1/x509/GeneralName.cs b/crypto/src/asn1/x509/GeneralName.cs
index 7b65e3239..c6c6e509e 100644
--- a/crypto/src/asn1/x509/GeneralName.cs
+++ b/crypto/src/asn1/x509/GeneralName.cs
@@ -1,5 +1,5 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
@@ -367,7 +367,8 @@ namespace Org.BouncyCastle.Asn1.X509
ip = ip.Substring(0, ip.Length - 1);
}
- IEnumerator sEnum = ip.Split(':').GetEnumerator();
+ IEnumerable<string> split = ip.Split(':');
+ var sEnum = split.GetEnumerator();
int index = 0;
int[] val = new int[8];
@@ -376,7 +377,7 @@ namespace Org.BouncyCastle.Asn1.X509
while (sEnum.MoveNext())
{
- string e = (string) sEnum.Current;
+ string e = sEnum.Current;
if (e.Length == 0)
{
diff --git a/crypto/src/asn1/x509/IetfAttrSyntax.cs b/crypto/src/asn1/x509/IetfAttrSyntax.cs
index 05313b1af..61fe78561 100644
--- a/crypto/src/asn1/x509/IetfAttrSyntax.cs
+++ b/crypto/src/asn1/x509/IetfAttrSyntax.cs
@@ -1,7 +1,4 @@
using System;
-using System.Collections;
-
-using Org.BouncyCastle.Asn1;
namespace Org.BouncyCastle.Asn1.X509
{
diff --git a/crypto/src/asn1/x509/NameConstraints.cs b/crypto/src/asn1/x509/NameConstraints.cs
index 40178c126..9fe4fdd01 100644
--- a/crypto/src/asn1/x509/NameConstraints.cs
+++ b/crypto/src/asn1/x509/NameConstraints.cs
@@ -1,5 +1,5 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Utilities;
@@ -43,15 +43,6 @@ namespace Org.BouncyCastle.Asn1.X509
}
}
-#if !PORTABLE
- public NameConstraints(
- ArrayList permitted,
- ArrayList excluded)
- : this((IList)permitted, (IList)excluded)
- {
- }
-#endif
-
/**
* Constructor from a given details.
*
@@ -61,8 +52,8 @@ namespace Org.BouncyCastle.Asn1.X509
* @param excluded Excluded subtrees
*/
public NameConstraints(
- IList permitted,
- IList excluded)
+ IList<GeneralSubtree> permitted,
+ IList<GeneralSubtree> excluded)
{
if (permitted != null)
{
@@ -75,13 +66,12 @@ namespace Org.BouncyCastle.Asn1.X509
}
}
- private DerSequence CreateSequence(
- IList subtrees)
+ private DerSequence CreateSequence(IList<GeneralSubtree> subtrees)
{
GeneralSubtree[] gsts = new GeneralSubtree[subtrees.Count];
for (int i = 0; i < subtrees.Count; ++i)
{
- gsts[i] = (GeneralSubtree)subtrees[i];
+ gsts[i] = subtrees[i];
}
return new DerSequence(gsts);
}
diff --git a/crypto/src/asn1/x509/NoticeReference.cs b/crypto/src/asn1/x509/NoticeReference.cs
index f0d3a7b7f..98a64ec55 100644
--- a/crypto/src/asn1/x509/NoticeReference.cs
+++ b/crypto/src/asn1/x509/NoticeReference.cs
@@ -1,5 +1,5 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Math;
@@ -26,7 +26,7 @@ namespace Org.BouncyCastle.Asn1.X509
private readonly DisplayText organization;
private readonly Asn1Sequence noticeNumbers;
- private static Asn1EncodableVector ConvertVector(IList numbers)
+ private static Asn1EncodableVector ConvertVector(IList<object> numbers)
{
Asn1EncodableVector av = new Asn1EncodableVector();
@@ -58,7 +58,7 @@ namespace Org.BouncyCastle.Asn1.X509
* @param organization a <code>String</code> value
* @param numbers a <code>Vector</code> value
*/
- public NoticeReference(string organization, IList numbers)
+ public NoticeReference(string organization, IList<object> numbers)
: this(organization, ConvertVector(numbers))
{
}
diff --git a/crypto/src/asn1/x509/PolicyMappings.cs b/crypto/src/asn1/x509/PolicyMappings.cs
index 8c9f97814..a077f2059 100644
--- a/crypto/src/asn1/x509/PolicyMappings.cs
+++ b/crypto/src/asn1/x509/PolicyMappings.cs
@@ -1,4 +1,4 @@
-using System.Collections;
+using System.Collections.Generic;
namespace Org.BouncyCastle.Asn1.X509
{
@@ -29,14 +29,6 @@ namespace Org.BouncyCastle.Asn1.X509
this.seq = seq;
}
-#if !PORTABLE
- public PolicyMappings(
- Hashtable mappings)
- : this((IDictionary)mappings)
- {
- }
-#endif
-
/**
* Creates a new <code>PolicyMappings</code> instance.
*
@@ -44,14 +36,14 @@ namespace Org.BouncyCastle.Asn1.X509
* <code>string</code> oids
* to other <code>string</code> oids.
*/
- public PolicyMappings(
- IDictionary mappings)
+ public PolicyMappings(IDictionary<string, string> mappings)
{
Asn1EncodableVector v = new Asn1EncodableVector();
- foreach (string idp in mappings.Keys)
+ foreach (var entry in mappings)
{
- string sdp = (string) mappings[idp];
+ string idp = entry.Key;
+ string sdp = entry.Value;
v.Add(
new DerSequence(
diff --git a/crypto/src/asn1/x509/RSAPublicKeyStructure.cs b/crypto/src/asn1/x509/RSAPublicKeyStructure.cs
index 20fdd96ac..cdb02946a 100644
--- a/crypto/src/asn1/x509/RSAPublicKeyStructure.cs
+++ b/crypto/src/asn1/x509/RSAPublicKeyStructure.cs
@@ -1,7 +1,5 @@
using System;
-using System.Collections;
-using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
diff --git a/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs b/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs
index 00db90042..6ebd35e21 100644
--- a/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs
+++ b/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs
@@ -1,5 +1,5 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Utilities;
using Org.BouncyCastle.Utilities.Collections;
@@ -28,7 +28,7 @@ namespace Org.BouncyCastle.Asn1.X509
public class SubjectDirectoryAttributes
: Asn1Encodable
{
- private readonly IList attributes;
+ private readonly IList<AttributeX509> m_attributes;
public static SubjectDirectoryAttributes GetInstance(
object obj)
@@ -70,11 +70,12 @@ namespace Org.BouncyCastle.Asn1.X509
private SubjectDirectoryAttributes(
Asn1Sequence seq)
{
- this.attributes = Platform.CreateArrayList();
+ m_attributes = new List<AttributeX509>();
+
foreach (object o in seq)
{
Asn1Sequence s = Asn1Sequence.GetInstance(o);
- attributes.Add(AttributeX509.GetInstance(s));
+ m_attributes.Add(AttributeX509.GetInstance(s));
}
}
@@ -86,11 +87,10 @@ namespace Org.BouncyCastle.Asn1.X509
* @param attributes The attributes.
*
*/
- public SubjectDirectoryAttributes(
- IList attributes)
+ public SubjectDirectoryAttributes(IList<AttributeX509> attributes)
{
- this.attributes = Platform.CreateArrayList(attributes);
- }
+ m_attributes = new List<AttributeX509>(attributes);
+ }
/**
* Produce an object suitable for an Asn1OutputStream.
@@ -114,10 +114,10 @@ namespace Org.BouncyCastle.Asn1.X509
*/
public override Asn1Object ToAsn1Object()
{
- AttributeX509[] v = new AttributeX509[attributes.Count];
- for (int i = 0; i < attributes.Count; ++i)
+ AttributeX509[] v = new AttributeX509[m_attributes.Count];
+ for (int i = 0; i < m_attributes.Count; ++i)
{
- v[i] = (AttributeX509)attributes[i];
+ v[i] = m_attributes[i];
}
return new DerSequence(v);
}
@@ -125,9 +125,9 @@ namespace Org.BouncyCastle.Asn1.X509
/**
* @return Returns the attributes.
*/
- public IEnumerable Attributes
+ public IEnumerable<AttributeX509> Attributes
{
- get { return new EnumerableProxy(attributes); }
+ get { return CollectionUtilities.Proxy(m_attributes); }
}
}
}
diff --git a/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs b/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs
index 474493dcf..52f977e91 100644
--- a/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs
+++ b/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.IO;
namespace Org.BouncyCastle.Asn1.X509
diff --git a/crypto/src/asn1/x509/TBSCertList.cs b/crypto/src/asn1/x509/TBSCertList.cs
index a427ba2ba..aef41d440 100644
--- a/crypto/src/asn1/x509/TBSCertList.cs
+++ b/crypto/src/asn1/x509/TBSCertList.cs
@@ -1,8 +1,7 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Utilities;
-using Org.BouncyCastle.Utilities.Collections;
namespace Org.BouncyCastle.Asn1.X509
{
@@ -14,13 +13,10 @@ namespace Org.BouncyCastle.Asn1.X509
internal Time revocationDate;
internal X509Extensions crlEntryExtensions;
- public CrlEntry(
- Asn1Sequence seq)
+ public CrlEntry(Asn1Sequence seq)
{
if (seq.Count < 2 || seq.Count > 3)
- {
throw new ArgumentException("Bad sequence size: " + seq.Count);
- }
this.seq = seq;
@@ -82,32 +78,39 @@ namespace Org.BouncyCastle.Asn1.X509
: Asn1Encodable
{
private class RevokedCertificatesEnumeration
- : IEnumerable
+ : IEnumerable<CrlEntry>
{
- private readonly IEnumerable en;
+ private readonly IEnumerable<Asn1Encodable> en;
- internal RevokedCertificatesEnumeration(
- IEnumerable en)
+ internal RevokedCertificatesEnumeration(IEnumerable<Asn1Encodable> en)
{
this.en = en;
}
- public IEnumerator GetEnumerator()
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public IEnumerator<CrlEntry> GetEnumerator()
{
return new RevokedCertificatesEnumerator(en.GetEnumerator());
}
private class RevokedCertificatesEnumerator
- : IEnumerator
+ : IEnumerator<CrlEntry>
{
- private readonly IEnumerator e;
+ private readonly IEnumerator<Asn1Encodable> e;
- internal RevokedCertificatesEnumerator(
- IEnumerator e)
+ internal RevokedCertificatesEnumerator(IEnumerator<Asn1Encodable> e)
{
this.e = e;
}
+ public virtual void Dispose()
+ {
+ }
+
public bool MoveNext()
{
return e.MoveNext();
@@ -118,7 +121,12 @@ namespace Org.BouncyCastle.Asn1.X509
e.Reset();
}
- public object Current
+ object System.Collections.IEnumerator.Current
+ {
+ get { return Current; }
+ }
+
+ public CrlEntry Current
{
get { return new CrlEntry(Asn1Sequence.GetInstance(e.Current)); }
}
@@ -252,11 +260,13 @@ namespace Org.BouncyCastle.Asn1.X509
return entries;
}
- public IEnumerable GetRevokedCertificateEnumeration()
+ public IEnumerable<CrlEntry> GetRevokedCertificateEnumeration()
{
if (revokedCertificates == null)
{
- return EmptyEnumerable.Instance;
+ // TODO
+ //return EmptyEnumerable.Instance;
+ return new List<CrlEntry>(0);
}
return new RevokedCertificatesEnumeration(revokedCertificates);
diff --git a/crypto/src/asn1/x509/X509ExtensionsGenerator.cs b/crypto/src/asn1/x509/X509ExtensionsGenerator.cs
index 438c507aa..53d18ecff 100644
--- a/crypto/src/asn1/x509/X509ExtensionsGenerator.cs
+++ b/crypto/src/asn1/x509/X509ExtensionsGenerator.cs
@@ -1,9 +1,6 @@
using System;
-using System.Collections;
using System.Collections.Generic;
-using Org.BouncyCastle.Utilities;
-
namespace Org.BouncyCastle.Asn1.X509
{
/// <remarks>Generator for X.509 extensions</remarks>
@@ -13,15 +10,13 @@ namespace Org.BouncyCastle.Asn1.X509
new Dictionary<DerObjectIdentifier, X509Extension>();
private List<DerObjectIdentifier> m_ordering = new List<DerObjectIdentifier>();
- private static readonly IDictionary dupsAllowed = Platform.CreateHashtable();
-
- static X509ExtensionsGenerator()
+ private static readonly ISet<DerObjectIdentifier> m_dupsAllowed = new HashSet<DerObjectIdentifier>()
{
- dupsAllowed.Add(X509Extensions.SubjectAlternativeName, true);
- dupsAllowed.Add(X509Extensions.IssuerAlternativeName, true);
- dupsAllowed.Add(X509Extensions.SubjectDirectoryAttributes, true);
- dupsAllowed.Add(X509Extensions.CertificateIssuer, true);
- }
+ X509Extensions.SubjectAlternativeName,
+ X509Extensions.IssuerAlternativeName,
+ X509Extensions.SubjectDirectoryAttributes,
+ X509Extensions.CertificateIssuer
+ };
/// <summary>Reset the generator</summary>
public void Reset()
@@ -63,7 +58,7 @@ namespace Org.BouncyCastle.Asn1.X509
{
if (m_extensions.TryGetValue(oid, out X509Extension existingExtension))
{
- if (!dupsAllowed.Contains(oid))
+ if (!m_dupsAllowed.Contains(oid))
throw new ArgumentException("extension " + oid + " already added");
Asn1Sequence seq1 = Asn1Sequence.GetInstance(
diff --git a/crypto/src/asn1/x509/X509Name.cs b/crypto/src/asn1/x509/X509Name.cs
index 0683b380c..7c9797e56 100644
--- a/crypto/src/asn1/x509/X509Name.cs
+++ b/crypto/src/asn1/x509/X509Name.cs
@@ -1,11 +1,9 @@
using System;
-using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Org.BouncyCastle.Asn1.Pkcs;
-using Org.BouncyCastle.Utilities;
using Org.BouncyCastle.Utilities.Encoders;
namespace Org.BouncyCastle.Asn1.X509
@@ -205,51 +203,31 @@ namespace Org.BouncyCastle.Asn1.X509
private static readonly bool[] defaultReverse = { false };
-#if PORTABLE
/**
* default look up table translating OID values into their common symbols following
* the convention in RFC 2253 with a few extras
*/
- public static readonly IDictionary DefaultSymbols = Platform.CreateHashtable();
+ public static readonly IDictionary<DerObjectIdentifier, string> DefaultSymbols =
+ new Dictionary<DerObjectIdentifier, string>();
/**
* look up table translating OID values into their common symbols following the convention in RFC 2253
*/
- public static readonly IDictionary RFC2253Symbols = Platform.CreateHashtable();
+ public static readonly IDictionary<DerObjectIdentifier, string> RFC2253Symbols =
+ new Dictionary<DerObjectIdentifier, string>();
/**
* look up table translating OID values into their common symbols following the convention in RFC 1779
*
*/
- public static readonly IDictionary RFC1779Symbols = Platform.CreateHashtable();
+ public static readonly IDictionary<DerObjectIdentifier, string> RFC1779Symbols =
+ new Dictionary<DerObjectIdentifier, string>();
/**
* look up table translating common symbols into their OIDS.
*/
- public static readonly IDictionary DefaultLookup = Platform.CreateHashtable();
-#else
- /**
- * default look up table translating OID values into their common symbols following
- * the convention in RFC 2253 with a few extras
- */
- public static readonly Hashtable DefaultSymbols = new Hashtable();
-
- /**
- * look up table translating OID values into their common symbols following the convention in RFC 2253
- */
- public static readonly Hashtable RFC2253Symbols = new Hashtable();
-
- /**
- * look up table translating OID values into their common symbols following the convention in RFC 1779
- *
- */
- public static readonly Hashtable RFC1779Symbols = new Hashtable();
-
- /**
- * look up table translating common symbols into their OIDS.
- */
- public static readonly Hashtable DefaultLookup = new Hashtable();
-#endif
+ public static readonly IDictionary<string, DerObjectIdentifier> DefaultLookup =
+ new Dictionary<string, DerObjectIdentifier>(StringComparer.OrdinalIgnoreCase);
static X509Name()
{
@@ -340,9 +318,9 @@ namespace Org.BouncyCastle.Asn1.X509
private readonly List<DerObjectIdentifier> ordering = new List<DerObjectIdentifier>();
private readonly X509NameEntryConverter converter;
- private IList values = Platform.CreateArrayList();
- private IList added = Platform.CreateArrayList();
- private Asn1Sequence seq;
+ private IList<string> values = new List<string>();
+ private IList<bool> added = new List<bool>();
+ private Asn1Sequence seq;
/**
* Return a X509Name based on the passed in tagged object.
@@ -377,8 +355,7 @@ namespace Org.BouncyCastle.Asn1.X509
*
* the principal will be a list of constructed sets, each containing an (OID, string) pair.
*/
- protected X509Name(
- Asn1Sequence seq)
+ protected X509Name(Asn1Sequence seq)
{
this.seq = seq;
@@ -399,7 +376,7 @@ namespace Org.BouncyCastle.Asn1.X509
if (derValue is IAsn1String && !(derValue is DerUniversalString))
{
string v = ((IAsn1String)derValue).GetString();
- if (Platform.StartsWith(v, "#"))
+ if (v.StartsWith("#"))
{
v = "\\" + v;
}
@@ -425,8 +402,8 @@ namespace Org.BouncyCastle.Asn1.X509
* in the order they are meant to be encoded or printed in ToString.</p>
*/
public X509Name(
- IList ordering,
- IDictionary attributes)
+ IList<DerObjectIdentifier> ordering,
+ IDictionary<DerObjectIdentifier, string> attributes)
: this(ordering, attributes, new X509DefaultEntryConverter())
{
}
@@ -443,19 +420,22 @@ namespace Org.BouncyCastle.Asn1.X509
* ASN.1 counterparts.</p>
*/
public X509Name(
- IList ordering,
- IDictionary attributes,
+ IList<DerObjectIdentifier> ordering,
+ IDictionary<DerObjectIdentifier, string> attributes,
X509NameEntryConverter converter)
{
this.converter = converter;
foreach (DerObjectIdentifier oid in ordering)
{
- object attribute = attributes[oid];
- if (attribute == null)
- {
+ if (!attributes.TryGetValue(oid, out var attribute))
throw new ArgumentException("No attribute for object id - " + oid + " - passed to distinguished name");
- }
+
+ //object attribute = attributes[oid];
+ //if (attribute == null)
+ //{
+ // throw new ArgumentException("No attribute for object id - " + oid + " - passed to distinguished name");
+ //}
this.ordering.Add(oid);
this.added.Add(false);
@@ -466,7 +446,7 @@ namespace Org.BouncyCastle.Asn1.X509
/**
* Takes two vectors one of the oids and the other of the values.
*/
- public X509Name(IList<DerObjectIdentifier> oids, IList values)
+ public X509Name(IList<DerObjectIdentifier> oids, IList<string> values)
: this(oids, values, new X509DefaultEntryConverter())
{
}
@@ -477,14 +457,12 @@ namespace Org.BouncyCastle.Asn1.X509
* The passed in converter will be used to convert the strings into their
* ASN.1 counterparts.</p>
*/
- public X509Name(IList<DerObjectIdentifier> oids, IList values, X509NameEntryConverter converter)
+ public X509Name(IList<DerObjectIdentifier> oids, IList<string> values, X509NameEntryConverter converter)
{
this.converter = converter;
if (oids.Count != values.Count)
- {
throw new ArgumentException("'oids' must be same length as 'values'.");
- }
for (int i = 0; i < oids.Count; i++)
{
@@ -499,7 +477,7 @@ namespace Org.BouncyCastle.Asn1.X509
* some such, converting it into an ordered set of name attributes.
*/
public X509Name(string dirName)
- : this(DefaultReverse, (IDictionary)DefaultLookup, dirName)
+ : this(DefaultReverse, DefaultLookup, dirName)
{
}
@@ -509,9 +487,7 @@ namespace Org.BouncyCastle.Asn1.X509
* string value being converted to its associated ASN.1 type using the passed
* in converter.
*/
- public X509Name(
- string dirName,
- X509NameEntryConverter converter)
+ public X509Name(string dirName, X509NameEntryConverter converter)
: this(DefaultReverse, DefaultLookup, dirName, converter)
{
}
@@ -522,10 +498,8 @@ namespace Org.BouncyCastle.Asn1.X509
* is true, create the encoded version of the sequence starting from the
* last element in the string.
*/
- public X509Name(
- bool reverse,
- string dirName)
- : this(reverse, (IDictionary)DefaultLookup, dirName)
+ public X509Name(bool reverse, string dirName)
+ : this(reverse, DefaultLookup, dirName)
{
}
@@ -536,10 +510,7 @@ namespace Org.BouncyCastle.Asn1.X509
* in converter. If reverse is true the ASN.1 sequence representing the DN will
* be built by starting at the end of the string, rather than the start.
*/
- public X509Name(
- bool reverse,
- string dirName,
- X509NameEntryConverter converter)
+ public X509Name(bool reverse, string dirName, X509NameEntryConverter converter)
: this(reverse, DefaultLookup, dirName, converter)
{
}
@@ -557,34 +528,23 @@ namespace Org.BouncyCastle.Asn1.X509
* @param lookUp table of names and their oids.
* @param dirName the X.500 string to be parsed.
*/
- public X509Name(
- bool reverse,
- IDictionary lookUp,
- string dirName)
- : this(reverse, lookUp, dirName, new X509DefaultEntryConverter())
+ public X509Name(bool reverse, IDictionary<string, DerObjectIdentifier> lookup, string dirName)
+ : this(reverse, lookup, dirName, new X509DefaultEntryConverter())
{
}
- private DerObjectIdentifier DecodeOid(
- string name,
- IDictionary lookUp)
+ private DerObjectIdentifier DecodeOid(string name, IDictionary<string, DerObjectIdentifier> lookup)
{
- if (Platform.StartsWith(Platform.ToUpperInvariant(name), "OID."))
- {
- return new DerObjectIdentifier(name.Substring(4));
- }
- else if (name[0] >= '0' && name[0] <= '9')
- {
+ if (name.StartsWith("OID.", StringComparison.OrdinalIgnoreCase))
+ return new DerObjectIdentifier(name.Substring("OID.".Length));
+
+ if (name[0] >= '0' && name[0] <= '9')
return new DerObjectIdentifier(name);
- }
- DerObjectIdentifier oid = (DerObjectIdentifier)lookUp[Platform.ToLowerInvariant(name)];
- if (oid == null)
- {
- throw new ArgumentException("Unknown object id - " + name + " - passed to distinguished name");
- }
+ if (lookup.TryGetValue(name, out var oid))
+ return oid;
- return oid;
+ throw new ArgumentException("Unknown object id - " + name + " - passed to distinguished name");
}
/**
@@ -600,11 +560,8 @@ namespace Org.BouncyCastle.Asn1.X509
* @param dirName the string dirName
* @param converter the converter to convert string values into their ASN.1 equivalents
*/
- public X509Name(
- bool reverse,
- IDictionary lookUp,
- string dirName,
- X509NameEntryConverter converter)
+ public X509Name(bool reverse, IDictionary<string, DerObjectIdentifier> lookup, string dirName,
+ X509NameEntryConverter converter)
{
this.converter = converter;
X509NameTokenizer nTok = new X509NameTokenizer(dirName);
@@ -615,13 +572,11 @@ namespace Org.BouncyCastle.Asn1.X509
int index = token.IndexOf('=');
if (index == -1)
- {
throw new ArgumentException("badly formated directory string");
- }
string name = token.Substring(0, index);
string value = token.Substring(index + 1);
- DerObjectIdentifier oid = DecodeOid(name, lookUp);
+ DerObjectIdentifier oid = DecodeOid(name, lookup);
if (value.IndexOf('+') > 0)
{
@@ -639,7 +594,7 @@ namespace Org.BouncyCastle.Asn1.X509
string nm = sv.Substring(0, ndx);
string vl = sv.Substring(ndx + 1);
- this.ordering.Add(DecodeOid(nm, lookUp));
+ this.ordering.Add(DecodeOid(nm, lookup));
this.values.Add(vl);
this.added.Add(true);
}
@@ -658,8 +613,8 @@ namespace Org.BouncyCastle.Asn1.X509
// this.values.Reverse();
// this.added.Reverse();
var o = new List<DerObjectIdentifier>();
- IList v = Platform.CreateArrayList();
- IList a = Platform.CreateArrayList();
+ var v = new List<string>();
+ var a = new List<bool>();
int count = 1;
for (int i = 0; i < this.ordering.Count; i++)
@@ -711,8 +666,7 @@ namespace Org.BouncyCastle.Asn1.X509
if (null == oid || oid.Equals(ordering[i]))
{
string val = (string)values[i];
-
- if (Platform.StartsWith(val, "\\#"))
+ if (val.StartsWith("\\#"))
{
val = val.Substring(1);
}
@@ -794,7 +748,7 @@ namespace Org.BouncyCastle.Asn1.X509
string val = (string) values[i];
string oVal = (string) other.values[i];
- if (!equivalentStrings(val, oVal))
+ if (!EquivalentStrings(val, oVal))
return false;
}
@@ -855,7 +809,7 @@ namespace Org.BouncyCastle.Asn1.X509
{
string oValue = (string)other.values[j];
- if (equivalentStrings(value, oValue))
+ if (EquivalentStrings(value, oValue))
{
indexes[j] = true;
found = true;
@@ -873,47 +827,40 @@ namespace Org.BouncyCastle.Asn1.X509
return true;
}
- private static bool equivalentStrings(
- string s1,
- string s2)
+ private static bool EquivalentStrings(string s1, string s2)
{
- string v1 = canonicalize(s1);
- string v2 = canonicalize(s2);
+ string v1 = Canonicalize(s1);
+ string v2 = Canonicalize(s2);
if (!v1.Equals(v2))
{
- v1 = stripInternalSpaces(v1);
- v2 = stripInternalSpaces(v2);
+ v1 = StripInternalSpaces(v1);
+ v2 = StripInternalSpaces(v2);
if (!v1.Equals(v2))
- {
return false;
- }
}
return true;
}
- private static string canonicalize(
- string s)
+ private static string Canonicalize(string s)
{
- string v = Platform.ToLowerInvariant(s).Trim();
+ string v = s.ToLowerInvariant().Trim();
- if (Platform.StartsWith(v, "#"))
+ if (v.StartsWith("#"))
{
- Asn1Object obj = decodeObject(v);
-
- if (obj is IAsn1String)
+ Asn1Object obj = DecodeObject(v);
+ if (obj is IAsn1String str)
{
- v = Platform.ToLowerInvariant(((IAsn1String)obj).GetString()).Trim();
+ v = str.GetString().ToLowerInvariant().Trim();
}
}
return v;
}
- private static Asn1Object decodeObject(
- string v)
+ private static Asn1Object DecodeObject(string v)
{
try
{
@@ -925,8 +872,7 @@ namespace Org.BouncyCastle.Asn1.X509
}
}
- private static string stripInternalSpaces(
- string str)
+ private static string StripInternalSpaces(string str)
{
StringBuilder res = new StringBuilder();
@@ -950,15 +896,10 @@ namespace Org.BouncyCastle.Asn1.X509
return res.ToString();
}
- private void AppendValue(
- StringBuilder buf,
- IDictionary oidSymbols,
- DerObjectIdentifier oid,
- string val)
+ private void AppendValue(StringBuilder buf, IDictionary<DerObjectIdentifier, string> oidSymbols,
+ DerObjectIdentifier oid, string val)
{
- string sym = (string)oidSymbols[oid];
-
- if (sym != null)
+ if (oidSymbols.TryGetValue(oid, out var sym))
{
buf.Append(sym);
}
@@ -975,7 +916,7 @@ namespace Org.BouncyCastle.Asn1.X509
int end = buf.Length;
- if (Platform.StartsWith(val, "\\#"))
+ if (val.StartsWith("\\#"))
{
index += 2;
}
@@ -1011,33 +952,23 @@ namespace Org.BouncyCastle.Asn1.X509
* @param reverse if true start at the end of the sequence and work back.
* @param oidSymbols look up table strings for oids.
*/
- public string ToString(
- bool reverse,
- IDictionary oidSymbols)
+ public string ToString(bool reverse, IDictionary<DerObjectIdentifier, string> oidSymbols)
{
-#if PORTABLE
- List<object> components = new List<object>();
-#else
- ArrayList components = new ArrayList();
-#endif
+ var components = new List<StringBuilder>();
StringBuilder ava = null;
for (int i = 0; i < ordering.Count; i++)
{
- if ((bool) added[i])
+ if (added[i])
{
ava.Append('+');
- AppendValue(ava, oidSymbols,
- (DerObjectIdentifier)ordering[i],
- (string)values[i]);
+ AppendValue(ava, oidSymbols, ordering[i], values[i]);
}
else
{
ava = new StringBuilder();
- AppendValue(ava, oidSymbols,
- (DerObjectIdentifier)ordering[i],
- (string)values[i]);
+ AppendValue(ava, oidSymbols, ordering[i], values[i]);
components.Add(ava);
}
}
@@ -1065,7 +996,7 @@ namespace Org.BouncyCastle.Asn1.X509
public override string ToString()
{
- return ToString(DefaultReverse, (IDictionary)DefaultSymbols);
+ return ToString(DefaultReverse, DefaultSymbols);
}
}
}
diff --git a/crypto/src/asn1/x509/qualified/MonetaryValue.cs b/crypto/src/asn1/x509/qualified/MonetaryValue.cs
index d703de943..be4cd1142 100644
--- a/crypto/src/asn1/x509/qualified/MonetaryValue.cs
+++ b/crypto/src/asn1/x509/qualified/MonetaryValue.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
diff --git a/crypto/src/asn1/x509/qualified/SemanticsInformation.cs b/crypto/src/asn1/x509/qualified/SemanticsInformation.cs
index 379e6d1d1..23818e916 100644
--- a/crypto/src/asn1/x509/qualified/SemanticsInformation.cs
+++ b/crypto/src/asn1/x509/qualified/SemanticsInformation.cs
@@ -1,7 +1,5 @@
using System;
-using System.Collections;
-using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1.X509.Qualified
@@ -42,33 +40,30 @@ namespace Org.BouncyCastle.Asn1.X509.Qualified
throw new ArgumentException("unknown object in GetInstance: " + Platform.GetTypeName(obj), "obj");
}
- public SemanticsInformation(
- Asn1Sequence seq)
+ public SemanticsInformation(Asn1Sequence seq)
{
if (seq.Count < 1)
- {
throw new ArgumentException("no objects in SemanticsInformation");
- }
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
- object obj = e.Current;
- if (obj is DerObjectIdentifier)
+ var obj = e.Current;
+ if (obj is DerObjectIdentifier oid)
{
- semanticsIdentifier = DerObjectIdentifier.GetInstance(obj);
+ semanticsIdentifier = oid;
if (e.MoveNext())
{
- obj = e.Current;
+ obj = e.Current;
}
else
{
- obj = null;
+ obj = null;
}
}
- if (obj != null)
+ if (obj != null)
{
- Asn1Sequence generalNameSeq = Asn1Sequence.GetInstance(obj );
+ Asn1Sequence generalNameSeq = Asn1Sequence.GetInstance(obj);
nameRegistrationAuthorities = new GeneralName[generalNameSeq.Count];
for (int i= 0; i < generalNameSeq.Count; i++)
{
@@ -97,7 +92,10 @@ namespace Org.BouncyCastle.Asn1.X509.Qualified
this.nameRegistrationAuthorities = generalNames;
}
- public DerObjectIdentifier SemanticsIdentifier { get { return semanticsIdentifier; } }
+ public DerObjectIdentifier SemanticsIdentifier
+ {
+ get { return semanticsIdentifier; }
+ }
public GeneralName[] GetNameRegistrationAuthorities()
{
diff --git a/crypto/src/asn1/x509/sigi/NameOrPseudonym.cs b/crypto/src/asn1/x509/sigi/NameOrPseudonym.cs
index 2402e3832..c801002d1 100644
--- a/crypto/src/asn1/x509/sigi/NameOrPseudonym.cs
+++ b/crypto/src/asn1/x509/sigi/NameOrPseudonym.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X500;
using Org.BouncyCastle.Utilities;
diff --git a/crypto/src/asn1/x509/sigi/PersonalData.cs b/crypto/src/asn1/x509/sigi/PersonalData.cs
index 0e0bb5365..439039888 100644
--- a/crypto/src/asn1/x509/sigi/PersonalData.cs
+++ b/crypto/src/asn1/x509/sigi/PersonalData.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using Org.BouncyCastle.Asn1.X500;
using Org.BouncyCastle.Math;
@@ -69,13 +68,12 @@ namespace Org.BouncyCastle.Asn1.X509.SigI
*
* @param seq The ASN.1 sequence.
*/
- private PersonalData(
- Asn1Sequence seq)
+ private PersonalData(Asn1Sequence seq)
{
if (seq.Count < 1)
throw new ArgumentException("Bad sequence size: " + seq.Count);
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
nameOrPseudonym = NameOrPseudonym.GetInstance(e.Current);
@@ -86,23 +84,23 @@ namespace Org.BouncyCastle.Asn1.X509.SigI
int tag = o.TagNo;
switch (tag)
{
- case 0:
- nameDistinguisher = DerInteger.GetInstance(o, false).Value;
- break;
- case 1:
- dateOfBirth = DerGeneralizedTime.GetInstance(o, false);
- break;
- case 2:
- placeOfBirth = DirectoryString.GetInstance(o, true);
- break;
- case 3:
- gender = DerPrintableString.GetInstance(o, false).GetString();
- break;
- case 4:
- postalAddress = DirectoryString.GetInstance(o, true);
- break;
- default:
- throw new ArgumentException("Bad tag number: " + o.TagNo);
+ case 0:
+ nameDistinguisher = DerInteger.GetInstance(o, false).Value;
+ break;
+ case 1:
+ dateOfBirth = DerGeneralizedTime.GetInstance(o, false);
+ break;
+ case 2:
+ placeOfBirth = DirectoryString.GetInstance(o, true);
+ break;
+ case 3:
+ gender = DerPrintableString.GetInstance(o, false).GetString();
+ break;
+ case 4:
+ postalAddress = DirectoryString.GetInstance(o, true);
+ break;
+ default:
+ throw new ArgumentException("Bad tag number: " + o.TagNo);
}
}
}
diff --git a/crypto/src/asn1/x9/DHDomainParameters.cs b/crypto/src/asn1/x9/DHDomainParameters.cs
index a92322717..0439b28cd 100644
--- a/crypto/src/asn1/x9/DHDomainParameters.cs
+++ b/crypto/src/asn1/x9/DHDomainParameters.cs
@@ -1,5 +1,5 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Utilities;
@@ -49,7 +49,7 @@ namespace Org.BouncyCastle.Asn1.X9
if (seq.Count < 3 || seq.Count > 5)
throw new ArgumentException("Bad sequence size: " + seq.Count, "seq");
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
this.p = DerInteger.GetInstance(GetNext(e));
this.g = DerInteger.GetInstance(GetNext(e));
this.q = DerInteger.GetInstance(GetNext(e));
@@ -68,7 +68,7 @@ namespace Org.BouncyCastle.Asn1.X9
}
}
- private static Asn1Encodable GetNext(IEnumerator e)
+ private static Asn1Encodable GetNext(IEnumerator<Asn1Encodable> e)
{
return e.MoveNext() ? (Asn1Encodable)e.Current : null;
}
diff --git a/crypto/src/asn1/x9/KeySpecificInfo.cs b/crypto/src/asn1/x9/KeySpecificInfo.cs
index 46298646b..8e5fb9ea7 100644
--- a/crypto/src/asn1/x9/KeySpecificInfo.cs
+++ b/crypto/src/asn1/x9/KeySpecificInfo.cs
@@ -1,5 +1,3 @@
-using System.Collections;
-
namespace Org.BouncyCastle.Asn1.X9
{
/**
@@ -20,10 +18,9 @@ namespace Org.BouncyCastle.Asn1.X9
this.counter = counter;
}
- public KeySpecificInfo(
- Asn1Sequence seq)
+ public KeySpecificInfo(Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
algorithm = (DerObjectIdentifier)e.Current;
diff --git a/crypto/src/asn1/x9/OtherInfo.cs b/crypto/src/asn1/x9/OtherInfo.cs
index 4a52b7206..c1819a5ee 100644
--- a/crypto/src/asn1/x9/OtherInfo.cs
+++ b/crypto/src/asn1/x9/OtherInfo.cs
@@ -1,5 +1,3 @@
-using System.Collections;
-
namespace Org.BouncyCastle.Asn1.X9
{
/**
@@ -23,25 +21,24 @@ namespace Org.BouncyCastle.Asn1.X9
this.suppPubInfo = suppPubInfo;
}
- public OtherInfo(
- Asn1Sequence seq)
+ public OtherInfo(Asn1Sequence seq)
{
- IEnumerator e = seq.GetEnumerator();
+ var e = seq.GetEnumerator();
e.MoveNext();
- keyInfo = new KeySpecificInfo((Asn1Sequence) e.Current);
+ keyInfo = new KeySpecificInfo((Asn1Sequence)e.Current);
while (e.MoveNext())
{
- DerTaggedObject o = (DerTaggedObject) e.Current;
+ Asn1TaggedObject o = (Asn1TaggedObject)e.Current;
if (o.TagNo == 0)
{
- partyAInfo = (Asn1OctetString) o.GetObject();
+ partyAInfo = (Asn1OctetString)o.GetObject();
}
else if ((int) o.TagNo == 2)
{
- suppPubInfo = (Asn1OctetString) o.GetObject();
+ suppPubInfo = (Asn1OctetString)o.GetObject();
}
}
}
diff --git a/crypto/src/cms/CMSSignedDataGenerator.cs b/crypto/src/cms/CMSSignedDataGenerator.cs
index 20dc59f36..3db000896 100644
--- a/crypto/src/cms/CMSSignedDataGenerator.cs
+++ b/crypto/src/cms/CMSSignedDataGenerator.cs
@@ -136,12 +136,7 @@ namespace Org.BouncyCastle.Cms
}
IStreamCalculator calculator = sigCalc.CreateCalculator();
-
-#if PORTABLE
- Stream sigStr = calculator.Stream;
-#else
Stream sigStr = new BufferedStream(calculator.Stream);
-#endif
Asn1Set signedAttr = null;
if (sAttr != null)
@@ -155,9 +150,7 @@ namespace Org.BouncyCastle.Cms
{
if (signed != null && signed[CmsAttributes.ContentType] != null)
{
- IDictionary tmpSigned = signed.ToDictionary();
- tmpSigned.Remove(CmsAttributes.ContentType);
- signed = new Asn1.Cms.AttributeTable(tmpSigned);
+ signed = signed.Remove(CmsAttributes.ContentType);
}
}
diff --git a/crypto/src/cms/CMSSignedDataStreamGenerator.cs b/crypto/src/cms/CMSSignedDataStreamGenerator.cs
index e247beea0..91a8b4a43 100644
--- a/crypto/src/cms/CMSSignedDataStreamGenerator.cs
+++ b/crypto/src/cms/CMSSignedDataStreamGenerator.cs
@@ -174,9 +174,7 @@ namespace Org.BouncyCastle.Cms
{
if (signed != null && signed[CmsAttributes.ContentType] != null)
{
- IDictionary tmpSigned = signed.ToDictionary();
- tmpSigned.Remove(CmsAttributes.ContentType);
- signed = new Asn1.Cms.AttributeTable(tmpSigned);
+ signed = signed.Remove(CmsAttributes.ContentType);
}
}
diff --git a/crypto/src/cms/DefaultAuthenticatedAttributeTableGenerator.cs b/crypto/src/cms/DefaultAuthenticatedAttributeTableGenerator.cs
index 2730d93e0..678d8269b 100644
--- a/crypto/src/cms/DefaultAuthenticatedAttributeTableGenerator.cs
+++ b/crypto/src/cms/DefaultAuthenticatedAttributeTableGenerator.cs
@@ -1,9 +1,9 @@
using System;
using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.Cms;
-using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Cms
{
@@ -13,14 +13,14 @@ namespace Org.BouncyCastle.Cms
public class DefaultAuthenticatedAttributeTableGenerator
: CmsAttributeTableGenerator
{
- private readonly IDictionary table;
+ private readonly IDictionary<DerObjectIdentifier, object> m_table;
/**
* Initialise to use all defaults
*/
public DefaultAuthenticatedAttributeTableGenerator()
{
- table = Platform.CreateHashtable();
+ m_table = new Dictionary<DerObjectIdentifier, object>();
}
/**
@@ -33,11 +33,11 @@ namespace Org.BouncyCastle.Cms
{
if (attributeTable != null)
{
- table = attributeTable.ToDictionary();
+ m_table = attributeTable.ToDictionary();
}
else
{
- table = Platform.CreateHashtable();
+ m_table = new Dictionary<DerObjectIdentifier, object>();
}
}
@@ -51,12 +51,12 @@ namespace Org.BouncyCastle.Cms
*
* @return a filled in IDictionary of attributes.
*/
- protected virtual IDictionary CreateStandardAttributeTable(
+ protected virtual IDictionary<DerObjectIdentifier, object> CreateStandardAttributeTable(
IDictionary parameters)
{
- IDictionary std = Platform.CreateHashtable(table);
+ var std = new Dictionary<DerObjectIdentifier, object>(m_table);
- if (!std.Contains(CmsAttributes.ContentType))
+ if (!std.ContainsKey(CmsAttributes.ContentType))
{
DerObjectIdentifier contentType = (DerObjectIdentifier)
parameters[CmsAttributeTableParameter.ContentType];
@@ -65,7 +65,7 @@ namespace Org.BouncyCastle.Cms
std[attr.AttrType] = attr;
}
- if (!std.Contains(CmsAttributes.MessageDigest))
+ if (!std.ContainsKey(CmsAttributes.MessageDigest))
{
byte[] messageDigest = (byte[])parameters[CmsAttributeTableParameter.Digest];
Asn1.Cms.Attribute attr = new Asn1.Cms.Attribute(CmsAttributes.MessageDigest,
@@ -76,14 +76,13 @@ namespace Org.BouncyCastle.Cms
return std;
}
- /**
+ /**
* @param parameters source parameters
* @return the populated attribute table
*/
- public virtual AttributeTable GetAttributes(
- IDictionary parameters)
+ public virtual AttributeTable GetAttributes(IDictionary parameters)
{
- IDictionary table = CreateStandardAttributeTable(parameters);
+ var table = CreateStandardAttributeTable(parameters);
return new AttributeTable(table);
}
}
diff --git a/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs b/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs
index fad80b52b..8d0bca083 100644
--- a/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs
+++ b/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections;
+using System.Collections.Generic;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.Cms;
@@ -13,14 +14,14 @@ namespace Org.BouncyCastle.Cms
public class DefaultSignedAttributeTableGenerator
: CmsAttributeTableGenerator
{
- private readonly IDictionary table;
+ private readonly IDictionary<DerObjectIdentifier, object> m_table;
/**
* Initialise to use all defaults
*/
public DefaultSignedAttributeTableGenerator()
{
- table = Platform.CreateHashtable();
+ m_table = new Dictionary<DerObjectIdentifier, object>();
}
/**
@@ -28,38 +29,18 @@ namespace Org.BouncyCastle.Cms
*
* @param attributeTable initial attribute table to use.
*/
- public DefaultSignedAttributeTableGenerator(
- AttributeTable attributeTable)
+ public DefaultSignedAttributeTableGenerator(AttributeTable attributeTable)
{
if (attributeTable != null)
{
- table = attributeTable.ToDictionary();
+ m_table = attributeTable.ToDictionary();
}
else
{
- table = Platform.CreateHashtable();
+ m_table = new Dictionary<DerObjectIdentifier, object>();
}
}
-#if PORTABLE
- /**
- * Create a standard attribute table from the passed in parameters - this will
- * normally include contentType, signingTime, and messageDigest. If the constructor
- * using an AttributeTable was used, entries in it for contentType, signingTime, and
- * messageDigest will override the generated ones.
- *
- * @param parameters source parameters for table generation.
- *
- * @return a filled in Hashtable of attributes.
- */
- protected virtual IDictionary createStandardAttributeTable(
- IDictionary parameters)
- {
- IDictionary std = Platform.CreateHashtable(table);
- DoCreateStandardAttributeTable(parameters, std);
- return std;
- }
-#else
/**
* Create a standard attribute table from the passed in parameters - this will
* normally include contentType, signingTime, and messageDigest. If the constructor
@@ -70,21 +51,20 @@ namespace Org.BouncyCastle.Cms
*
* @return a filled in Hashtable of attributes.
*/
- protected virtual Hashtable createStandardAttributeTable(
- IDictionary parameters)
+ protected virtual IDictionary<DerObjectIdentifier, object> CreateStandardAttributeTable(IDictionary parameters)
{
- Hashtable std = new Hashtable(table);
+ var std = new Dictionary<DerObjectIdentifier, object>(m_table);
DoCreateStandardAttributeTable(parameters, std);
return std;
}
-#endif
- private void DoCreateStandardAttributeTable(IDictionary parameters, IDictionary std)
+ private void DoCreateStandardAttributeTable(IDictionary parameters,
+ IDictionary<DerObjectIdentifier, object> std)
{
// contentType will be absent if we're trying to generate a counter signature.
if (parameters.Contains(CmsAttributeTableParameter.ContentType))
{
- if (!std.Contains(CmsAttributes.ContentType))
+ if (!std.ContainsKey(CmsAttributes.ContentType))
{
DerObjectIdentifier contentType = (DerObjectIdentifier)
parameters[CmsAttributeTableParameter.ContentType];
@@ -94,14 +74,14 @@ namespace Org.BouncyCastle.Cms
}
}
- if (!std.Contains(CmsAttributes.SigningTime))
+ if (!std.ContainsKey(CmsAttributes.SigningTime))
{
Asn1.Cms.Attribute attr = new Asn1.Cms.Attribute(CmsAttributes.SigningTime,
new DerSet(new Time(DateTime.UtcNow)));
std[attr.AttrType] = attr;
}
- if (!std.Contains(CmsAttributes.MessageDigest))
+ if (!std.ContainsKey(CmsAttributes.MessageDigest))
{
byte[] messageDigest = (byte[])parameters[CmsAttributeTableParameter.Digest];
Asn1.Cms.Attribute attr = new Asn1.Cms.Attribute(CmsAttributes.MessageDigest,
@@ -117,7 +97,7 @@ namespace Org.BouncyCastle.Cms
public virtual AttributeTable GetAttributes(
IDictionary parameters)
{
- IDictionary table = createStandardAttributeTable(parameters);
+ var table = CreateStandardAttributeTable(parameters);
return new AttributeTable(table);
}
}
diff --git a/crypto/src/pkix/Rfc3281CertPathUtilities.cs b/crypto/src/pkix/Rfc3281CertPathUtilities.cs
index a2673f2a1..686498b3e 100644
--- a/crypto/src/pkix/Rfc3281CertPathUtilities.cs
+++ b/crypto/src/pkix/Rfc3281CertPathUtilities.cs
@@ -277,7 +277,7 @@ namespace Org.BouncyCastle.Pkix
bool trusted = false;
foreach (TrustAnchor anchor in set)
{
- IDictionary symbols = X509Name.RFC2253Symbols;
+ var symbols = X509Name.RFC2253Symbols;
if (acIssuerCert.SubjectDN.ToString(false, symbols).Equals(anchor.CAName)
|| acIssuerCert.Equals(anchor.TrustedCert))
{
diff --git a/crypto/src/tsp/TimeStampTokenGenerator.cs b/crypto/src/tsp/TimeStampTokenGenerator.cs
index afa1ef2e0..7d711eb22 100644
--- a/crypto/src/tsp/TimeStampTokenGenerator.cs
+++ b/crypto/src/tsp/TimeStampTokenGenerator.cs
@@ -1,7 +1,9 @@
using System;
using System.Collections;
+using System.Collections.Generic;
using System.IO;
using System.Text;
+
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.Cmp;
using Org.BouncyCastle.Asn1.Ess;
@@ -161,14 +163,14 @@ namespace Org.BouncyCastle.Tsp
//
// Add the ESSCertID attribute
//
- IDictionary signedAttrs;
+ IDictionary<DerObjectIdentifier, object> signedAttrs;
if (signedAttr != null)
{
signedAttrs = signedAttr.ToDictionary();
}
else
{
- signedAttrs = Platform.CreateHashtable();
+ signedAttrs = new Dictionary<DerObjectIdentifier, object>();
}
//try
diff --git a/crypto/src/util/collections/EnumerableProxy.cs b/crypto/src/util/collections/EnumerableProxy.cs
index 196b4d9df..36f78d342 100644
--- a/crypto/src/util/collections/EnumerableProxy.cs
+++ b/crypto/src/util/collections/EnumerableProxy.cs
@@ -37,12 +37,12 @@ namespace Org.BouncyCastle.Utilities.Collections
m_inner = inner;
}
- IEnumerator IEnumerable.GetEnumerator()
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return m_inner.GetEnumerator();
}
- IEnumerator<T> IEnumerable<T>.GetEnumerator()
+ public IEnumerator<T> GetEnumerator()
{
return m_inner.GetEnumerator();
}
diff --git a/crypto/src/util/collections/ReadOnlyList.cs b/crypto/src/util/collections/ReadOnlyList.cs
index 70103022f..707c73bfd 100644
--- a/crypto/src/util/collections/ReadOnlyList.cs
+++ b/crypto/src/util/collections/ReadOnlyList.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.Collections.Generic;
namespace Org.BouncyCastle.Utilities.Collections
@@ -13,7 +12,7 @@ namespace Org.BouncyCastle.Utilities.Collections
set { throw new NotSupportedException(); }
}
- IEnumerator IEnumerable.GetEnumerator()
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
diff --git a/crypto/src/util/collections/UnmodifiableDictionary.cs b/crypto/src/util/collections/UnmodifiableDictionary.cs
index 0bdf70ad7..3b4ba22ae 100644
--- a/crypto/src/util/collections/UnmodifiableDictionary.cs
+++ b/crypto/src/util/collections/UnmodifiableDictionary.cs
@@ -26,7 +26,7 @@ namespace Org.BouncyCastle.Utilities.Collections
public abstract int Count { get; }
- IEnumerator IEnumerable.GetEnumerator()
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
|