Просмотр исходного кода

add comparers to curves dictionaries

Ugochukwu Mmaduekwe 2 недель назад
Родитель
Сommit
29a5e67c78

+ 5 - 5
CryptoLib.Tests/Delphi.Tests/CryptoLib.Tests.dpr

@@ -591,6 +591,11 @@ uses
   RSADigestSignerTests in '..\src\Crypto\RSADigestSignerTests.pas',
   ISO9796Tests in '..\src\Crypto\ISO9796Tests.pas',
   PssTests in '..\src\Crypto\PssTests.pas',
+  PrivateKeyInfoTests in '..\src\Asn1\PrivateKeyInfoTests.pas',
+  IPAddressUtilitiesTests in '..\src\Utils\Net\IPAddressUtilitiesTests.pas',
+  PemReaderTests in '..\src\Utils\Pem\PemReaderTests.pas',
+  X931SignerTests in '..\src\Crypto\X931SignerTests.pas',
+  CertificateTests in '..\src\Asn1\X509\CertificateTests.pas',
   GeneralNameTests in '..\src\Asn1\X509\GeneralNameTests.pas',
   KeyUsageTests in '..\src\Asn1\X509\KeyUsageTests.pas',
   SubjectKeyIdentifierTests in '..\src\Asn1\X509\SubjectKeyIdentifierTests.pas',
@@ -598,12 +603,7 @@ uses
   X509ExtensionsTests in '..\src\Asn1\X509\X509ExtensionsTests.pas',
   X509NameTests in '..\src\Asn1\X509\X509NameTests.pas',
   Pkcs10CertRequestTests in '..\src\Asn1\Pkcs\Pkcs10CertRequestTests.pas',
-  PrivateKeyInfoTests in '..\src\Asn1\PrivateKeyInfoTests.pas',
-  IPAddressUtilitiesTests in '..\src\Utils\Net\IPAddressUtilitiesTests.pas',
-  PemReaderTests in '..\src\Utils\Pem\PemReaderTests.pas',
-  CertificateTests in '..\src\Asn1\X509\CertificateTests.pas',
   DeltaCertificateTests in '..\src\Asn1\X509\DeltaCertificateTests.pas',
-  X931SignerTests in '..\src\Crypto\X931SignerTests.pas',
   CryptoLibTestBase in '..\src\CryptoLibTestBase.pas';
 
 begin

+ 3 - 2
CryptoLib/src/Asn1/Nist/ClpNistNamedCurves.pas

@@ -24,6 +24,7 @@ interface
 uses
   SysUtils,
   Generics.Collections,
+  ClpCryptoLibComparers,
   ClpIX9ECParameters,
   ClpSecNamedCurves,
   ClpCryptoLibTypes,
@@ -144,8 +145,8 @@ end;
 
 class procedure TNistNamedCurves.Boot;
 begin
-  FobjIds := TDictionary<String, IDerObjectIdentifier>.Create();
-  Fnames := TDictionary<IDerObjectIdentifier, String>.Create();
+  FobjIds := TDictionary<String, IDerObjectIdentifier>.Create(TCryptoLibComparers.OrdinalIgnoreCaseEqualityComparer);
+  Fnames := TDictionary<IDerObjectIdentifier, String>.Create(TCryptoLibComparers.OidEqualityComparer);
 
   DefineCurveAlias('B-163', TSecObjectIdentifiers.SecT163r2);
   DefineCurveAlias('B-233', TSecObjectIdentifiers.SecT233r1);

+ 4 - 3
CryptoLib/src/Asn1/Sec/ClpSecNamedCurves.pas

@@ -24,6 +24,7 @@ interface
 uses
   SysUtils,
   Generics.Collections,
+  ClpCryptoLibComparers,
   ClpEncoders,
   ClpGlvTypeBParameters,
   ClpIGlvTypeBEndomorphism,
@@ -844,9 +845,9 @@ end;
 
 class procedure TSecNamedCurves.Boot;
 begin
-  FobjIds := TDictionary<String, IDerObjectIdentifier>.Create();
-  Fnames := TDictionary<IDerObjectIdentifier, String>.Create();
-  Fcurves := TDictionary<IDerObjectIdentifier, IX9ECParametersHolder>.Create();
+  FobjIds := TDictionary<String, IDerObjectIdentifier>.Create(TCryptoLibComparers.OrdinalIgnoreCaseEqualityComparer);
+  Fnames := TDictionary<IDerObjectIdentifier, String>.Create(TCryptoLibComparers.OidEqualityComparer);
+  Fcurves := TDictionary<IDerObjectIdentifier, IX9ECParametersHolder>.Create(TCryptoLibComparers.OidEqualityComparer);
 
   DefineCurve('secp112r1', TSecObjectIdentifiers.SecP112r1,
     TSecp112r1Holder.Instance);

+ 4 - 3
CryptoLib/src/Asn1/TeleTrust/ClpTeleTrusTNamedCurves.pas

@@ -24,6 +24,7 @@ interface
 uses
   SysUtils,
   Generics.Collections,
+  ClpCryptoLibComparers,
   ClpEncoders,
   ClpTeleTrusTObjectIdentifiers,
   ClpCryptoLibTypes,
@@ -418,9 +419,9 @@ end;
 
 class procedure TTeleTrusTNamedCurves.Boot;
 begin
-  FobjIds := TDictionary<String, IDerObjectIdentifier>.Create();
-  Fnames := TDictionary<IDerObjectIdentifier, String>.Create();
-  Fcurves := TDictionary<IDerObjectIdentifier, IX9ECParametersHolder>.Create();
+  FobjIds := TDictionary<String, IDerObjectIdentifier>.Create(TCryptoLibComparers.OrdinalIgnoreCaseEqualityComparer);
+  Fnames := TDictionary<IDerObjectIdentifier, String>.Create(TCryptoLibComparers.OidEqualityComparer);
+  Fcurves := TDictionary<IDerObjectIdentifier, IX9ECParametersHolder>.Create(TCryptoLibComparers.OidEqualityComparer);
 
   DefineCurve('brainpoolP160r1', TTeleTrusTObjectIdentifiers.BrainpoolP160R1,
     TBrainpoolP160r1Holder.Instance);

+ 5 - 4
CryptoLib/src/Crypto/EC/ClpCustomNamedCurves.pas

@@ -24,6 +24,7 @@ interface
 uses
   SysUtils,
   Generics.Collections,
+  ClpCryptoLibComparers,
   ClpEncoders,
   ClpGlvTypeBParameters,
   ClpIGlvTypeBEndomorphism,
@@ -359,11 +360,11 @@ end;
 
 class procedure TCustomNamedCurves.Boot;
 begin
-  FnameToCurve := TDictionary<String, IX9ECParametersHolder>.Create();
-  FnameToOid := TDictionary<String, IDerObjectIdentifier>.Create();
+  FnameToCurve := TDictionary<String, IX9ECParametersHolder>.Create(TCryptoLibComparers.OrdinalIgnoreCaseEqualityComparer);
+  FnameToOid := TDictionary<String, IDerObjectIdentifier>.Create(TCryptoLibComparers.OrdinalIgnoreCaseEqualityComparer);
   FoidToCurve := TDictionary<IDerObjectIdentifier,
-    IX9ECParametersHolder>.Create();
-  FoidToName := TDictionary<IDerObjectIdentifier, String>.Create();
+    IX9ECParametersHolder>.Create(TCryptoLibComparers.OidEqualityComparer);
+  FoidToName := TDictionary<IDerObjectIdentifier, String>.Create(TCryptoLibComparers.OidEqualityComparer);
 
   Fnames := TList<String>.Create();