Переглянути джерело

some more fpc related fixes

Ugochukwu Mmaduekwe 1 день тому
батько
коміт
0791b704d6

+ 14 - 90
CryptoLib/src/Misc/ClpCryptoLibTypes.pas

@@ -25,10 +25,7 @@ uses
   SysUtils;
 
 type
-
-  PIInterface = ^IInterface;
 {$IFDEF FPC}
-  PUInt64 = ^UInt64;
 
   TProc = reference to procedure;
   TProc<T> = reference to procedure(Arg1: T);
@@ -93,148 +90,75 @@ type
   /// </summary>
   TCryptoLibMatrixGenericArray<T> = array of TCryptoLibGenericArray<T>;
 
-{$IFDEF DELPHIXE_UP}
-  /// <summary>
-  /// Represents a dynamic array of Boolean.
-  /// </summary>
-  TCryptoLibBooleanArray = TArray<Boolean>;
-
-  /// <summary>
-  /// Represents a dynamic array of ShortInt.
-  /// </summary>
-  TCryptoLibShortIntArray = TArray<ShortInt>;
-
-  /// <summary>
-  /// Represents a dynamic array of Int32.
-  /// </summary>
-  TCryptoLibInt32Array = TArray<Int32>;
-
-  /// <summary>
-  /// Represents a dynamic array of Int64.
-  /// </summary>
-  TCryptoLibInt64Array = TArray<Int64>;
-
-  /// <summary>
-  /// Represents a dynamic array of UInt16.
-  /// </summary>
-  TCryptoLibUInt16Array = TArray<UInt16>;
-
-  /// <summary>
-  /// Represents a dynamic array of UInt32.
-  /// </summary>
-  TCryptoLibUInt32Array = TArray<UInt32>;
-
-  /// <summary>
-  /// Represents a dynamic array of UInt64.
-  /// </summary>
-  TCryptoLibUInt64Array = TArray<UInt64>;
-
-  /// <summary>
-  /// Represents a dynamic array of String.
-  /// </summary>
-  TCryptoLibStringArray = TArray<String>;
-
-  /// <summary>
-  /// Represents a dynamic array of Char.
-  /// </summary>
-  TCryptoLibCharArray = TArray<Char>;
-
-  /// <summary>
-  /// Represents a dynamic array of array of ShortInt.
-  /// </summary>
-  TCryptoLibMatrixShortIntArray = TArray<TCryptoLibShortIntArray>;
-
-  /// <summary>
-  /// Represents a dynamic array of array of byte.
-  /// </summary>
-  TCryptoLibMatrixByteArray = TArray<TCryptoLibByteArray>;
-
-  /// <summary>
-  /// Represents a dynamic array of array of Int32.
-  /// </summary>
-  TCryptoLibMatrixInt32Array = TArray<TCryptoLibInt32Array>;
-
-  /// <summary>
-  /// Represents a dynamic array of array of UInt32.
-  /// </summary>
-  TCryptoLibMatrixUInt32Array = TArray<TCryptoLibUInt32Array>;
-
-  /// <summary>
-  /// Represents a dynamic array of array of UInt64.
-  /// </summary>
-  TCryptoLibMatrixUInt64Array = TArray<TCryptoLibUInt64Array>;
-
-{$ELSE}
   /// <summary>
   /// Represents a dynamic array of Boolean.
   /// </summary>
-  TCryptoLibBooleanArray = array of Boolean;
+  TCryptoLibBooleanArray = TCryptoLibGenericArray<Boolean>;
 
   /// <summary>
   /// Represents a dynamic array of ShortInt.
   /// </summary>
-  TCryptoLibShortIntArray = array of ShortInt;
+  TCryptoLibShortIntArray = TCryptoLibGenericArray<ShortInt>;
 
   /// <summary>
   /// Represents a dynamic array of Int32.
   /// </summary>
-  TCryptoLibInt32Array = array of Int32;
+  TCryptoLibInt32Array = TCryptoLibGenericArray<Int32>;
 
   /// <summary>
   /// Represents a dynamic array of Int64.
   /// </summary>
-  TCryptoLibInt64Array = array of Int64;
+  TCryptoLibInt64Array = TCryptoLibGenericArray<Int64>;
 
   /// <summary>
   /// Represents a dynamic array of UInt16.
   /// </summary>
-  TCryptoLibUInt16Array = array of UInt16;
+  TCryptoLibUInt16Array = TCryptoLibGenericArray<UInt16>;
 
   /// <summary>
   /// Represents a dynamic array of UInt32.
   /// </summary>
-  TCryptoLibUInt32Array = array of UInt32;
+  TCryptoLibUInt32Array = TCryptoLibGenericArray<UInt32>;
 
   /// <summary>
   /// Represents a dynamic array of UInt64.
   /// </summary>
