mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 10:07:38 -04:00
mknkboot: optimize verifyfirm
The checksum only needs to be calculated once. A small oversight on my initial implementation. Change-Id: Ie23faf36f5add7ed7f146769b604dbd8204c2605
This commit is contained in:
parent
2ed4bf8a43
commit
3831051c47
1 changed files with 8 additions and 8 deletions
|
@ -158,16 +158,16 @@ static off_t filesize(int fd) {
|
|||
|
||||
int verifyfirm(const struct filebuf* firmdata)
|
||||
{
|
||||
md5_context ctx;
|
||||
uint8_t sum[16];
|
||||
|
||||
md5_starts(&ctx);
|
||||
md5_update(&ctx, firmdata->buf, firmdata->len);
|
||||
md5_finish(&ctx, sum);
|
||||
|
||||
for(int i = 0; firmtable[i].version; i++)
|
||||
{
|
||||
md5_context ctx;
|
||||
uint8_t sum[16];
|
||||
|
||||
md5_starts(&ctx);
|
||||
md5_update(&ctx, firmdata->buf, firmdata->len);
|
||||
md5_finish(&ctx, sum);
|
||||
|
||||
if(memcmp(firmtable[i].sum, sum, 16) == 0)
|
||||
if(memcmp(firmtable[i].sum, sum, 16) == 0)
|
||||
{
|
||||
fprintf(stderr, "[INFO] Firmware file version %d.%d\n",
|
||||
firmtable[i].version >> 8, firmtable[i].version & 0xff);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue