X-Git-Url: https://code.delx.au/refind/blobdiff_plain/293749865fc028016e6896402afd37d7021a5e48..c1935b0f6d9272cfa51e9a6c1e342c252ea41b1f:/refind/mok.c diff --git a/refind/mok.c b/refind/mok.c index 6c4ef38..e9a2ad1 100644 --- a/refind/mok.c +++ b/refind/mok.c @@ -130,6 +130,15 @@ BOOLEAN secure_mode (VOID) return TRUE; } // secure_mode() +// Returns TRUE if the shim program is available to verify binaries, +// FALSE if not +BOOLEAN ShimLoaded(void) { + SHIM_LOCK *shim_lock; + EFI_GUID ShimLockGuid = SHIM_LOCK_GUID; + + return (BS->LocateProtocol(&ShimLockGuid, NULL, (VOID**) &shim_lock) == EFI_SUCCESS); +} // ShimLoaded() + /* * Currently, shim/MOK only works on x86-64 (X64) systems, and some of this code * generates warnings on x86 (IA32) builds, so don't bother compiling it at all @@ -330,8 +339,8 @@ static EFI_STATUS read_header(void *data, unsigned int datasize, // Returns TRUE if the specified data is validated by Shim's MOK, FALSE otherwise static BOOLEAN ShimValidate (VOID *data, UINT32 size) { - EFI_GUID ShimLockGuid = SHIM_LOCK_GUID; SHIM_LOCK *shim_lock; + EFI_GUID ShimLockGuid = SHIM_LOCK_GUID; if (BS->LocateProtocol(&ShimLockGuid, NULL, (VOID**) &shim_lock) == EFI_SUCCESS) { if (!shim_lock)