Skip to content
  • Mathew McBride's avatar
    image: fit: fix byte order for crc32 hash check · b59ae73c
    Mathew McBride authored and Tom Rini's avatar Tom Rini committed
    In 92055e13 ("image: Drop if/elseif hash selection in calculate_hash()")
    the FIT image hash verification code was simplified to use the hash API.
    
    This broke verification of CRC32 hash FIT images (e.g NXP MC firmware)
    as the hash API crc32 calculates in big endian (refer commit
    74a18ee8, "crc32: Correct endianness of crc32 result"), whereas
    the previous call directly to crc32_wd does not do a byteswap.
    
    Example:
    dumpimage -l qoriq-mc-binary/ls1088a/mc_ls1088a_10.29.1.itb
    FIT description: MC Firmware
    Created:         Fri Aug 27 14:14:32 2021
    ...
      Hash algo:    crc32
      Hash value:   c09d959c
    Was returning FB9D3710 to fit_image_check_hash instead of C09D959C
    
    Correct the byte order in the crc32_uimage_fixup so the little endian
    values are returned.
    
    Fixes: 92055e13
    
     "image: Drop if/elseif hash selection in calculate_hash()"
    Signed-off-by: default avatarMathew McBride <matt@traverse.com.au>
    b59ae73c