Browse Source

fix some compilation issues on Unix like Oses

Ugochukwu Mmaduekwe 6 years ago
parent
commit
c823bfb887

+ 43 - 0
CryptoLib/src/Interfaces/ClpIValidityPreCompInfo.pas

@@ -0,0 +1,43 @@
+{ *********************************************************************************** }
+{ *                              CryptoLib Library                                  * }
+{ *                Copyright (c) 2018 - 20XX Ugochukwu Mmaduekwe                    * }
+{ *                 Github Repository <https://github.com/Xor-el>                   * }
+
+{ *  Distributed under the MIT software license, see the accompanying file LICENSE  * }
+{ *          or visit http://www.opensource.org/licenses/mit-license.php.           * }
+
+{ *                              Acknowledgements:                                  * }
+{ *                                                                                 * }
+{ *      Thanks to Sphere 10 Software (http://www.sphere10.com/) for sponsoring     * }
+{ *                           development of this library                           * }
+
+{ * ******************************************************************************* * }
+
+(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
+
+unit ClpIValidityPreCompInfo;
+
+{$I ..\Include\CryptoLib.inc}
+
+interface
+
+uses
+  ClpIPreCompInfo;
+
+type
+  IValidityPreCompInfo = interface(IPreCompInfo)
+
+    ['{2339F5CA-A4B3-4E95-B358-4D4F4CA97EB3}']
+
+    function HasFailed(): Boolean;
+    procedure ReportFailed();
+    function HasCurveEquationPassed(): Boolean;
+    procedure ReportCurveEquationPassed();
+    function HasOrderPassed(): Boolean;
+    procedure ReportOrderPassed();
+
+  end;
+
+implementation
+
+end.

+ 2 - 2
CryptoLib/src/Math/EC/ClpECC.pas

@@ -42,8 +42,8 @@ uses
   ClpSetWeakRef,
   ClpSetWeakRef,
   ClpECCurveConstants,
   ClpECCurveConstants,
   ClpTnaf,
   ClpTnaf,
-  ClpValidityPrecompInfo,
-  ClpIValidityPrecompInfo,
+  ClpValidityPreCompInfo,
+  ClpIValidityPreCompInfo,
   ClpIECC,
   ClpIECC,
   ClpIFiniteField,
   ClpIFiniteField,
   ClpIPreCompInfo;
   ClpIPreCompInfo;

+ 95 - 0
CryptoLib/src/Math/EC/Multiplier/ClpValidityPreCompInfo.pas

@@ -0,0 +1,95 @@
+{ *********************************************************************************** }
+{ *                              CryptoLib Library                                  * }
+{ *                Copyright (c) 2018 - 20XX Ugochukwu Mmaduekwe                    * }
+{ *                 Github Repository <https://github.com/Xor-el>                   * }
+
+{ *  Distributed under the MIT software license, see the accompanying file LICENSE  * }
+{ *          or visit http://www.opensource.org/licenses/mit-license.php.           * }
+
+{ *                              Acknowledgements:                                  * }
+{ *                                                                                 * }
+{ *      Thanks to Sphere 10 Software (http://www.sphere10.com/) for sponsoring     * }
+{ *                           development of this library                           * }
+
+{ * ******************************************************************************* * }
+
+(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
+
+unit ClpValidityPreCompInfo;
+
+{$I ..\..\..\Include\CryptoLib.inc}
+
+interface
+
+uses
+  ClpIPreCompInfo,
+  ClpIValidityPreCompInfo;
+
+type
+  TValidityPreCompInfo = class(TInterfacedObject, IPreCompInfo,
+    IValidityPreCompInfo)
+
+  strict private
+
+  var
+    Ffailed, FcurveEquationPassed, ForderPassed: Boolean;
+
+  public
+
+    const
+    PRECOMP_NAME = 'bc_validity';
+
+    function HasFailed(): Boolean; inline;
+    procedure ReportFailed(); inline;
+    function HasCurveEquationPassed(): Boolean; inline;
+    procedure ReportCurveEquationPassed(); inline;
+    function HasOrderPassed(): Boolean; inline;
+    procedure ReportOrderPassed(); inline;
+
+    constructor Create();
+
+  end;
+
+implementation
+
+{ TValidityPreCompInfo }
+
+constructor TValidityPreCompInfo.Create;
+begin
+  Inherited Create();
+  Ffailed := False;
+  FcurveEquationPassed := False;
+  ForderPassed := False;
+end;
+
+function TValidityPreCompInfo.HasCurveEquationPassed: Boolean;
+begin
+  result := FcurveEquationPassed;
+end;
+
+function TValidityPreCompInfo.HasFailed: Boolean;
+begin
+  result := Ffailed;
+end;
+
+function TValidityPreCompInfo.HasOrderPassed: Boolean;
+begin
+  result := ForderPassed;
+end;
+
+procedure TValidityPreCompInfo.ReportCurveEquationPassed;
+begin
+  FcurveEquationPassed := True;
+end;
+
+procedure TValidityPreCompInfo.ReportFailed;
+begin
+  Ffailed := True;
+end;
+
+procedure TValidityPreCompInfo.ReportOrderPassed;
+begin
+  ForderPassed := True;
+end;
+
+end.

+ 3 - 1
CryptoLib/src/Packages/Delphi/CryptoLib4PascalPackage.dpk

@@ -407,6 +407,8 @@ contains
   ClpScalarSplitParameters in '..\..\Math\EC\Endo\ClpScalarSplitParameters.pas',
   ClpScalarSplitParameters in '..\..\Math\EC\Endo\ClpScalarSplitParameters.pas',
   ClpMultipliers in '..\..\Math\EC\Multiplier\ClpMultipliers.pas',
   ClpMultipliers in '..\..\Math\EC\Multiplier\ClpMultipliers.pas',
   ClpIMultipliers in '..\..\Interfaces\ClpIMultipliers.pas',
   ClpIMultipliers in '..\..\Interfaces\ClpIMultipliers.pas',
-  ClpECCompUtilities in '..\..\Math\EC\ClpECCompUtilities.pas';
+  ClpECCompUtilities in '..\..\Math\EC\ClpECCompUtilities.pas',
+  ClpIKMac in '..\..\Interfaces\ClpIKMac.pas',
+  ClpKMac in '..\..\Crypto\Macs\ClpKMac.pas';
 
 
 end.
 end.

+ 9 - 1
CryptoLib/src/Packages/FPC/CryptoLib4PascalPackage.lpk

@@ -25,7 +25,7 @@
  Acknowledgements: 
  Acknowledgements: 
 Thanks to Sphere 10 Software (http://www.sphere10.com/) for sponsoring the development of this library "/>
 Thanks to Sphere 10 Software (http://www.sphere10.com/) for sponsoring the development of this library "/>
     <Version Major="3" Minor="1"/>
     <Version Major="3" Minor="1"/>
-    <Files Count="373">
+    <Files Count="375">
       <Item1>
       <Item1>
         <Filename Value="..\..\Asn1\ClpOidTokenizer.pas"/>
         <Filename Value="..\..\Asn1\ClpOidTokenizer.pas"/>
         <UnitName Value="ClpOidTokenizer"/>
         <UnitName Value="ClpOidTokenizer"/>
@@ -1519,6 +1519,14 @@ Thanks to Sphere 10 Software (http://www.sphere10.com/) for sponsoring the devel
         <Filename Value="..\..\Interfaces\ClpIValidityPreCompInfo.pas"/>
         <Filename Value="..\..\Interfaces\ClpIValidityPreCompInfo.pas"/>
         <UnitName Value="ClpIValidityPreCompInfo"/>
         <UnitName Value="ClpIValidityPreCompInfo"/>
       </Item373>
       </Item373>
+      <Item374>
+        <Filename Value="..\..\Crypto\Macs\ClpKMac.pas"/>
+        <UnitName Value="ClpKMac"/>
+      </Item374>
+      <Item375>
+        <Filename Value="..\..\Interfaces\ClpIKMac.pas"/>
+        <UnitName Value="ClpIKMac"/>
+      </Item375>
     </Files>
     </Files>
     <RequiredPkgs Count="3">
     <RequiredPkgs Count="3">
       <Item1>
       <Item1>

+ 1 - 1
CryptoLib/src/Packages/FPC/CryptoLib4PascalPackage.pas

@@ -134,7 +134,7 @@ uses
   ClpScalarSplitParameters, ClpIGlvTypeAParameters, ClpIGlvTypeAEndomorphism, 
   ClpScalarSplitParameters, ClpIGlvTypeAParameters, ClpIGlvTypeAEndomorphism, 
   ClpIScaleXNegateYPointMap, ClpIScaleYNegateXPointMap, 
   ClpIScaleXNegateYPointMap, ClpIScaleYNegateXPointMap, 
   ClpIScalarSplitParameters, ClpECCompUtilities, ClpValidityPreCompInfo, 
   ClpIScalarSplitParameters, ClpECCompUtilities, ClpValidityPreCompInfo, 
-  ClpIValidityPreCompInfo;
+  ClpIValidityPreCompInfo, ClpKMac, ClpIKMac;
 
 
 implementation
 implementation