]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* util/mkimage.c (grub_install_generate_image): Use grub_crypto_hash for
authorVladimir Serbinenko <phcoder@gmail.com>
Fri, 29 Nov 2013 03:05:44 +0000 (04:05 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Fri, 29 Nov 2013 03:05:44 +0000 (04:05 +0100)
checking fwstart.img rather than md fundtions directly.

ChangeLog
util/mkimage.c

index b5045e7ba66d4380ff7ef40073544806abca4c8a..f130e8b1bcdec8936923cd164386169649933f01 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-11-29  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * util/mkimage.c (grub_install_generate_image): Use grub_crypto_hash for
+       checking fwstart.img rather than md fundtions directly.
+
 2013-11-29  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * util/grub-mkrescue.c (main): Check that fread succeeded.
index 4a510228c4d13d9f6ff0465d32f7f5ed09d0d357..1afba502e21d6f2b1f8449e9c766caf90e4868d3 100644 (file)
@@ -1565,7 +1565,6 @@ grub_install_generate_image (const char *dir, const char *prefix,
       size_t rom_size;
       char *boot_path, *boot_img;
       size_t boot_size;
-      grub_uint8_t context[GRUB_MD_SHA512->contextsize];
       /* fwstart.img is the only part which can't be tested by using *-elf
         target. Check it against the checksum. */
       const grub_uint8_t yeeloong_fwstart_good_hash[512 / 8] = 
@@ -1591,6 +1590,7 @@ grub_install_generate_image (const char *dir, const char *prefix,
          0x46, 0x50, 0xd6, 0x21, 0xce, 0x8e, 0x24, 0xa7
        };
       const grub_uint8_t *fwstart_good_hash;
+      grub_uint8_t fwstart_hash[512 / 8];
             
       if (image_target->id == IMAGE_FULOONG2F_FLASH)
        {
@@ -1606,11 +1606,9 @@ grub_install_generate_image (const char *dir, const char *prefix,
       boot_size = grub_util_get_image_size (boot_path);
       boot_img = grub_util_read_image (boot_path);
 
-      grub_memset (context, 0, sizeof (context));
-      GRUB_MD_SHA512->init (context);
-      GRUB_MD_SHA512->write (context, boot_img, boot_size);
-      GRUB_MD_SHA512->final (context);
-      if (grub_memcmp (GRUB_MD_SHA512->read (context), fwstart_good_hash,
+      grub_crypto_hash (GRUB_MD_SHA512, fwstart_hash, boot_img, boot_size);
+
+      if (grub_memcmp (fwstart_hash, fwstart_good_hash,
                       GRUB_MD_SHA512->mdlen) != 0)
        /* TRANSLATORS: fwstart.img may still be good, just it wasn't checked.  */
        grub_util_warn ("%s",