Richard Hughes
0c51630991
Check firmware magic in a more standard way
...
Some parsers are ignoring the magic when using _FLAG_IGNORE_CHECKSUM
(which is wrong; fuzzers have no problem with enforcing a static prefix)
and other either disregard the offset or check the magic in an unsafe
way. Also, use FWUPD_ERROR_INVALID_FILE consistently for magic failure.
Add a vfunc, and move all the clever code into one place.
2022-07-14 14:48:15 +01:00
Richard Hughes
3236682a71
Allow decoding linear firmware with 'fwupdtool firmware-parse'
...
We cannot enable this for all formats as some firmware images have junk
data or are aligned in a specific way. Only do this when we know it is
safe.
2022-06-28 10:09:58 +01:00
Richard Hughes
0491b07a93
Make the FuFirmware->parse() vfunc more helpful
...
This removes the 100% unused addr_end parameter and explicitly makes
the addr_start into the start offset in more cases.
2022-06-27 15:40:11 -05:00
Richard Hughes
ed1b13da28
Split out the memory helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
4b1313b406
Split out the GByte helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
c6581fb7a6
Split out the GByteArray helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
519110b70e
Support firmware with uSWID header version 2
...
This allows multiple coSWID objects to be saved into a uSWID firmware,
and adds support for Zlib compressed payloads.
2022-04-18 17:48:52 +01:00
Richard Hughes
92515d193a
Add coSWID and uSWID parsers to libfwupdplugin
...
These parse the structures as defined in:
* https://datatracker.ietf.org/doc/draft-ietf-sacm-coswid/
* https://github.com/hughsie/python-uswid
2022-03-15 14:37:02 +00:00