ACK: [PATCH][v2] uefi: uefidump: small re-working of uefi GUID lookup
Alex Hung
alex.hung at canonical.com
Thu Mar 6 03:42:21 UTC 2014
On 03/05/2014 04:53 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> I've taken the liberty to re-work the GUID lookup to
> couple guid and str arrays into an array of guid_maps.
> No functional change.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> src/uefi/uefidump/uefidump.c | 59 +++++++++++++++++++++-----------------------
> 1 file changed, 28 insertions(+), 31 deletions(-)
>
> diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
> index cc1137f..50d47e1 100644
> --- a/src/uefi/uefidump/uefidump.c
> +++ b/src/uefi/uefidump/uefidump.c
> @@ -1059,40 +1059,34 @@ static void uefidump_info_keyoption(fwts_framework *fw, fwts_uefi_var *var)
> }
> }
>
> +#define GUID_MAP(x) { x, # x }
> +
> static void uefidump_info_signaturedatabase(fwts_framework *fw, fwts_uefi_var *var)
> {
> fwts_uefi_signature_list *signature_list;
> char guid_str[37];
> size_t offset = 0, list_start = 0;
> size_t i;
> - fwts_uefi_guid guid[] = {
> - EFI_CERT_X509_GUID,
> - EFI_CERT_SHA256_GUID,
> - EFI_CERT_RSA2048_GUID,
> - EFI_CERT_RSA2048_SHA256_GUID,
> - EFI_CERT_SHA1_GUID,
> - EFI_CERT_RSA2048_SHA1_GUID,
> - EFI_CERT_SHA224_GUID,
> - EFI_CERT_SHA384_GUID,
> - EFI_CERT_SHA512_GUID,
> - EFI_CERT_X509_SHA256_GUID,
> - EFI_CERT_X509_SHA384_GUID,
> - EFI_CERT_X509_SHA512_GUID
> - };
> - char *str[] = {
> - "EFI_CERT_X509_GUID",
> - "EFI_CERT_SHA256_GUID",
> - "EFI_CERT_RSA2048_GUID",
> - "EFI_CERT_RSA2048_SHA256_GUID",
> - "EFI_CERT_SHA1_GUID",
> - "EFI_CERT_RSA2048_SHA1_GUID",
> - "EFI_CERT_SHA224_GUID",
> - "EFI_CERT_SHA384_GUID",
> - "EFI_CERT_SHA512_GUID",
> - "EFI_CERT_X509_SHA256_GUID",
> - "EFI_CERT_X509_SHA384_GUID",
> - "EFI_CERT_X509_SHA512_GUID",
> - "Unknown GUID"
> +
> + typedef struct {
> + const fwts_uefi_guid guid;
> + const char *str;
> + } guid_map;
> +
> + static const guid_map guids[] = {
> + GUID_MAP(EFI_CERT_X509_GUID),
> + GUID_MAP(EFI_CERT_SHA256_GUID),
> + GUID_MAP(EFI_CERT_RSA2048_GUID),
> + GUID_MAP(EFI_CERT_RSA2048_SHA256_GUID),
> + GUID_MAP(EFI_CERT_SHA1_GUID),
> + GUID_MAP(EFI_CERT_RSA2048_SHA1_GUID),
> + GUID_MAP(EFI_CERT_SHA224_GUID),
> + GUID_MAP(EFI_CERT_SHA384_GUID),
> + GUID_MAP(EFI_CERT_SHA512_GUID),
> + GUID_MAP(EFI_CERT_X509_SHA256_GUID),
> + GUID_MAP(EFI_CERT_X509_SHA384_GUID),
> + GUID_MAP(EFI_CERT_X509_SHA512_GUID),
> + { { 0, 0, 0, { 0, }}, NULL }
> };
>
> if (var->datalen < sizeof(fwts_uefi_signature_list))
> @@ -1101,12 +1095,15 @@ static void uefidump_info_signaturedatabase(fwts_framework *fw, fwts_uefi_var *v
> do {
> signature_list = (fwts_uefi_signature_list *)(var->data + list_start);
> fwts_guid_buf_to_str(var->data, guid_str, sizeof(guid_str));
> + const char *str = "Unknown GUID";
>
> - for (i = 0; i < sizeof(guid)/sizeof(guid[0]); i++)
> - if (memcmp(var->data, &guid[i], sizeof(fwts_uefi_guid)) == 0)
> + for (i = 0; guids[i].str; i++)
> + if (!memcmp(var->data, &guids[i].guid, sizeof(fwts_uefi_guid))) {
> + str = guids[i].str;
> break;
> + }
>
> - fwts_log_info_verbatum(fw, " SignatureType: %s (%s)", guid_str, str[i]);
> + fwts_log_info_verbatum(fw, " SignatureType: %s (%s)", guid_str, str);
> fwts_log_info_verbatum(fw, " SignatureListSize: 0x%" PRIx32, signature_list->signaturelistsize);
> fwts_log_info_verbatum(fw, " SignatureHeaderSize: 0x%" PRIx32, signature_list->signatureheadersize);
> fwts_log_info_verbatum(fw, " SignatureSize: 0x%" PRIx32, signature_list->signaturesize);
>
Acked-by: Alex Hung <alex.hung at canonical.com>
More information about the fwts-devel
mailing list