mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 21:52:48 +00:00
Fix .SHA calculation for A:/B: drives
This commit is contained in:
parent
c28943ba13
commit
ae9a8aaf75
@ -466,7 +466,6 @@ size_t FileGetSize(const char* path) {
|
|||||||
bool FileGetSha256(const char* path, u8* sha256) {
|
bool FileGetSha256(const char* path, u8* sha256) {
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
|
|
||||||
sha_init(SHA256_MODE);
|
|
||||||
ShowProgress(0, 0, path);
|
ShowProgress(0, 0, path);
|
||||||
if (DriveType(path) & DRV_VIRTUAL) { // for virtual files
|
if (DriveType(path) & DRV_VIRTUAL) { // for virtual files
|
||||||
VirtualFile vfile;
|
VirtualFile vfile;
|
||||||
@ -476,6 +475,7 @@ bool FileGetSha256(const char* path, u8* sha256) {
|
|||||||
return false;
|
return false;
|
||||||
fsize = vfile.size;
|
fsize = vfile.size;
|
||||||
|
|
||||||
|
sha_init(SHA256_MODE);
|
||||||
for (size_t pos = 0; (pos < fsize) && ret; pos += MAIN_BUFFER_SIZE) {
|
for (size_t pos = 0; (pos < fsize) && ret; pos += MAIN_BUFFER_SIZE) {
|
||||||
UINT read_bytes = min(MAIN_BUFFER_SIZE, fsize - pos);
|
UINT read_bytes = min(MAIN_BUFFER_SIZE, fsize - pos);
|
||||||
if (ReadVirtualFile(&vfile, MAIN_BUFFER, pos, read_bytes, NULL) != 0)
|
if (ReadVirtualFile(&vfile, MAIN_BUFFER, pos, read_bytes, NULL) != 0)
|
||||||
@ -484,6 +484,7 @@ bool FileGetSha256(const char* path, u8* sha256) {
|
|||||||
ret = false;
|
ret = false;
|
||||||
sha_update(MAIN_BUFFER, read_bytes);
|
sha_update(MAIN_BUFFER, read_bytes);
|
||||||
}
|
}
|
||||||
|
sha_get(sha256);
|
||||||
} else { // for regular FAT files
|
} else { // for regular FAT files
|
||||||
FIL file;
|
FIL file;
|
||||||
size_t fsize;
|
size_t fsize;
|
||||||
@ -493,7 +494,8 @@ bool FileGetSha256(const char* path, u8* sha256) {
|
|||||||
fsize = f_size(&file);
|
fsize = f_size(&file);
|
||||||
f_lseek(&file, 0);
|
f_lseek(&file, 0);
|
||||||
f_sync(&file);
|
f_sync(&file);
|
||||||
|
|
||||||
|
sha_init(SHA256_MODE);
|
||||||
for (size_t pos = 0; (pos < fsize) && ret; pos += MAIN_BUFFER_SIZE) {
|
for (size_t pos = 0; (pos < fsize) && ret; pos += MAIN_BUFFER_SIZE) {
|
||||||
UINT bytes_read = 0;
|
UINT bytes_read = 0;
|
||||||
if (fx_read(&file, MAIN_BUFFER, MAIN_BUFFER_SIZE, &bytes_read) != FR_OK)
|
if (fx_read(&file, MAIN_BUFFER, MAIN_BUFFER_SIZE, &bytes_read) != FR_OK)
|
||||||
@ -502,10 +504,10 @@ bool FileGetSha256(const char* path, u8* sha256) {
|
|||||||
ret = false;
|
ret = false;
|
||||||
sha_update(MAIN_BUFFER, bytes_read);
|
sha_update(MAIN_BUFFER, bytes_read);
|
||||||
}
|
}
|
||||||
|
sha_get(sha256);
|
||||||
fx_close(&file);
|
fx_close(&file);
|
||||||
}
|
}
|
||||||
ShowProgress(1, 1, path);
|
ShowProgress(1, 1, path);
|
||||||
sha_get(sha256);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user