|
@@ -1068,34 +1068,14 @@ static int fit_image_check_hash(const void *fit, int noffset, const void *data,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * fit_image_verify - verify data integrity
|
|
|
- * @fit: pointer to the FIT format image header
|
|
|
- * @image_noffset: component image node offset
|
|
|
- *
|
|
|
- * fit_image_verify() goes over component image hash nodes,
|
|
|
- * re-calculates each data hash and compares with the value stored in hash
|
|
|
- * node.
|
|
|
- *
|
|
|
- * returns:
|
|
|
- * 1, if all hashes are valid
|
|
|
- * 0, otherwise (or on error)
|
|
|
- */
|
|
|
-int fit_image_verify(const void *fit, int image_noffset)
|
|
|
+int fit_image_verify_with_data(const void *fit, int image_noffset,
|
|
|
+ const void *data, size_t size)
|
|
|
{
|
|
|
- const void *data;
|
|
|
- size_t size;
|
|
|
int noffset = 0;
|
|
|
char *err_msg = "";
|
|
|
int verify_all = 1;
|
|
|
int ret;
|
|
|
|
|
|
- /* Get image data and data length */
|
|
|
- if (fit_image_get_data(fit, image_noffset, &data, &size)) {
|
|
|
- err_msg = "Can't get image data/size";
|
|
|
- goto error;
|
|
|
- }
|
|
|
-
|
|
|
/* Verify all required signatures */
|
|
|
if (IMAGE_ENABLE_VERIFY &&
|
|
|
fit_image_verify_required_sigs(fit, image_noffset, data, size,
|
|
@@ -1152,6 +1132,38 @@ error:
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * fit_image_verify - verify data integrity
|
|
|
+ * @fit: pointer to the FIT format image header
|
|
|
+ * @image_noffset: component image node offset
|
|
|
+ *
|
|
|
+ * fit_image_verify() goes over component image hash nodes,
|
|
|
+ * re-calculates each data hash and compares with the value stored in hash
|
|
|
+ * node.
|
|
|
+ *
|
|
|
+ * returns:
|
|
|
+ * 1, if all hashes are valid
|
|
|
+ * 0, otherwise (or on error)
|
|
|
+ */
|
|
|
+int fit_image_verify(const void *fit, int image_noffset)
|
|
|
+{
|
|
|
+ const void *data;
|
|
|
+ size_t size;
|
|
|
+ int noffset = 0;
|
|
|
+ char *err_msg = "";
|
|
|
+
|
|
|
+ /* Get image data and data length */
|
|
|
+ if (fit_image_get_data(fit, image_noffset, &data, &size)) {
|
|
|
+ err_msg = "Can't get image data/size";
|
|
|
+ printf("error!\n%s for '%s' hash node in '%s' image node\n",
|
|
|
+ err_msg, fit_get_name(fit, noffset, NULL),
|
|
|
+ fit_get_name(fit, image_noffset, NULL));
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ return fit_image_verify_with_data(fit, image_noffset, data, size);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* fit_all_image_verify - verify data integrity for all images
|
|
|
* @fit: pointer to the FIT format image header
|