initial commit
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
#include "sgu_stdafx.h"
|
||||
#include "sgu_mode_hash_file.h"
|
||||
|
||||
bool md5File(const char* szFileName, MD5Digest& result)
|
||||
{
|
||||
if (!szFileName || szFileName[0]==0) {
|
||||
printf("Error: Input filename is not specified.\n");
|
||||
return false;
|
||||
}
|
||||
FILE* file = nullptr;
|
||||
fopen_s(&file, szFileName, "rb");
|
||||
if (!file) {
|
||||
printf("Error: Cannot open input file %s for reading.\n", szFileName);
|
||||
return false;
|
||||
}
|
||||
|
||||
const size_t kBufferSize = 1024;
|
||||
size_t readSize = 0;
|
||||
uint8_t* buffer = new uint8_t[kBufferSize];
|
||||
|
||||
MD5Context ctx;
|
||||
md5Init(&ctx);
|
||||
|
||||
while ((readSize = fread(buffer, 1, kBufferSize, file)) > 0)
|
||||
{
|
||||
md5Update(&ctx, (uint8_t*)buffer, readSize);
|
||||
}
|
||||
result = md5Finalize(&ctx);
|
||||
fclose(file);
|
||||
|
||||
delete[] buffer;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool sha256File(const char* szFileName, Sha256Digest& result)
|
||||
{
|
||||
if (!szFileName || szFileName[0] == 0) {
|
||||
printf("Error: Input filename is not specified.\n");
|
||||
return false;
|
||||
}
|
||||
FILE* file = nullptr;
|
||||
fopen_s(&file, szFileName, "rb");
|
||||
if (!file) {
|
||||
printf("Error: Cannot open input file %s for reading.\n", szFileName);
|
||||
return false;
|
||||
}
|
||||
const size_t kBufferSize = 1024;
|
||||
size_t readSize = 0;
|
||||
uint8_t* buffer = new uint8_t[kBufferSize];
|
||||
Sha256Context ctx;
|
||||
sha256Initialise(&ctx);
|
||||
while ((readSize = fread(buffer, 1, kBufferSize, file)) > 0)
|
||||
{
|
||||
sha256Update(&ctx, (uint8_t*)buffer, readSize);
|
||||
}
|
||||
sha256Finalise(&ctx, result);
|
||||
fclose(file);
|
||||
delete[] buffer;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool crc32File(const char* szFileName, uint32_t& result)
|
||||
{
|
||||
if (!szFileName || szFileName[0] == 0) {
|
||||
printf("Error: Input filename is not specified.\n");
|
||||
return false;
|
||||
}
|
||||
FILE* file = nullptr;
|
||||
fopen_s(&file, szFileName, "rb");
|
||||
if (!file) {
|
||||
printf("Error: Cannot open input file %s for reading.\n", szFileName);
|
||||
return false;
|
||||
}
|
||||
const size_t kBufferSize = 1024;
|
||||
size_t readSize = 0;
|
||||
uint8_t* buffer = new uint8_t[kBufferSize];
|
||||
|
||||
result = 0;
|
||||
while ((readSize = fread(buffer, 1, kBufferSize, file)) > 0)
|
||||
{
|
||||
result = crcMemory32(buffer, static_cast<uint32_t>(readSize), result);
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
delete[] buffer;
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user