|
@@ -2496,6 +2496,36 @@ int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#ifndef USE_HOSTCC
|
|
|
|
+/**
|
|
|
|
+ * fit_image_hash_get_ignore - get hash ignore flag
|
|
|
|
+ * @fit: pointer to the FIT format image header
|
|
|
|
+ * @noffset: hash node offset
|
|
|
|
+ * @ignore: pointer to an int, will hold hash ignore flag
|
|
|
|
+ *
|
|
|
|
+ * fit_image_hash_get_ignore() finds hash ignore property in a given hash node.
|
|
|
|
+ * If the property is found and non-zero, the hash algorithm is not verified by
|
|
|
|
+ * u-boot automatically.
|
|
|
|
+ *
|
|
|
|
+ * returns:
|
|
|
|
+ * 0, on ignore not found
|
|
|
|
+ * value, on ignore found
|
|
|
|
+ */
|
|
|
|
+int fit_image_hash_get_ignore(const void *fit, int noffset, int *ignore)
|
|
|
|
+{
|
|
|
|
+ int len;
|
|
|
|
+ int *value;
|
|
|
|
+
|
|
|
|
+ value = (int *)fdt_getprop(fit, noffset, FIT_IGNORE_PROP, &len);
|
|
|
|
+ if (value == NULL || len != sizeof(int))
|
|
|
|
+ *ignore = 0;
|
|
|
|
+ else
|
|
|
|
+ *ignore = *value;
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+#endif
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* fit_set_timestamp - set node timestamp property
|
|
* fit_set_timestamp - set node timestamp property
|
|
* @fit: pointer to the FIT format image header
|
|
* @fit: pointer to the FIT format image header
|
|
@@ -2759,6 +2789,9 @@ int fit_image_check_hashes(const void *fit, int image_noffset)
|
|
char *algo;
|
|
char *algo;
|
|
uint8_t *fit_value;
|
|
uint8_t *fit_value;
|
|
int fit_value_len;
|
|
int fit_value_len;
|
|
|
|
+#ifndef USE_HOSTCC
|
|
|
|
+ int ignore;
|
|
|
|
+#endif
|
|
uint8_t value[FIT_MAX_HASH_LEN];
|
|
uint8_t value[FIT_MAX_HASH_LEN];
|
|
int value_len;
|
|
int value_len;
|
|
int noffset;
|
|
int noffset;
|
|
@@ -2795,6 +2828,14 @@ int fit_image_check_hashes(const void *fit, int image_noffset)
|
|
}
|
|
}
|
|
printf("%s", algo);
|
|
printf("%s", algo);
|
|
|
|
|
|
|
|
+#ifndef USE_HOSTCC
|
|
|
|
+ fit_image_hash_get_ignore(fit, noffset, &ignore);
|
|
|
|
+ if (ignore) {
|
|
|
|
+ printf("-skipped ");
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
+
|
|
if (fit_image_hash_get_value(fit, noffset, &fit_value,
|
|
if (fit_image_hash_get_value(fit, noffset, &fit_value,
|
|
&fit_value_len)) {
|
|
&fit_value_len)) {
|
|
err_msg = " error!\nCan't get hash value "
|
|
err_msg = " error!\nCan't get hash value "
|