Browse Source

overload blake2b and blake2s constructor for tree mode.

Ugochukwu Mmaduekwe 7 years ago
parent
commit
19ff0ed82c

+ 10 - 1
src/libraries/hashlib4pascal/HlpBlake2B.pas

@@ -21,6 +21,7 @@ uses
   HlpIHashResult,
   HlpIHashResult,
   HlpIBlake2BConfig,
   HlpIBlake2BConfig,
   HlpBlake2BConfig,
   HlpBlake2BConfig,
+  HlpIBlake2BTreeConfig,
   HlpBlake2BIvBuilder,
   HlpBlake2BIvBuilder,
   HlpIHash,
   HlpIHash,
   HlpIHashInfo,
   HlpIHashInfo,
@@ -98,6 +99,8 @@ type
   public
   public
     constructor Create(); overload;
     constructor Create(); overload;
     constructor Create(const config: IBlake2BConfig); overload;
     constructor Create(const config: IBlake2BConfig); overload;
+    constructor Create(const config: IBlake2BConfig;
+      const treeConfig: IBlake2BTreeConfig); overload;
     procedure Initialize; override;
     procedure Initialize; override;
     procedure TransformBytes(const a_data: THashLibByteArray;
     procedure TransformBytes(const a_data: THashLibByteArray;
       a_index, a_data_length: Int32); override;
       a_index, a_data_length: Int32); override;
@@ -1644,6 +1647,12 @@ begin
 end;
 end;
 
 
 constructor TBlake2B.Create(const config: IBlake2BConfig);
 constructor TBlake2B.Create(const config: IBlake2BConfig);
+begin
+  Create(config, Nil);
+end;
+
+constructor TBlake2B.Create(const config: IBlake2BConfig;
+  const treeConfig: IBlake2BTreeConfig);
 var
 var
   Lconfig: IBlake2BConfig;
   Lconfig: IBlake2BConfig;
 begin
 begin
@@ -1656,7 +1665,7 @@ begin
     Lconfig := FDefaultConfig;
     Lconfig := FDefaultConfig;
   end;
   end;
 
 
-  FrawConfig := TBlake2BIvBuilder.ConfigB(Lconfig, Nil);
+  FrawConfig := TBlake2BIvBuilder.ConfigB(Lconfig, treeConfig);
   if ((Lconfig.Key <> Nil) and (System.Length(Lconfig.Key) <> 0)) then
   if ((Lconfig.Key <> Nil) and (System.Length(Lconfig.Key) <> 0)) then
   begin
   begin
 
 

+ 10 - 1
src/libraries/hashlib4pascal/HlpBlake2S.pas

@@ -21,6 +21,7 @@ uses
   HlpIHashResult,
   HlpIHashResult,
   HlpIBlake2SConfig,
   HlpIBlake2SConfig,
   HlpBlake2SConfig,
   HlpBlake2SConfig,
+  HlpIBlake2STreeConfig,
   HlpBlake2SIvBuilder,
   HlpBlake2SIvBuilder,
   HlpIHash,
   HlpIHash,
   HlpIHashInfo,
   HlpIHashInfo,
@@ -98,6 +99,8 @@ type
   public
   public
     constructor Create(); overload;
     constructor Create(); overload;
     constructor Create(const config: IBlake2SConfig); overload;
     constructor Create(const config: IBlake2SConfig); overload;
+    constructor Create(const config: IBlake2SConfig;
+      const treeConfig: IBlake2STreeConfig); overload;
     procedure Initialize; override;
     procedure Initialize; override;
     procedure TransformBytes(const a_data: THashLibByteArray;
     procedure TransformBytes(const a_data: THashLibByteArray;
       a_index, a_data_length: Int32); override;
       a_index, a_data_length: Int32); override;
@@ -1425,6 +1428,12 @@ begin
 end;
 end;
 
 
 constructor TBlake2S.Create(const config: IBlake2SConfig);
 constructor TBlake2S.Create(const config: IBlake2SConfig);
+begin
+  Create(config, Nil);
+end;
+
+constructor TBlake2S.Create(const config: IBlake2SConfig;
+  const treeConfig: IBlake2STreeConfig);
 var
 var
   Lconfig: IBlake2SConfig;
   Lconfig: IBlake2SConfig;
 begin
 begin
@@ -1437,7 +1446,7 @@ begin
     Lconfig := FDefaultConfig;
     Lconfig := FDefaultConfig;
   end;
   end;
 
 
-  FrawConfig := TBlake2SIvBuilder.ConfigS(Lconfig, Nil);
+  FrawConfig := TBlake2SIvBuilder.ConfigS(Lconfig, treeConfig);
   if ((Lconfig.Key <> Nil) and (System.Length(Lconfig.Key) <> 0)) then
   if ((Lconfig.Key <> Nil) and (System.Length(Lconfig.Key) <> 0)) then
   begin
   begin