mirror of
https://github.com/CarldricGaming/Mini-Compressor
synced 2026-08-23 02:26:04 -04:00
117 lines
3.5 KiB
ObjectPascal
117 lines
3.5 KiB
ObjectPascal
|
|
unit XHashNet;
|
||
|
|
|
||
|
|
interface
|
||
|
|
|
||
|
|
const
|
||
|
|
// Algorithm
|
||
|
|
H_CRC32 = 1;
|
||
|
|
H_MD5 = 2;
|
||
|
|
H_SHA1 = 3;
|
||
|
|
H_SHA256 = 4;
|
||
|
|
H_SHA512 = 5;
|
||
|
|
H_SHA512_256 = 6;
|
||
|
|
H_SHA3_256 = 7;
|
||
|
|
H_SHA3_512 = 8;
|
||
|
|
H_BLAKE2_128 = 9;
|
||
|
|
H_BLAKE2_256 = 10;
|
||
|
|
H_BLAKE3_256 = 11;
|
||
|
|
H_HAVAL3_128 = 12;
|
||
|
|
H_HAVAL3_256 = 13;
|
||
|
|
H_RIPEMD_128 = 14;
|
||
|
|
H_RIPEMD_256 = 15;
|
||
|
|
H_TIGER_128 = 16;
|
||
|
|
H_TIGER_192 = 17;
|
||
|
|
H_TIGER2_128 = 18;
|
||
|
|
H_TIGER2_192 = 19;
|
||
|
|
H_MURMURHASH_32 = 20;
|
||
|
|
H_XXHASH_32 = 21;
|
||
|
|
|
||
|
|
// Error level
|
||
|
|
H_HASH_OK = 0;
|
||
|
|
H_HASHES_IN_PROGRESS = 1;
|
||
|
|
H_FILE_HASHING_DONE = 2;
|
||
|
|
H_PROCESS_DONE = 3;
|
||
|
|
H_PROCESS_ABORTED = -1;
|
||
|
|
H_BAD_FILE_HASH = -2;
|
||
|
|
H_FILE_NOT_FOUND = -3;
|
||
|
|
H_INVALID_HASH_ALGORITHM = -4;
|
||
|
|
H_ERROR_GENERAL = -5;
|
||
|
|
H_INTERNAL_ERROR = -6;
|
||
|
|
H_HASH_GENERATE_ERROR = -7;
|
||
|
|
H_INVALID_HASHHEX = -8;
|
||
|
|
H_INVALID_CHECKSUM_FILE = -9;
|
||
|
|
H_INVALID_DIRECTORY = -10;
|
||
|
|
H_HASH_VERIFY_ERROR = -11;
|
||
|
|
H_CANNOT_CREATE_HASH_FILE = -12;
|
||
|
|
H_EMPTY_DIRECTORY = -13;
|
||
|
|
H_INPUT_FILE_NOT_FOUND = -14;
|
||
|
|
H_CANNOT_CREATE_LOG_FILE = -15;
|
||
|
|
|
||
|
|
// Log Mgs ID
|
||
|
|
H_LOGMSG_ID_EXPECTEDHASH = 100;
|
||
|
|
H_LOGMSG_ID_CALCULATEDHASH = 200;
|
||
|
|
H_LOGMSG_ID_STATUS = 300;
|
||
|
|
H_LOGMSG_ID_FILENOTFOUND = 400;
|
||
|
|
H_LOGMSG_ID_BADHASH = 500;
|
||
|
|
H_LOGMSG_ID_HASHOK = 600;
|
||
|
|
H_LOGMSG_ID_NULL = 700;
|
||
|
|
|
||
|
|
// Format Str
|
||
|
|
VC_STATUS_MSG = '%d / %d Ok: %d Bad: %d Missing: %d';
|
||
|
|
VC_GEN_STATUS_MSG = '%d / %d';
|
||
|
|
VC_CURFILE = '%s';
|
||
|
|
VC_CURPOS = '%s / %s';
|
||
|
|
VC_CURPCT = '%s%%';
|
||
|
|
|
||
|
|
type
|
||
|
|
TSingleHashCallback = function(FileName: WideString; FileSize: Extended;
|
||
|
|
FileProgress, StatusCode: Integer): Boolean of object;
|
||
|
|
|
||
|
|
TMultiHashCallback = function(FileName: WideString; FileSize: Extended;
|
||
|
|
FileProgress, TotalProgress, TotalFiles, FileCounted, StatusCode: Integer):
|
||
|
|
Boolean of object;
|
||
|
|
|
||
|
|
function CalculateHashesForDir(ChecksumFile, BasePath: WideString;
|
||
|
|
HashAlgo: Integer; Callback: TMultiHashCallback): Integer; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
function VerifyHashesFromFile(ChecksumFile, BasePath: WideString;
|
||
|
|
HashAlgo: Integer; LogFile: Boolean; Callback: TMultiHashCallback): Integer; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
function VerifyHashesAutoFromFile(ChecksumFile, BasePath: WideString;
|
||
|
|
LogFile: Boolean; Callback: TMultiHashCallback): Integer; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
// For Single Files //
|
||
|
|
function CalculateFileHash(const FileName: WideString; const HashAlgo: Integer;
|
||
|
|
Callback: TSingleHashCallback): WideString; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
function VerifyFileHash(FileName, HashHexStr: WideString;
|
||
|
|
HashAlgo: Integer; LogFile: Boolean; Callback: TSingleHashCallback): Integer; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
//
|
||
|
|
|
||
|
|
function SetHashLogMessage(const MessageText: WideString; const MsgID: Integer): Boolean; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
procedure SetHashLogFile(const FileName: WideString); stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
procedure StopHashProcess; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
procedure PauseHashProcess; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
procedure ResumeHashProcess; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
function ByteOrTb(const Float: extended): WideString; stdcall;
|
||
|
|
external 'XHashNext.dll';
|
||
|
|
|
||
|
|
implementation
|
||
|
|
|
||
|
|
end.
|