| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- {
- $Project$
- $Workfile$
- $Revision$
- $DateUTC$
- $Id$
- This file is part of the Indy (Internet Direct) project, and is offered
- under the dual-licensing agreement described on the Indy website.
- (http://www.indyproject.org/)
- Copyright:
- (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
- }
- {
- $Log$
- }
- {
- Rev 1.1 2003-10-16 11:22:42 HHellström
- Fixed for dotNET
- Rev 1.0 11/13/2002 07:53:32 AM JPMugaas
- }
- unit IdHashElf;
- interface
- {$i IdCompilerDefines.inc}
- uses
- IdGlobal,
- IdHash;
- type
- TIdHashElf = class(TIdHash32)
- public
- procedure HashStart(var VRunningHash : UInt32); override;
- procedure HashByte(var VRunningHash : UInt32; const AByte : Byte); override;
- end;
- implementation
- { TIdHashElf }
- procedure TIdHashElf.HashStart(var VRunningHash: UInt32);
- begin
- VRunningHash := 0;
- end;
- procedure TIdHashElf.HashByte(var VRunningHash: UInt32; const AByte: Byte);
- var
- LTemp: UInt32;
- begin
- VRunningHash := (VRunningHash shl 4) + AByte;
- LTemp := VRunningHash and $F0000000;
- if LTemp <> 0 then begin
- VRunningHash := VRunningHash xor (LTemp shr 24);
- end;
- VRunningHash := VRunningHash and (not LTemp);
- end;
- end.
|