diff --git a/plugins/uefi/fu-plugin-uefi.c b/plugins/uefi/fu-plugin-uefi.c index 554a5c61c..c93825e6f 100644 --- a/plugins/uefi/fu-plugin-uefi.c +++ b/plugins/uefi/fu-plugin-uefi.c @@ -16,6 +16,7 @@ #include "fu-plugin.h" #include "fu-plugin-vfuncs.h" +#include "fu-uefi-common.h" #include "fu-uefi-device.h" #ifndef HAVE_FWUP_GET_ESP_MOUNTPOINT @@ -603,19 +604,9 @@ fu_plugin_uefi_coldplug_resource (FuPlugin *plugin, fwup_resource *re) static void fu_plugin_uefi_test_secure_boot (FuPlugin *plugin) { - const efi_guid_t guid = EFI_GLOBAL_GUID; const gchar *result_str = "Disabled"; - g_autofree guint8 *data = NULL; - gsize data_size = 0; - guint32 attributes = 0; - gint rc; - - rc = efi_get_variable (guid, "SecureBoot", &data, &data_size, &attributes); - if (rc < 0) - return; - if (data_size >= 1 && data[0] & 1) + if (fu_uefi_secure_boot_enabled ()) result_str = "Enabled"; - g_debug ("SecureBoot is: %s", result_str); fu_plugin_add_report_metadata (plugin, "SecureBoot", result_str); } diff --git a/plugins/uefi/fu-uefi-common.c b/plugins/uefi/fu-uefi-common.c index 231dccdb7..b7035184d 100644 --- a/plugins/uefi/fu-uefi-common.c +++ b/plugins/uefi/fu-uefi-common.c @@ -7,8 +7,26 @@ #include "config.h" +#include + #include "fu-uefi-common.h" +gboolean +fu_uefi_secure_boot_enabled (void) +{ + gint rc; + gsize data_size = 0; + guint32 attributes = 0; + g_autofree guint8 *data = NULL; + + rc = efi_get_variable (efi_guid_global, "SecureBoot", &data, &data_size, &attributes); + if (rc < 0) + return FALSE; + if (data_size >= 1 && data[0] & 1) + return TRUE; + return FALSE; +} + static gint fu_uefi_strcmp_sort_cb (gconstpointer a, gconstpointer b) { diff --git a/plugins/uefi/fu-uefi-common.h b/plugins/uefi/fu-uefi-common.h index 982f74123..556c7e43c 100644 --- a/plugins/uefi/fu-uefi-common.h +++ b/plugins/uefi/fu-uefi-common.h @@ -13,6 +13,7 @@ G_BEGIN_DECLS +gboolean fu_uefi_secure_boot_enabled (void); GPtrArray *fu_uefi_get_esrt_entry_paths (const gchar *esrt_path, GError **error); guint64 fu_uefi_read_file_as_uint64 (const gchar *path, diff --git a/plugins/uefi/meson.build b/plugins/uefi/meson.build index bd6fa5f23..db9bea141 100644 --- a/plugins/uefi/meson.build +++ b/plugins/uefi/meson.build @@ -50,6 +50,7 @@ if get_option('tests') ], dependencies : [ plugin_deps, + fwup, ], link_with : [ fwupd,