|
@@ -10,6 +10,7 @@ uses
|
|
|
{$ENDIF DELPHI2010}
|
|
|
HlpHashLibTypes,
|
|
|
{$IFDEF DELPHI}
|
|
|
+ HlpHash,
|
|
|
HlpHashBuffer,
|
|
|
HlpBitConverter,
|
|
|
{$ENDIF DELPHI}
|
|
@@ -17,6 +18,7 @@ uses
|
|
|
HlpHashSize,
|
|
|
HlpHashRounds,
|
|
|
HlpConverters,
|
|
|
+ HlpIHash,
|
|
|
HlpIHashInfo,
|
|
|
HlpHashCryptoNotBuildIn;
|
|
|
|
|
@@ -93,6 +95,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -102,6 +105,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -111,6 +115,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -120,6 +125,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -129,6 +135,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -138,6 +145,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -147,6 +155,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -156,6 +165,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -165,6 +175,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -174,6 +185,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -183,6 +195,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -192,6 +205,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -201,6 +215,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -210,6 +225,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -219,6 +235,7 @@ type
|
|
|
|
|
|
public
|
|
|
constructor Create();
|
|
|
+ function Clone(): IHash; override;
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -784,7 +801,7 @@ begin
|
|
|
Fm_hash[6] := Fm_hash[6] + g;
|
|
|
Fm_hash[7] := Fm_hash[7] + h;
|
|
|
|
|
|
- System.FillChar(temp, System.SizeOf(temp), 0);
|
|
|
+ System.FillChar(temp, System.SizeOf(temp), UInt32(0));
|
|
|
end;
|
|
|
|
|
|
{ THaval4 }
|
|
@@ -1365,7 +1382,7 @@ begin
|
|
|
Fm_hash[6] := Fm_hash[6] + g;
|
|
|
Fm_hash[7] := Fm_hash[7] + h;
|
|
|
|
|
|
- System.FillChar(temp, System.SizeOf(temp), 0);
|
|
|
+ System.FillChar(temp, System.SizeOf(temp), UInt32(0));
|
|
|
|
|
|
end;
|
|
|
|
|
@@ -2074,12 +2091,26 @@ begin
|
|
|
Fm_hash[6] := Fm_hash[6] + g;
|
|
|
Fm_hash[7] := Fm_hash[7] + h;
|
|
|
|
|
|
- System.FillChar(temp, System.SizeOf(temp), 0);
|
|
|
+ System.FillChar(temp, System.SizeOf(temp), UInt32(0));
|
|
|
|
|
|
end;
|
|
|
|
|
|
{ THaval_3_128 }
|
|
|
|
|
|
+function THaval_3_128.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_3_128;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_3_128.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_3_128.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize128);
|
|
@@ -2087,6 +2118,20 @@ end;
|
|
|
|
|
|
{ THaval_4_128 }
|
|
|
|
|
|
+function THaval_4_128.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_4_128;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_4_128.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_4_128.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize128);
|
|
@@ -2094,6 +2139,20 @@ end;
|
|
|
|
|
|
{ THaval_5_128 }
|
|
|
|
|
|
+function THaval_5_128.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_5_128;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_5_128.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_5_128.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize128);
|
|
@@ -2101,6 +2160,20 @@ end;
|
|
|
|
|
|
{ THaval_3_160 }
|
|
|
|
|
|
+function THaval_3_160.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_3_160;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_3_160.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_3_160.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize160);
|
|
@@ -2108,6 +2181,20 @@ end;
|
|
|
|
|
|
{ THaval_4_160 }
|
|
|
|
|
|
+function THaval_4_160.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_4_160;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_4_160.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_4_160.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize160);
|
|
@@ -2115,6 +2202,20 @@ end;
|
|
|
|
|
|
{ THaval_5_160 }
|
|
|
|
|
|
+function THaval_5_160.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_5_160;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_5_160.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_5_160.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize160);
|
|
@@ -2122,6 +2223,20 @@ end;
|
|
|
|
|
|
{ THaval_3_192 }
|
|
|
|
|
|
+function THaval_3_192.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_3_192;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_3_192.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_3_192.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize192);
|
|
@@ -2129,6 +2244,20 @@ end;
|
|
|
|
|
|
{ THaval_4_192 }
|
|
|
|
|
|
+function THaval_4_192.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_4_192;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_4_192.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_4_192.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize192);
|
|
@@ -2136,6 +2265,20 @@ end;
|
|
|
|
|
|
{ THaval_5_192 }
|
|
|
|
|
|
+function THaval_5_192.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_5_192;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_5_192.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_5_192.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize192);
|
|
@@ -2143,6 +2286,20 @@ end;
|
|
|
|
|
|
{ THaval_3_224 }
|
|
|
|
|
|
+function THaval_3_224.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_3_224;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_3_224.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_3_224.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize224);
|
|
@@ -2150,6 +2307,20 @@ end;
|
|
|
|
|
|
{ THaval_4_224 }
|
|
|
|
|
|
+function THaval_4_224.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_4_224;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_4_224.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_4_224.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize224);
|
|
@@ -2157,6 +2328,20 @@ end;
|
|
|
|
|
|
{ THaval_5_224 }
|
|
|
|
|
|
+function THaval_5_224.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_5_224;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_5_224.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_5_224.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize224);
|
|
@@ -2164,6 +2349,20 @@ end;
|
|
|
|
|
|
{ THaval_3_256 }
|
|
|
|
|
|
+function THaval_3_256.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_3_256;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_3_256.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_3_256.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize256);
|
|
@@ -2171,6 +2370,20 @@ end;
|
|
|
|
|
|
{ THaval_4_256 }
|
|
|
|
|
|
+function THaval_4_256.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_4_256;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_4_256.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_4_256.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize256);
|
|
@@ -2178,6 +2391,20 @@ end;
|
|
|
|
|
|
{ THaval_5_256 }
|
|
|
|
|
|
+function THaval_5_256.Clone(): IHash;
|
|
|
+var
|
|
|
+ HashInstance: THaval_5_256;
|
|
|
+begin
|
|
|
+ HashInstance := THaval_5_256.Create();
|
|
|
+ HashInstance.Fm_rounds := Fm_rounds;
|
|
|
+ HashInstance.FHashSize := FHashSize;
|
|
|
+ HashInstance.Fm_hash := System.Copy(Fm_hash);
|
|
|
+ HashInstance.Fm_buffer := Fm_buffer.Clone();
|
|
|
+ HashInstance.Fm_processed_bytes := Fm_processed_bytes;
|
|
|
+ result := HashInstance as IHash;
|
|
|
+ result.BufferSize := BufferSize;
|
|
|
+end;
|
|
|
+
|
|
|
constructor THaval_5_256.Create;
|
|
|
begin
|
|
|
inherited Create(THashSize.hsHashSize256);
|