Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def verify(key, imgfile):
key = load_key(key) if key else None
ret, version = image.Image.verify(imgfile, key)
if ret == image.VerifyResult.OK:
print("Image was correctly validated")
print("Image version: {}.{}.{}+{}".format(*version))
return
elif ret == image.VerifyResult.INVALID_MAGIC:
print("Invalid image magic; is this an MCUboot image?")
elif ret == image.VerifyResult.INVALID_TLV_INFO_MAGIC:
print("Invalid TLV info magic; is this an MCUboot image?")
elif ret == image.VerifyResult.INVALID_HASH:
print("Image has an invalid sha256 digest")
elif ret == image.VerifyResult.INVALID_SIGNATURE:
print("No signature found for the given key")
else:
print("Unknown return code: {}".format(ret))
sys.exit(1)
def get_dfu_image_version(dfu_image):
res, ver = img.Image.verify(dfu_image, None)
if res != img.VerifyResult.OK:
print('Image in file is invalid')
return None
return ver
def is_dfu_image_correct(dfu_image):
if not os.path.isfile(dfu_image):
print('DFU image file does not exists')
return False
img_length = os.stat(dfu_image).st_size
if img_length <= 0:
print('DFU image is empty')
return False
print('DFU image size: {} bytes'.format(img_length))
res, _ = img.Image.verify(dfu_image, None)
if res != img.VerifyResult.OK:
print('DFU image is invalid')
return False
return True