From e5b9f5132a9010a36db81788e10bb1be07ccf410 Mon Sep 17 00:00:00 2001 From: Ladislav Zezula Date: Tue, 17 Mar 2015 07:49:42 +0100 Subject: + SFileVerify: Added check whether the weak signature is not zeroed out. + Typos --- src/SBaseCommon.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/SBaseCommon.cpp') diff --git a/src/SBaseCommon.cpp b/src/SBaseCommon.cpp index ed31a61..23c9833 100644 --- a/src/SBaseCommon.cpp +++ b/src/SBaseCommon.cpp @@ -1509,6 +1509,18 @@ bool IsValidMD5(LPBYTE pbMd5) return (Md5[0] | Md5[1] | Md5[2] | Md5[3]) ? true : false; } +bool IsValidSignature(LPBYTE pbSignature) +{ + LPDWORD Signature = (LPDWORD)pbSignature; + DWORD SigValid = 0; + + for(int i = 0; i < MPQ_WEAK_SIGNATURE_SIZE / sizeof(DWORD); i++) + SigValid |= Signature[i]; + + return (SigValid != 0) ? true : false; +} + + bool VerifyDataBlockHash(void * pvDataBlock, DWORD cbDataBlock, LPBYTE expected_md5) { hash_state md5_state; -- cgit v1.2.3