diff options
Diffstat (limited to 'crypto/src/security/ParameterUtilities.cs')
-rw-r--r-- | crypto/src/security/ParameterUtilities.cs | 53 |
1 files changed, 19 insertions, 34 deletions
diff --git a/crypto/src/security/ParameterUtilities.cs b/crypto/src/security/ParameterUtilities.cs index fdb8d86be..5a407fc9d 100644 --- a/crypto/src/security/ParameterUtilities.cs +++ b/crypto/src/security/ParameterUtilities.cs @@ -1,5 +1,5 @@ using System; -using System.Collections; +using System.Collections.Generic; using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.CryptoPro; @@ -12,18 +12,16 @@ using Org.BouncyCastle.Asn1.Oiw; using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Crypto.Parameters; -using Org.BouncyCastle.Utilities; +using Org.BouncyCastle.Utilities.Collections; namespace Org.BouncyCastle.Security { - public sealed class ParameterUtilities + public static class ParameterUtilities { - private ParameterUtilities() - { - } - - private static readonly IDictionary algorithms = Platform.CreateHashtable(); - private static readonly IDictionary basicIVSizes = Platform.CreateHashtable(); + private static readonly IDictionary<string, string> Algorithms = + new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); + private static readonly IDictionary<string, int> BasicIVSizes = + new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase); static ParameterUtilities() { @@ -164,15 +162,13 @@ namespace Org.BouncyCastle.Security // "RIJNDAEL", "SKIPJACK", "TWOFISH" } - private static void AddAlgorithm( - string canonicalName, - params object[] aliases) + private static void AddAlgorithm(string canonicalName, params object[] aliases) { - algorithms[canonicalName] = canonicalName; + Algorithms[canonicalName] = canonicalName; foreach (object alias in aliases) { - algorithms[alias.ToString()] = canonicalName; + Algorithms[alias.ToString()] = canonicalName; } } @@ -180,26 +176,21 @@ namespace Org.BouncyCastle.Security { foreach (string algorithm in algorithms) { - basicIVSizes.Add(algorithm, size); + BasicIVSizes.Add(algorithm, size); } } - public static string GetCanonicalAlgorithmName( - string algorithm) + public static string GetCanonicalAlgorithmName(string algorithm) { - return (string) algorithms[Platform.ToUpperInvariant(algorithm)]; + return CollectionUtilities.GetValueOrNull(Algorithms, algorithm); } - public static KeyParameter CreateKeyParameter( - DerObjectIdentifier algOid, - byte[] keyBytes) + public static KeyParameter CreateKeyParameter(DerObjectIdentifier algOid, byte[] keyBytes) { return CreateKeyParameter(algOid.Id, keyBytes, 0, keyBytes.Length); } - public static KeyParameter CreateKeyParameter( - string algorithm, - byte[] keyBytes) + public static KeyParameter CreateKeyParameter(string algorithm, byte[] keyBytes) { return CreateKeyParameter(algorithm, keyBytes, 0, keyBytes.Length); } @@ -220,7 +211,7 @@ namespace Org.BouncyCastle.Security int length) { if (algorithm == null) - throw new ArgumentNullException("algorithm"); + throw new ArgumentNullException(nameof(algorithm)); string canonical = GetCanonicalAlgorithmName(algorithm); @@ -348,9 +339,7 @@ namespace Org.BouncyCastle.Security return cp; } - private static Asn1OctetString CreateIVOctetString( - SecureRandom random, - int ivLength) + private static Asn1OctetString CreateIVOctetString(SecureRandom random, int ivLength) { return new DerOctetString(CreateIV(random, ivLength)); } @@ -360,13 +349,9 @@ namespace Org.BouncyCastle.Security return SecureRandom.GetNextBytes(random, ivLength); } - private static int FindBasicIVSize( - string canonicalName) + private static int FindBasicIVSize(string canonicalName) { - if (!basicIVSizes.Contains(canonicalName)) - return -1; - - return (int)basicIVSizes[canonicalName]; + return BasicIVSizes.TryGetValue(canonicalName, out int keySize) ? keySize : -1; } } } |