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

non-generic overload for TArrayUtilities.Contains

Ugochukwu Mmaduekwe 17 часов назад
Родитель
Сommit
6390ddbe02

+ 1 - 1
CryptoLib/src/Crypto/Generators/ClpRsaGenerators.pas

@@ -110,7 +110,7 @@ var
   LEIsKnownOddPrime: Boolean;
 begin
   LEIsKnownOddPrime := (AE.BitLength <= FSpecialEBits) and
-    (TArrayUtilities.Contains<Int32>(FSpecialEValues, AE.Int32Value));
+    (TArrayUtilities.Contains(FSpecialEValues, AE.Int32Value));
   while True do
   begin
     LP := TBigInteger.Create(ABitLength, 1, FParam.Random);

+ 23 - 5
CryptoLib/src/GeneralUtilities/ClpArrayUtilities.pas

@@ -38,8 +38,8 @@ type
 
   public
 
-    class function AreEqual<T>(const A, B: TCryptoLibGenericArray<T>;
-      const AComparer: IEqualityComparer<T> = nil): Boolean; overload; static;
+   (* class function AreEqual<T>(const A, B: TCryptoLibGenericArray<T>;
+      const AComparer: IEqualityComparer<T> = nil): Boolean; overload; static; *)
 
     class function AreEqual(const A, B: TCryptoLibByteArray): Boolean; overload; static;
     class function AreEqual(const A, B: TCryptoLibInt32Array): Boolean; overload; static;
@@ -89,8 +89,11 @@ type
 
     class function NoZeroes(const AData: TCryptoLibByteArray): Boolean; static;
 
-    class function Contains<T>(const AData: TCryptoLibGenericArray<T>;
-      const AValue: T; const AComparer: IEqualityComparer<T> = nil): Boolean; static;
+   (* class function Contains<T>(const AData: TCryptoLibGenericArray<T>;
+      const AValue: T; const AComparer: IEqualityComparer<T> = nil): Boolean; overload; static; *)
+
+    class function Contains(const AData: TCryptoLibInt32Array;
+      const AValue: Int32): Boolean; overload; static;
 
     class function Map<T, TResult>(const AData: TCryptoLibGenericArray<T>;
       const AFunc: TFunc<T, TResult>): TCryptoLibGenericArray<TResult>; static;
@@ -129,6 +132,7 @@ begin
   end;
 end;
 
+(*
 class function TArrayUtilities.AreEqual<T>(const A, B: TCryptoLibGenericArray<T>;
   const AComparer: IEqualityComparer<T>): Boolean;
 var
@@ -145,7 +149,7 @@ begin
     if not LComparer.Equals(A[I], B[I]) then
       Exit(False);
   Result := True;
-end;
+end; *)
 
 class function TArrayUtilities.AreEqual(const A, B: TCryptoLibByteArray): Boolean;
 var
@@ -413,6 +417,7 @@ begin
     Result[I] := ACloneFunc(AData[I]);
 end;
 
+(*
 class function TArrayUtilities.Contains<T>(const AData: TCryptoLibGenericArray<T>;
   const AValue: T; const AComparer: IEqualityComparer<T>): Boolean;
 var
@@ -429,6 +434,19 @@ begin
     if LComparer.Equals(AData[I], AValue) then
       Exit(True);
   Result := False;
+end; *)
+
+class function TArrayUtilities.Contains(const AData: TCryptoLibInt32Array;
+  const AValue: Int32): Boolean;
+var
+  I: Int32;
+begin
+  if (AData = nil) or (System.Length(AData) = 0) then
+    Exit(False);
+  for I := System.Low(AData) to System.High(AData) do
+    if AData[I] = AValue then
+      Exit(True);
+  Result := False;
 end;
 
 class function TArrayUtilities.Map<T, TResult>(const AData: TCryptoLibGenericArray<T>;