diff --git a/crypto/src/asn1/x500/style/IetfUtilities.cs b/crypto/src/asn1/x500/style/IetfUtilities.cs
index e269f418d..72ed08dd3 100644
--- a/crypto/src/asn1/x500/style/IetfUtilities.cs
+++ b/crypto/src/asn1/x500/style/IetfUtilities.cs
@@ -93,15 +93,15 @@ namespace Org.BouncyCastle.Asn1.X500.Style
public static string Canonicalize(string s)
{
- string value = Platform.ToLowerInvariant(s);
+ string value = s.ToLowerInvariant();
if (value.Length > 0 && value[0] == '#')
{
Asn1Object obj = DecodeObject(value);
- if (obj is IAsn1String)
+ if (obj is IAsn1String str)
{
- value = Platform.ToLowerInvariant(((IAsn1String)obj).GetString());
+ value = str.GetString().ToLowerInvariant();
}
}
diff --git a/crypto/src/asn1/x509/TBSCertList.cs b/crypto/src/asn1/x509/TBSCertList.cs
index aef41d440..ab847d563 100644
--- a/crypto/src/asn1/x509/TBSCertList.cs
+++ b/crypto/src/asn1/x509/TBSCertList.cs
@@ -263,11 +263,7 @@ namespace Org.BouncyCastle.Asn1.X509
public IEnumerable<CrlEntry> GetRevokedCertificateEnumeration()
{
if (revokedCertificates == null)
- {
- // TODO
- //return EmptyEnumerable.Instance;
return new List<CrlEntry>(0);
- }
return new RevokedCertificatesEnumeration(revokedCertificates);
}
diff --git a/crypto/src/cms/CMSEnvelopedDataStreamGenerator.cs b/crypto/src/cms/CMSEnvelopedDataStreamGenerator.cs
index 261f67a15..90ecf0748 100644
--- a/crypto/src/cms/CMSEnvelopedDataStreamGenerator.cs
+++ b/crypto/src/cms/CMSEnvelopedDataStreamGenerator.cs
@@ -250,51 +250,40 @@ namespace Org.BouncyCastle.Cms
protected override void Dispose(bool disposing)
{
if (disposing)
- {
- Platform.Dispose(_out);
-
- // TODO Parent context(s) should really be closed explicitly
-
- _eiGen.Close();
-
- if (_outer.unprotectedAttributeGenerator != null)
- {
- Asn1.Cms.AttributeTable attrTable = _outer.unprotectedAttributeGenerator.GetAttributes(Platform.CreateHashtable());
-
- Asn1Set unprotectedAttrs = new BerSet(attrTable.ToAsn1EncodableVector());
-
- _envGen.AddObject(new DerTaggedObject(false, 1, unprotectedAttrs));
- }
-
- _envGen.Close();
- _cGen.Close();
+ {
+ ImplClose();
}
base.Dispose(disposing);
}
#else
public override void Close()
{
- Platform.Dispose(_out);
+ ImplClose();
+ base.Close();
+ }
+#endif
+
+ private void ImplClose()
+ {
+ Platform.Dispose(_out);
- // TODO Parent context(s) should really be closed explicitly
+ // TODO Parent context(s) should really be closed explicitly
- _eiGen.Close();
+ _eiGen.Close();
- if (_outer.unprotectedAttributeGenerator != null)
- {
+ if (_outer.unprotectedAttributeGenerator != null)
+ {
Asn1.Cms.AttributeTable attrTable = _outer.unprotectedAttributeGenerator.GetAttributes(
new Dictionary<CmsAttributeTableParameter, object>());
- Asn1Set unprotectedAttrs = new BerSet(attrTable.ToAsn1EncodableVector());
+ Asn1Set unprotectedAttrs = new BerSet(attrTable.ToAsn1EncodableVector());
- _envGen.AddObject(new DerTaggedObject(false, 1, unprotectedAttrs));
- }
+ _envGen.AddObject(new DerTaggedObject(false, 1, unprotectedAttrs));
+ }
_envGen.Close();
_cGen.Close();
- base.Close();
}
-#endif
}
}
}
diff --git a/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs b/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs
index e1bec484a..d8b668c4e 100644
--- a/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs
+++ b/crypto/src/cms/DefaultSignedAttributeTableGenerator.cs
@@ -47,7 +47,7 @@ namespace Org.BouncyCastle.Cms
*
* @param parameters source parameters for table generation.
*
- * @return a filled in Hashtable of attributes.
+ * @return a filled in Dictionary of attributes.
*/
protected virtual IDictionary<DerObjectIdentifier, object> CreateStandardAttributeTable(
IDictionary<CmsAttributeTableParameter, object> parameters)
diff --git a/crypto/src/crypto/BufferedIesCipher.cs b/crypto/src/crypto/BufferedIesCipher.cs
index 6dab4ae33..293c15c92 100644
--- a/crypto/src/crypto/BufferedIesCipher.cs
+++ b/crypto/src/crypto/BufferedIesCipher.cs
@@ -36,7 +36,7 @@ namespace Org.BouncyCastle.Crypto
this.forEncryption = forEncryption;
// TODO
- throw Platform.CreateNotImplementedException("IES");
+ throw new NotImplementedException("IES");
}
public override int GetBlockSize()
diff --git a/crypto/src/math/ec/ECFieldElement.cs b/crypto/src/math/ec/ECFieldElement.cs
index 774dfb9f1..a96556482 100644
--- a/crypto/src/math/ec/ECFieldElement.cs
+++ b/crypto/src/math/ec/ECFieldElement.cs
@@ -262,7 +262,7 @@ namespace Org.BouncyCastle.Math.EC
return this;
if (!q.TestBit(0))
- throw Platform.CreateNotImplementedException("even value of q");
+ throw new NotImplementedException("even value of q");
if (q.TestBit(1)) // q == 4m + 3
{
diff --git a/crypto/src/openpgp/PgpPublicKeyRingBundle.cs b/crypto/src/openpgp/PgpPublicKeyRingBundle.cs
index 0de7e335e..473d0ae5b 100644
--- a/crypto/src/openpgp/PgpPublicKeyRingBundle.cs
+++ b/crypto/src/openpgp/PgpPublicKeyRingBundle.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using Org.BouncyCastle.Utilities;
@@ -86,47 +87,31 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp
}
/// <summary>Allow enumeration of the key rings associated with the passed in userId.</summary>
- /// <param name="userId">The user ID to be matched.</param>
+ /// <param name="userID">The user ID to be matched.</param>
/// <param name="matchPartial">If true, userId need only be a substring of an actual ID string to match.</param>
/// <param name="ignoreCase">If true, case is ignored in user ID comparisons.</param>
/// <returns>An <c>IEnumerable</c> of key rings which matched (possibly none).</returns>
- public IEnumerable<PgpPublicKeyRing> GetKeyRings(string userId, bool matchPartial, bool ignoreCase)
+ public IEnumerable<PgpPublicKeyRing> GetKeyRings(string userID, bool matchPartial, bool ignoreCase)
{
- var rings = new List<PgpPublicKeyRing>();
-
- if (ignoreCase)
- {
- userId = Platform.ToUpperInvariant(userId);
- }
+ var compareInfo = CultureInfo.InvariantCulture.CompareInfo;
+ var compareOptions = ignoreCase ? CompareOptions.OrdinalIgnoreCase : CompareOptions.Ordinal;
foreach (PgpPublicKeyRing pubRing in GetKeyRings())
{
foreach (string nextUserID in pubRing.GetPublicKey().GetUserIds())
{
- string next = nextUserID;
- if (ignoreCase)
- {
- next = Platform.ToUpperInvariant(next);
- }
-
if (matchPartial)
{
- if (Platform.IndexOf(next, userId) > -1)
- {
- rings.Add(pubRing);
- }
+ if (compareInfo.IndexOf(nextUserID, userID, compareOptions) >= 0)
+ yield return pubRing;
}
else
{
- if (next.Equals(userId))
- {
- rings.Add(pubRing);
- }
+ if (compareInfo.Compare(nextUserID, userID, compareOptions) == 0)
+ yield return pubRing;
}
}
}
-
- return CollectionUtilities.Proxy(rings);
}
/// <summary>Return the PGP public key associated with the given key id.</summary>
diff --git a/crypto/src/openpgp/PgpSecretKeyRingBundle.cs b/crypto/src/openpgp/PgpSecretKeyRingBundle.cs
index 994f4f718..af182de9c 100644
--- a/crypto/src/openpgp/PgpSecretKeyRingBundle.cs
+++ b/crypto/src/openpgp/PgpSecretKeyRingBundle.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using Org.BouncyCastle.Utilities;
@@ -90,43 +91,27 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp
/// <param name="matchPartial">If true, userId need only be a substring of an actual ID string to match.</param>
/// <param name="ignoreCase">If true, case is ignored in user ID comparisons.</param>
/// <returns>An <c>IEnumerable</c> of key rings which matched (possibly none).</returns>
- public IEnumerable<PgpSecretKeyRing> GetKeyRings(string userId, bool matchPartial, bool ignoreCase)
+ public IEnumerable<PgpSecretKeyRing> GetKeyRings(string userID, bool matchPartial, bool ignoreCase)
{
- var rings = new List<PgpSecretKeyRing>();
-
- if (ignoreCase)
- {
- userId = Platform.ToUpperInvariant(userId);
- }
+ var compareInfo = CultureInfo.InvariantCulture.CompareInfo;
+ var compareOptions = ignoreCase ? CompareOptions.OrdinalIgnoreCase : CompareOptions.Ordinal;
foreach (PgpSecretKeyRing secRing in GetKeyRings())
{
foreach (string nextUserID in secRing.GetSecretKey().UserIds)
{
- string next = nextUserID;
- if (ignoreCase)
- {
- next = Platform.ToUpperInvariant(next);
- }
-
if (matchPartial)
{
- if (Platform.IndexOf(next, userId) > -1)
- {
- rings.Add(secRing);
- }
+ if (compareInfo.IndexOf(nextUserID, userID, compareOptions) >= 0)
+ yield return secRing;
}
else
{
- if (next.Equals(userId))
- {
- rings.Add(secRing);
- }
+ if (compareInfo.Compare(nextUserID, userID, compareOptions) == 0)
+ yield return secRing;
}
}
}
-
- return CollectionUtilities.Proxy(rings);
}
/// <summary>Return the PGP secret key associated with the given key id.</summary>
diff --git a/crypto/src/openssl/MiscPemGenerator.cs b/crypto/src/openssl/MiscPemGenerator.cs
index 294cf0afb..ada0b84ed 100644
--- a/crypto/src/openssl/MiscPemGenerator.cs
+++ b/crypto/src/openssl/MiscPemGenerator.cs
@@ -180,7 +180,7 @@ namespace Org.BouncyCastle.OpenSsl
}
- string dekAlgName = Platform.ToUpperInvariant(algorithm);
+ string dekAlgName = algorithm.ToUpperInvariant();
// Note: For backward compatibility
if (dekAlgName == "DESEDE")
diff --git a/crypto/src/openssl/Pkcs8Generator.cs b/crypto/src/openssl/Pkcs8Generator.cs
index d03ea08d2..0674cce15 100644
--- a/crypto/src/openssl/Pkcs8Generator.cs
+++ b/crypto/src/openssl/Pkcs8Generator.cs
@@ -1,13 +1,7 @@
using System;
-using System.Collections;
-using System.IO;
-using Org.BouncyCastle.Asn1;
-using Org.BouncyCastle.Asn1.Nist;
using Org.BouncyCastle.Asn1.Pkcs;
-using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Crypto;
-using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.Utilities.IO.Pem;
diff --git a/crypto/src/pkcs/Pkcs10CertificationRequest.cs b/crypto/src/pkcs/Pkcs10CertificationRequest.cs
index b4afceed9..d462fb4db 100644
--- a/crypto/src/pkcs/Pkcs10CertificationRequest.cs
+++ b/crypto/src/pkcs/Pkcs10CertificationRequest.cs
@@ -389,7 +389,7 @@ namespace Org.BouncyCastle.Pkcs
if (Platform.EndsWith(signature.AlgorithmName, "MGF1"))
{
- throw Platform.CreateNotImplementedException("signature algorithm with MGF1");
+ throw new NotImplementedException("signature algorithm with MGF1");
// try
// {
diff --git a/crypto/src/pkcs/PrivateKeyInfoFactory.cs b/crypto/src/pkcs/PrivateKeyInfoFactory.cs
index e138141e3..7f52a1d1b 100644
--- a/crypto/src/pkcs/PrivateKeyInfoFactory.cs
+++ b/crypto/src/pkcs/PrivateKeyInfoFactory.cs
@@ -158,7 +158,7 @@ namespace Org.BouncyCastle.Pkcs
if (priv.AlgorithmName == "ECGOST3410")
{
if (priv.PublicKeyParamSet == null)
- throw Platform.CreateNotImplementedException("Not a CryptoPro parameter set");
+ throw new NotImplementedException("Not a CryptoPro parameter set");
Gost3410PublicKeyAlgParameters gostParams = new Gost3410PublicKeyAlgParameters(
priv.PublicKeyParamSet, CryptoProObjectIdentifiers.GostR3411x94CryptoProParamSet);
@@ -195,7 +195,7 @@ namespace Org.BouncyCastle.Pkcs
Gost3410PrivateKeyParameters _key = (Gost3410PrivateKeyParameters)privateKey;
if (_key.PublicKeyParamSet == null)
- throw Platform.CreateNotImplementedException("Not a CryptoPro parameter set");
+ throw new NotImplementedException("Not a CryptoPro parameter set");
byte[] keyEnc = _key.X.ToByteArrayUnsigned();
byte[] keyBytes = new byte[keyEnc.Length];
diff --git a/crypto/src/pkix/PkixCertPathBuilderResult.cs b/crypto/src/pkix/PkixCertPathBuilderResult.cs
index f8003032f..639009a37 100644
--- a/crypto/src/pkix/PkixCertPathBuilderResult.cs
+++ b/crypto/src/pkix/PkixCertPathBuilderResult.cs
@@ -34,12 +34,12 @@ namespace Org.BouncyCastle.Pkix
public override string ToString()
{
- StringBuilder s = new StringBuilder();
- s.Append("SimplePKIXCertPathBuilderResult: [\n");
- s.Append(" Certification Path: ").Append(CertPath).Append('\n');
- s.Append(" Trust Anchor: ").Append(this.TrustAnchor.TrustedCert.IssuerDN.ToString()).Append('\n');
- s.Append(" Subject Public Key: ").Append(this.SubjectPublicKey).Append("\n]");
- return s.ToString();
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("SimplePKIXCertPathBuilderResult: [");
+ sb.Append(" Certification Path: ").AppendLine(CertPath.ToString());
+ sb.Append(" Trust Anchor: ").AppendLine(TrustAnchor.TrustedCert.IssuerDN.ToString());
+ sb.Append(" Subject Public Key: ").AppendLine(SubjectPublicKey.ToString());
+ return sb.ToString();
}
}
}
diff --git a/crypto/src/pkix/PkixCertPathValidatorResult.cs b/crypto/src/pkix/PkixCertPathValidatorResult.cs
index e316128b0..7df3eab21 100644
--- a/crypto/src/pkix/PkixCertPathValidatorResult.cs
+++ b/crypto/src/pkix/PkixCertPathValidatorResult.cs
@@ -57,13 +57,12 @@ namespace Org.BouncyCastle.Pkix
public override string ToString()
{
- StringBuilder sB = new StringBuilder();
- sB.Append("PKIXCertPathValidatorResult: [ \n");
- sB.Append(" Trust Anchor: ").Append(this.TrustAnchor).Append('\n');
- sB.Append(" Policy Tree: ").Append(this.PolicyTree).Append('\n');
- sB.Append(" Subject Public Key: ").Append(this.SubjectPublicKey).Append("\n]");
- return sB.ToString();
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("PKIXCertPathValidatorResult: [");
+ sb.Append(" Trust Anchor: ").AppendLine(TrustAnchor.ToString());
+ sb.Append(" Policy Tree: ").AppendLine(PolicyTree.ToString());
+ sb.Append(" Subject Public Key: ").AppendLine(SubjectPublicKey.ToString());
+ return sb.ToString();
}
-
}
}
diff --git a/crypto/src/pkix/PkixCertPathValidatorUtilities.cs b/crypto/src/pkix/PkixCertPathValidatorUtilities.cs
index 80ae2f83d..fccd0b3c5 100644
--- a/crypto/src/pkix/PkixCertPathValidatorUtilities.cs
+++ b/crypto/src/pkix/PkixCertPathValidatorUtilities.cs
@@ -259,7 +259,7 @@ namespace Org.BouncyCastle.Pkix
// baseDN = nsull;
}
- throw Platform.CreateNotImplementedException("LDAP cert/CRL stores");
+ throw new NotImplementedException("LDAP cert/CRL stores");
// use all purpose parameters
//X509LDAPCertStoreParameters ldapParams = new X509LDAPCertStoreParameters.Builder(
diff --git a/crypto/src/pkix/PkixNameConstraintValidator.cs b/crypto/src/pkix/PkixNameConstraintValidator.cs
index e3e8c2fa0..5ad4de6f8 100644
--- a/crypto/src/pkix/PkixNameConstraintValidator.cs
+++ b/crypto/src/pkix/PkixNameConstraintValidator.cs
@@ -495,18 +495,14 @@ namespace Org.BouncyCastle.Pkix
// a particular mailbox
if (constraint.IndexOf('@') != -1)
{
- if (Platform.ToUpperInvariant(email).Equals(Platform.ToUpperInvariant(constraint)))
- {
+ if (string.Equals(email, constraint, StringComparison.OrdinalIgnoreCase))
return true;
- }
}
// on particular host
- else if (!(constraint[0].Equals('.')))
+ else if (constraint[0] != '.')
{
- if (Platform.ToUpperInvariant(sub).Equals(Platform.ToUpperInvariant(constraint)))
- {
+ if (string.Equals(sub, constraint, StringComparison.OrdinalIgnoreCase))
return true;
- }
}
// address in sub domain
else if (WithinDomain(sub, constraint))
@@ -1852,9 +1848,8 @@ namespace Org.BouncyCastle.Pkix
private static void Append(StringBuilder sb, string name, object value)
{
sb.Append(name);
- sb.Append(":\n");
- sb.Append(value);
- sb.Append('\n');
+ sb.AppendLine(":");
+ sb.AppendLine(value.ToString());
}
}
}
diff --git a/crypto/src/tls/CertificateStatus.cs b/crypto/src/tls/CertificateStatus.cs
index 51f488fd6..7ff11f729 100644
--- a/crypto/src/tls/CertificateStatus.cs
+++ b/crypto/src/tls/CertificateStatus.cs
@@ -4,7 +4,6 @@ using System.IO;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.Ocsp;
-using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Tls
{
@@ -165,8 +164,7 @@ namespace Org.BouncyCastle.Tls
}
}
- // Match IList capacity to actual size
- response = Platform.CreateArrayList(ocspResponseList);
+ response = ocspResponseList;
break;
}
default:
diff --git a/crypto/src/tls/ProtocolVersion.cs b/crypto/src/tls/ProtocolVersion.cs
index e9c08e8cd..fd32848b0 100644
--- a/crypto/src/tls/ProtocolVersion.cs
+++ b/crypto/src/tls/ProtocolVersion.cs
@@ -412,7 +412,7 @@ namespace Org.BouncyCastle.Tls
CheckUint8(minor);
int v = (major << 8) | minor;
- string hex = Platform.ToUpperInvariant(Convert.ToString(0x10000 | v, 16).Substring(1));
+ string hex = Convert.ToString(0x10000 | v, 16).Substring(1).ToUpperInvariant();
return new ProtocolVersion(v, prefix + " 0x" + hex);
}
}
diff --git a/crypto/src/tls/SignatureScheme.cs b/crypto/src/tls/SignatureScheme.cs
index ed8e3c21b..56bc52d89 100644
--- a/crypto/src/tls/SignatureScheme.cs
+++ b/crypto/src/tls/SignatureScheme.cs
@@ -199,7 +199,7 @@ namespace Org.BouncyCastle.Tls
public static string GetText(int signatureScheme)
{
- string hex = Platform.ToUpperInvariant(Convert.ToString(signatureScheme, 16));
+ string hex = Convert.ToString(signatureScheme, 16).ToUpperInvariant();
return GetName(signatureScheme) + "(0x" + hex + ")";
}
|