Browse Source

additional check for XOFSize in Bits.

Ugochukwu Mmaduekwe 6 years ago
parent
commit
30f0637643
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/libraries/hashlib4pascal/HlpSHA3.pas

+ 2 - 2
src/libraries/hashlib4pascal/HlpSHA3.pas

@@ -27,7 +27,7 @@ uses
 
 
 resourcestring
 resourcestring
   SInvalidHashMode = 'Only "[%s]" HashModes are Supported';
   SInvalidHashMode = 'Only "[%s]" HashModes are Supported';
-  SInvalidXOFSize = 'XOFSize in Bits must be Divisible by 8.';
+  SInvalidXOFSize = 'XOFSize in Bits must not be Negative and be Divisible by 8.';
 
 
 type
 type
   TSHA3 = class abstract(TBlockHash, ICryptoNotBuildIn, ITransformBlock)
   TSHA3 = class abstract(TBlockHash, ICryptoNotBuildIn, ITransformBlock)
@@ -3198,7 +3198,7 @@ end;
 
 
 function TShake.SetXOFOutputSize(a_xof_size_in_bits: Int32): IXOF;
 function TShake.SetXOFOutputSize(a_xof_size_in_bits: Int32): IXOF;
 begin
 begin
-  If (a_xof_size_in_bits and $7) <> 0 then
+  If (a_xof_size_in_bits < 0) or ((a_xof_size_in_bits and $7) <> 0) then
   begin
   begin
     raise EArgumentInvalidHashLibException.CreateRes(@SInvalidXOFSize);
     raise EArgumentInvalidHashLibException.CreateRes(@SInvalidXOFSize);
   end;
   end;