-  TCryptoLibUInt64Array = array of UInt64;
+  TCryptoLibUInt64Array = TCryptoLibGenericArray<UInt64>;
 
   /// <summary>
   /// Represents a dynamic array of String.
   /// </summary>
-  TCryptoLibStringArray = array of String;
+  TCryptoLibStringArray = TCryptoLibGenericArray<String>;
 
   /// <summary>
   /// Represents a dynamic array of Char.
   /// </summary>
-  TCryptoLibCharArray = array of Char;
+  TCryptoLibCharArray = TCryptoLibGenericArray<Char>;
 
   /// <summary>
   /// Represents a dynamic array of array of ShortInt.
   /// </summary>
-  TCryptoLibMatrixShortIntArray = array of TCryptoLibShortIntArray;
+  TCryptoLibMatrixShortIntArray = TCryptoLibGenericArray<TCryptoLibShortIntArray>;
 
   /// <summary>
   /// Represents a dynamic array of array of byte.
   /// </summary>
-  TCryptoLibMatrixByteArray = array of TCryptoLibByteArray;
+  TCryptoLibMatrixByteArray = TCryptoLibGenericArray<TCryptoLibByteArray>;
 
   /// <summary>
   /// Represents a dynamic array of array of Int32.
   /// </summary>
-  TCryptoLibMatrixInt32Array = array of TCryptoLibInt32Array;
+  TCryptoLibMatrixInt32Array = TCryptoLibGenericArray<TCryptoLibInt32Array>;
 
   /// <summary>
   /// Represents a dynamic array of array of UInt32.
   /// </summary>
-  TCryptoLibMatrixUInt32Array = array of TCryptoLibUInt32Array;
+  TCryptoLibMatrixUInt32Array = TCryptoLibGenericArray<TCryptoLibUInt32Array>;
 
   /// <summary>
   /// Represents a dynamic array of array of UInt64.
   /// </summary>
-  TCryptoLibMatrixUInt64Array = array of TCryptoLibUInt64Array;
-{$ENDIF DELPHIXE_UP}
+  TCryptoLibMatrixUInt64Array = TCryptoLibGenericArray<TCryptoLibUInt64Array>;
 
 implementation
 

+ 9 - 6
CryptoLib/src/X509/ClpX509Certificate.pas

@@ -52,6 +52,7 @@ uses
   ClpIX509Extension,
   ClpCryptoLibTypes,
   ClpArrayUtilities,
+  ClpCollectionUtilities,
   ClpEncoders;
 
 type
@@ -100,7 +101,7 @@ type
   strict protected
     function GetX509Extensions: IX509Extensions; override;
     function GetAlternativeNameExtension(const AOid: IDerObjectIdentifier): IGeneralNames; virtual;
-    function GetAlternativeNames(const AOid: IDerObjectIdentifier): TCryptoLibGenericArray<TCryptoLibGenericArray<TValue>>; virtual;
+    function GetAlternativeNames(const AOid: IDerObjectIdentifier): TCryptoLibMatrixGenericArray<TValue>; virtual;
     procedure CheckSignature(const AVerifier: IVerifierFactory); virtual;
     function CheckSignatureValid(const AVerifier: IVerifierFactory): Boolean; virtual;
 
@@ -485,11 +486,13 @@ begin
     end);
 end;
 
-function TX509Certificate.GetAlternativeNames(const AOid: IDerObjectIdentifier): TCryptoLibGenericArray<TCryptoLibGenericArray<TValue>>;
+function TX509Certificate.GetAlternativeNames(const AOid: IDerObjectIdentifier): TCryptoLibMatrixGenericArray<TValue>;
+type
+  TCryptoLibTValueArray = TCryptoLibGenericArray<TValue>;
 var
   LGeneralNames: IGeneralNames;
   LGns: TCryptoLibGenericArray<IGeneralName>;
-  LResult: TList<TCryptoLibGenericArray<TValue>>;
+  LResult: TList<TCryptoLibTValueArray>;
   LEntry: TList<TValue>;
   LGn: IGeneralName;
   I: Int32;
@@ -508,7 +511,7 @@ begin
   end;
 
   LGns := LGeneralNames.GetNames();
-  LResult := TList<TCryptoLibGenericArray<TValue>>.Create();
+  LResult := TList<TCryptoLibTValueArray>.Create();
   try
     for I := 0 to System.Length(LGns) - 1 do
     begin
@@ -554,12 +557,12 @@ begin
           raise EIOCryptoLibException.CreateFmt('Bad tag number: %d', [LGn.TagNo]);
         end;
 
-        LResult.Add(LEntry.ToArray());
+        LResult.Add(TCollectionUtilities.ToArray<TValue>(LEntry));
       finally
         LEntry.Free;
       end;
     end;
-    Result := LResult.ToArray();
+    Result := TCollectionUtilities.ToArray<TCryptoLibTValueArray>(LResult);
   finally
     LResult.Free;
   end;