* [U-Boot] Integity validation (checksum) of a squashfs root file system @ 2012-02-06 16:06 Pascal Levesque 2012-02-06 16:34 ` Marek Vasut 0 siblings, 1 reply; 7+ messages in thread From: Pascal Levesque @ 2012-02-06 16:06 UTC (permalink / raw) To: u-boot Hi, I would like to validate the integrity (checksum) of a squashfs root file system before starting Linux. Current strategy I am using is: - Wrap squashfs rootfs inside a u-boot image - TFTP download on the target - Download validation using iminfo - Save squashfs rootfs in flash without the image header (Linux failed to load squashfs rootfs if u-boot image is present) Problems: - I need to hardcode squashfs rootfs offset in u-boot image in order to be able to flash it - U-Boot image header information (size, crc, ...) is lost after a reboot. It is not possible to check the integrity of the flash content. I would like to save some fields of u-boot image header (size, crc, ...) in u-boot environment variables. And then do an integrity check at boot time. I have not find a way to extract those fields and save them without changing u-boot code. I have added some code to ?iminfo? command to set environment variables for CRC, size, payload offset, timestamp. Is it an acceptable way of doing it? Is there a better way of doing it? Thanks in advance, Pascal ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] Integity validation (checksum) of a squashfs root file system 2012-02-06 16:06 [U-Boot] Integity validation (checksum) of a squashfs root file system Pascal Levesque @ 2012-02-06 16:34 ` Marek Vasut 2012-02-06 17:58 ` Pascal Levesque 0 siblings, 1 reply; 7+ messages in thread From: Marek Vasut @ 2012-02-06 16:34 UTC (permalink / raw) To: u-boot > Hi, > > I would like to validate the integrity (checksum) of a squashfs root file > system before starting Linux. > > Current strategy I am using is: > - Wrap squashfs rootfs inside a u-boot image > - TFTP download on the target > - Download validation using iminfo > - Save squashfs rootfs in flash without the image header (Linux failed to > load squashfs rootfs if u-boot image is present) > > Problems: > - I need to hardcode squashfs rootfs offset in u-boot image in order to be > able to flash it - U-Boot image header information (size, crc, ...) is > lost after a reboot. It is not possible to check the integrity of the > flash content. > > I would like to save some fields of u-boot image header (size, crc, ...) > in u-boot environment variables. And then do an integrity check at boot > time. > > I have not find a way to extract those fields and save them without > changing u-boot code. I have added some code to ?iminfo? command to set > environment variables for CRC, size, payload offset, timestamp. > > Is it an acceptable way of doing it? > Is there a better way of doing it? > > Thanks in advance, > > Pascal Use sha1sum integrated into uboot and stick it at the end? M ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] Integity validation (checksum) of a squashfs root file system 2012-02-06 16:34 ` Marek Vasut @ 2012-02-06 17:58 ` Pascal Levesque 2012-02-06 18:41 ` Marek Vasut 2012-03-03 13:59 ` Wolfgang Denk 0 siblings, 2 replies; 7+ messages in thread From: Pascal Levesque @ 2012-02-06 17:58 UTC (permalink / raw) To: u-boot Hi M, sha1sum does provide a console output but nothing that could be used for an automated check like crc32 -v... Pascal -----Original Message----- From: Marek Vasut Sent: Monday, February 06, 2012 11:34 AM To: u-boot at lists.denx.de Cc: Pascal Levesque Subject: Re: [U-Boot] Integity validation (checksum) of a squashfs root file system > Hi, > > I would like to validate the integrity (checksum) of a squashfs root file > system before starting Linux. > > Current strategy I am using is: > - Wrap squashfs rootfs inside a u-boot image > - TFTP download on the target > - Download validation using iminfo > - Save squashfs rootfs in flash without the image header (Linux failed to > load squashfs rootfs if u-boot image is present) > > Problems: > - I need to hardcode squashfs rootfs offset in u-boot image in order to be > able to flash it - U-Boot image header information (size, crc, ...) is > lost after a reboot. It is not possible to check the integrity of the > flash content. > > I would like to save some fields of u-boot image header (size, crc, ...) > in u-boot environment variables. And then do an integrity check at boot > time. > > I have not find a way to extract those fields and save them without > changing u-boot code. I have added some code to ?iminfo? command to set > environment variables for CRC, size, payload offset, timestamp. > > Is it an acceptable way of doing it? > Is there a better way of doing it? > > Thanks in advance, > > Pascal Use sha1sum integrated into uboot and stick it at the end? M ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] Integity validation (checksum) of a squashfs root file system 2012-02-06 17:58 ` Pascal Levesque @ 2012-02-06 18:41 ` Marek Vasut 2012-02-07 14:24 ` Pascal Levesque 2012-03-03 13:59 ` Wolfgang Denk 1 sibling, 1 reply; 7+ messages in thread From: Marek Vasut @ 2012-02-06 18:41 UTC (permalink / raw) To: u-boot > Hi M, > > sha1sum does provide a console output but nothing that could be used for an > automated check like crc32 -v... Make it export an env. variable? M > > Pascal > > -----Original Message----- > From: Marek Vasut > Sent: Monday, February 06, 2012 11:34 AM > To: u-boot at lists.denx.de > Cc: Pascal Levesque > Subject: Re: [U-Boot] Integity validation (checksum) of a squashfs root > file system > > > Hi, > > > > I would like to validate the integrity (checksum) of a squashfs root file > > system before starting Linux. > > > > Current strategy I am using is: > > - Wrap squashfs rootfs inside a u-boot image > > - TFTP download on the target > > - Download validation using iminfo > > - Save squashfs rootfs in flash without the image header (Linux failed to > > load squashfs rootfs if u-boot image is present) > > > > Problems: > > - I need to hardcode squashfs rootfs offset in u-boot image in order to > > be able to flash it - U-Boot image header information (size, crc, ...) > > is lost after a reboot. It is not possible to check the integrity of the > > flash content. > > > > I would like to save some fields of u-boot image header (size, crc, ...) > > in u-boot environment variables. And then do an integrity check at boot > > time. > > > > I have not find a way to extract those fields and save them without > > changing u-boot code. I have added some code to ?iminfo? command to set > > environment variables for CRC, size, payload offset, timestamp. > > > > Is it an acceptable way of doing it? > > Is there a better way of doing it? > > > > Thanks in advance, > > > > Pascal > > Use sha1sum integrated into uboot and stick it at the end? > > M ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] Integity validation (checksum) of a squashfs root file system 2012-02-06 18:41 ` Marek Vasut @ 2012-02-07 14:24 ` Pascal Levesque 0 siblings, 0 replies; 7+ messages in thread From: Pascal Levesque @ 2012-02-07 14:24 UTC (permalink / raw) To: u-boot Hi M, this is very similar to my actual solution with iminfo (see below). In fact, the main question is: Is it generic enough to be integrated in u-boot development tree? Is it better to modify sha1sum instead? Or finally, a more generic approach is to offer a command to set an environment variable from memory content like: md [.b, .w, .l] address [# of objects] [environment variable name] So, when a variable name is specified, "md" sets env. variable with the memory content. Regards, Pascal --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -1097,6 +1097,7 @@ static int image_info(ulong addr) { void *hdr = (void *)addr; + char str[80]; printf("\n## Checking Image at %08lx ...\n", addr); @@ -1120,6 +1121,16 @@ puts(" Bad Data CRC\n"); return 1; } + + sprintf(str, "%lx", image_get_data_size(hdr)); /* write data size into string */ + setenv("image_data_size", str); + sprintf(str, "%lx", image_get_dcrc(hdr)); /* write data crc into string */ + setenv("image_data_crc", str); + sprintf(str, "%lx", image_get_data(hdr)); /* write data start address into string */ + setenv("image_data_addr"); + sprintf(str, "%lx", image_get_time(hdr)); /* write image timestamp into string */ + setenv("image_timestamp", str); + puts("OK\n"); return 0; #if defined(CONFIG_FIT) -----Original Message----- From: Marek Vasut Sent: Monday, February 06, 2012 1:41 PM To: Pascal Levesque Cc: u-boot at lists.denx.de Subject: Re: [U-Boot] Integity validation (checksum) of a squashfs root file system > Hi M, > > sha1sum does provide a console output but nothing that could be used for > an > automated check like crc32 -v... Make it export an env. variable? M > > Pascal > > -----Original Message----- > From: Marek Vasut > Sent: Monday, February 06, 2012 11:34 AM > To: u-boot at lists.denx.de > Cc: Pascal Levesque > Subject: Re: [U-Boot] Integity validation (checksum) of a squashfs root > file system > > > Hi, > > > > I would like to validate the integrity (checksum) of a squashfs root > > file > > system before starting Linux. > > > > Current strategy I am using is: > > - Wrap squashfs rootfs inside a u-boot image > > - TFTP download on the target > > - Download validation using iminfo > > - Save squashfs rootfs in flash without the image header (Linux failed > > to > > load squashfs rootfs if u-boot image is present) > > > > Problems: > > - I need to hardcode squashfs rootfs offset in u-boot image in order to > > be able to flash it - U-Boot image header information (size, crc, ...) > > is lost after a reboot. It is not possible to check the integrity of the > > flash content. > > > > I would like to save some fields of u-boot image header (size, crc, ...) > > in u-boot environment variables. And then do an integrity check at boot > > time. > > > > I have not find a way to extract those fields and save them without > > changing u-boot code. I have added some code to ?iminfo? command to set > > environment variables for CRC, size, payload offset, timestamp. > > > > Is it an acceptable way of doing it? > > Is there a better way of doing it? > > > > Thanks in advance, > > > > Pascal > > Use sha1sum integrated into uboot and stick it at the end? > > M ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] Integity validation (checksum) of a squashfs root file system 2012-02-06 17:58 ` Pascal Levesque 2012-02-06 18:41 ` Marek Vasut @ 2012-03-03 13:59 ` Wolfgang Denk 1 sibling, 0 replies; 7+ messages in thread From: Wolfgang Denk @ 2012-03-03 13:59 UTC (permalink / raw) To: u-boot Dear "Pascal Levesque", p[lease stop top-posting / full quoting. In message <SNT129-DS22380D89FACBB7D7D8C8AAD740@phx.gbl> you wrote: > > sha1sum does provide a console output but nothing that could be used for an > automated check like crc32 -v... Please feel free to submit a patch that allows to add a third argument to the sha1sum command similar to what we do with "crc". Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Computers are not intelligent. They only think they are. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] Integity validation (checksum) of a squashfs root file system @ 2012-02-06 16:03 Pascal Levesque 0 siblings, 0 replies; 7+ messages in thread From: Pascal Levesque @ 2012-02-06 16:03 UTC (permalink / raw) To: u-boot Hi, I would like to validate the integrity (checksum) of a squashfs root file system before starting Linux. Current strategy I am using is: - Wrap squashfs rootfs inside a u-boot image - TFTP download on the target - Download validation using iminfo - Save squashfs rootfs in flash without the image header (Linux failed to load squashfs rootfs if u-boot image is present) Problems: - I need to hardcode squashfs rootfs offset in u-boot image in order to be able to flash it - U-Boot image header information (size, crc, ...) is lost after a reboot. It is not possible to check the integrity of the flash content. I would like to save some fields of u-boot image header (size, crc, ...) in u-boot environment variables. And then do an integrity check at boot time. I have not find a way to extract those fields and save them without changing u-boot code. I have added some code to ?iminfo? command to set environment variables for CRC, size, payload offset, timestamp. Is it an acceptable way of doing it? Is there a better way of doing it? Thanks in advance, Pascal ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-03-03 13:59 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-02-06 16:06 [U-Boot] Integity validation (checksum) of a squashfs root file system Pascal Levesque 2012-02-06 16:34 ` Marek Vasut 2012-02-06 17:58 ` Pascal Levesque 2012-02-06 18:41 ` Marek Vasut 2012-02-07 14:24 ` Pascal Levesque 2012-03-03 13:59 ` Wolfgang Denk -- strict thread matches above, loose matches on Subject: below -- 2012-02-06 16:03 Pascal Levesque
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox