imgtool: Print image digest during verify
In an effort to create a script to do firmware based on an URL, I could
not easily retrieve the image digest. `newtmgr` needs the hash when
marking a image for testing.
Signed-off-by: Casper Meijn <casper@meijn.net>
diff --git a/scripts/imgtool/image.py b/scripts/imgtool/image.py
index 40a72bd..37c3091 100644
--- a/scripts/imgtool/image.py
+++ b/scripts/imgtool/image.py
@@ -529,12 +529,12 @@
version = struct.unpack('BBHI', b[20:28])
if magic != IMAGE_MAGIC:
- return VerifyResult.INVALID_MAGIC, None
+ return VerifyResult.INVALID_MAGIC, None, None
tlv_info = b[header_size+img_size:header_size+img_size+TLV_INFO_SIZE]
magic, tlv_tot = struct.unpack('HH', tlv_info)
if magic != TLV_INFO_MAGIC:
- return VerifyResult.INVALID_TLV_INFO_MAGIC, None
+ return VerifyResult.INVALID_TLV_INFO_MAGIC, None, None
sha = hashlib.sha256()
sha.update(b[:header_size+img_size])
@@ -550,9 +550,9 @@
off = tlv_off + TLV_SIZE
if digest == b[off:off+tlv_len]:
if key is None:
- return VerifyResult.OK, version
+ return VerifyResult.OK, version, digest
else:
- return VerifyResult.INVALID_HASH, None
+ return VerifyResult.INVALID_HASH, None, None
elif key is not None and tlv_type == TLV_VALUES[key.sig_tlv()]:
off = tlv_off + TLV_SIZE
tlv_sig = b[off:off+tlv_len]
@@ -562,9 +562,9 @@
key.verify(tlv_sig, payload)
else:
key.verify_digest(tlv_sig, digest)
- return VerifyResult.OK, version
+ return VerifyResult.OK, version, digest
except InvalidSignature:
# continue to next TLV
pass
tlv_off += TLV_SIZE + tlv_len
- return VerifyResult.INVALID_SIGNATURE, None
+ return VerifyResult.INVALID_SIGNATURE, None, None