Browse Source

minor refactor

Ugochukwu Mmaduekwe 6 years ago
parent
commit
82344d4a4b

+ 11 - 4
CryptoLib/src/Crypto/Parameters/ClpDsaPrivateKeyParameters.pas

@@ -41,6 +41,8 @@ type
 
     function GetX: TBigInteger; inline;
 
+    class function Validate(const x: TBigInteger): TBigInteger; static; inline;
+
   public
     constructor Create(const x: TBigInteger; const parameters: IDsaParameters);
 
@@ -61,16 +63,21 @@ begin
   result := Fx;
 end;
 
-constructor TDsaPrivateKeyParameters.Create(const x: TBigInteger;
-  const parameters: IDsaParameters);
+class function TDsaPrivateKeyParameters.Validate(const x: TBigInteger)
+  : TBigInteger;
 begin
-  Inherited Create(true, parameters);
   if (not(x.IsInitialized)) then
   begin
     raise EArgumentNilCryptoLibException.CreateRes(@SXUnInitialized);
   end;
+  result := x;
+end;
 
-  Fx := x;
+constructor TDsaPrivateKeyParameters.Create(const x: TBigInteger;
+  const parameters: IDsaParameters);
+begin
+  Inherited Create(true, parameters);
+  Fx := Validate(x);
 end;
 
 function TDsaPrivateKeyParameters.Equals(const other

+ 6 - 6
CryptoLib/src/Crypto/Parameters/ClpDsaPublicKeyParameters.pas

@@ -48,7 +48,8 @@ type
   public
     constructor Create(const y: TBigInteger; const parameters: IDsaParameters);
 
-    function Equals(const other: IDsaPublicKeyParameters): Boolean; reintroduce; overload;
+    function Equals(const other: IDsaPublicKeyParameters): Boolean;
+      reintroduce; overload;
     function GetHashCode(): {$IFDEF DELPHI}Int32; {$ELSE}PtrInt;
 {$ENDIF DELPHI}override;
 
@@ -67,6 +68,10 @@ end;
 class function TDsaPublicKeyParameters.Validate(const y: TBigInteger;
   const parameters: IDsaParameters): TBigInteger;
 begin
+  if (not(y.IsInitialized)) then
+  begin
+    raise EArgumentNilCryptoLibException.CreateRes(@SYUnInitialized);
+  end;
   // we can't validate without params, fortunately we can't use the key either...
   if (parameters <> Nil) then
   begin
@@ -85,11 +90,6 @@ constructor TDsaPublicKeyParameters.Create(const y: TBigInteger;
   const parameters: IDsaParameters);
 begin
   Inherited Create(false, parameters);
-  if (not(y.IsInitialized)) then
-  begin
-    raise EArgumentNilCryptoLibException.CreateRes(@SYUnInitialized);
-  end;
-
   Fy := Validate(y, parameters);
 end;