common: avb_verify: add str_avb_io_error/str_avb_slot_error

Introduce str_avb_io_error() and str_avb_slot_error() functions,
that provide a pointer to AVB runtime error message.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Link: https://lore.kernel.org/r/20240209192045.3961832-6-igor.opaniuk@foundries.io
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This commit is contained in:
Igor Opaniuk 2024-02-09 20:20:43 +01:00 committed by Mattijs Korpershoek
parent 0ef0825a8c
commit fc7ef0f9e7
2 changed files with 51 additions and 1 deletions

View file

@ -119,6 +119,55 @@ static const unsigned char avb_root_pub[1032] = {
0xd8, 0x7e,
};
const char *str_avb_io_error(AvbIOResult res)
{
switch (res) {
case AVB_IO_RESULT_OK:
return "Requested operation was successful";
case AVB_IO_RESULT_ERROR_IO:
return "Underlying hardware encountered an I/O error";
case AVB_IO_RESULT_ERROR_OOM:
return "Unable to allocate memory";
case AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION:
return "Requested partition does not exist";
case AVB_IO_RESULT_ERROR_RANGE_OUTSIDE_PARTITION:
return "Bytes requested is outside the range of partition";
case AVB_IO_RESULT_ERROR_NO_SUCH_VALUE:
return "Named persistent value does not exist";
case AVB_IO_RESULT_ERROR_INVALID_VALUE_SIZE:
return "Named persistent value size is not supported";
case AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE:
return "Buffer is too small for the requested operation";
default:
return "Unknown AVB error";
}
}
const char *str_avb_slot_error(AvbSlotVerifyResult res)
{
switch (res) {
case AVB_SLOT_VERIFY_RESULT_OK:
return "Verification passed successfully";
case AVB_SLOT_VERIFY_RESULT_ERROR_OOM:
return "Allocation of memory failed";
case AVB_SLOT_VERIFY_RESULT_ERROR_IO:
return "I/O error occurred while trying to load data";
case AVB_SLOT_VERIFY_RESULT_ERROR_VERIFICATION:
return "Digest didn't match or signature checks failed";
case AVB_SLOT_VERIFY_RESULT_ERROR_ROLLBACK_INDEX:
return "Rollback index is less than its stored value";
case AVB_SLOT_VERIFY_RESULT_ERROR_PUBLIC_KEY_REJECTED:
return "Public keys are not accepted";
case AVB_SLOT_VERIFY_RESULT_ERROR_INVALID_METADATA:
return "Metadata is invalid or inconsistent";
case AVB_SLOT_VERIFY_RESULT_ERROR_UNSUPPORTED_VERSION:
return "Metadata requires a newer version of libavb";
case AVB_SLOT_VERIFY_RESULT_ERROR_INVALID_ARGUMENT:
return "Invalid arguments are used";
default:
return "Unknown AVB slot verification error";
}
}
/**
* ============================================================================
* Boot states support (GREEN, YELLOW, ORANGE, RED) and dm_verity

View file

@ -52,7 +52,8 @@ char *avb_set_enforce_verity(const char *cmdline);
char *avb_set_ignore_corruption(const char *cmdline);
char *append_cmd_line(char *cmdline_orig, char *cmdline_new);
const char *str_avb_io_error(AvbIOResult res);
const char *str_avb_slot_error(AvbSlotVerifyResult res);
/**
* ============================================================================
* I/O helper inline functions