]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / SecurityPkg / Library / DxeImageVerificationLib / DxeImageVerificationLib.c
index 100739eb3eb68ef4ab257c96312179a4c24d8cf0..66e2f5eaa3c0380c88aa397aa150c8950e99c583 100644 (file)
@@ -24,17 +24,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 // Caution: This is used by a function which may receive untrusted input.\r
 // These global variables hold PE/COFF image data, and they should be validated before use.\r
 //\r
-EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION mNtHeader;\r
-UINT32                              mPeCoffHeaderOffset;\r
-EFI_GUID                            mCertType;\r
+EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION  mNtHeader;\r
+UINT32                               mPeCoffHeaderOffset;\r
+EFI_GUID                             mCertType;\r
 \r
 //\r
 // Information on current PE/COFF image\r
 //\r
-UINTN                               mImageSize;\r
-UINT8                               *mImageBase       = NULL;\r
-UINT8                               mImageDigest[MAX_DIGEST_SIZE];\r
-UINTN                               mImageDigestSize;\r
+UINTN  mImageSize;\r
+UINT8  *mImageBase = NULL;\r
+UINT8  mImageDigest[MAX_DIGEST_SIZE];\r
+UINTN  mImageDigestSize;\r
 \r
 //\r
 // Notify string for authorization UI.\r
@@ -44,29 +44,32 @@ CHAR16  mNotifyString2[MAX_NOTIFY_STRING_LEN] = L"Launch this image anyway? (Yes
 //\r
 // Public Exponent of RSA Key.\r
 //\r
-CONST UINT8 mRsaE[] = { 0x01, 0x00, 0x01 };\r
-\r
+CONST UINT8  mRsaE[] = { 0x01, 0x00, 0x01 };\r
 \r
 //\r
 // OID ASN.1 Value for Hash Algorithms\r
 //\r
-UINT8 mHashOidValue[] = {\r
-  0x2B, 0x0E, 0x03, 0x02, 0x1A,                           // OBJ_sha1\r
-  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04,   // OBJ_sha224\r
-  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01,   // OBJ_sha256\r
-  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02,   // OBJ_sha384\r
-  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03,   // OBJ_sha512\r
-  };\r
-\r
-HASH_TABLE mHash[] = {\r
-  { L"SHA1",   20, &mHashOidValue[0],  5, Sha1GetContextSize,   Sha1Init,   Sha1Update,   Sha1Final  },\r
-  { L"SHA224", 28, &mHashOidValue[5],  9, NULL,                 NULL,       NULL,         NULL       },\r
-  { L"SHA256", 32, &mHashOidValue[14], 9, Sha256GetContextSize, Sha256Init, Sha256Update, Sha256Final},\r
-  { L"SHA384", 48, &mHashOidValue[23], 9, Sha384GetContextSize, Sha384Init, Sha384Update, Sha384Final},\r
-  { L"SHA512", 64, &mHashOidValue[32], 9, Sha512GetContextSize, Sha512Init, Sha512Update, Sha512Final}\r
+UINT8  mHashOidValue[] = {\r
+  0x2B, 0x0E, 0x03, 0x02, 0x1A,                         // OBJ_sha1\r
+  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04, // OBJ_sha224\r
+  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, // OBJ_sha256\r
+  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, // OBJ_sha384\r
+  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, // OBJ_sha512\r
+};\r
+\r
+HASH_TABLE  mHash[] = {\r
+ #ifndef DISABLE_SHA1_DEPRECATED_INTERFACES\r
+  { L"SHA1",   20, &mHashOidValue[0],  5, Sha1GetContextSize,   Sha1Init,   Sha1Update,   Sha1Final   },\r
+ #else\r
+  { L"SHA1",   20, &mHashOidValue[0],  5, NULL,                 NULL,       NULL,         NULL        },\r
+ #endif\r
+  { L"SHA224", 28, &mHashOidValue[5],  9, NULL,                 NULL,       NULL,         NULL        },\r
+  { L"SHA256", 32, &mHashOidValue[14], 9, Sha256GetContextSize, Sha256Init, Sha256Update, Sha256Final },\r
+  { L"SHA384", 48, &mHashOidValue[23], 9, Sha384GetContextSize, Sha384Init, Sha384Update, Sha384Final },\r
+  { L"SHA512", 64, &mHashOidValue[32], 9, Sha512GetContextSize, Sha512Init, Sha512Update, Sha512Final }\r
 };\r
 \r
-EFI_STRING mHashTypeStr;\r
+EFI_STRING  mHashTypeStr;\r
 \r
 /**\r
   SecureBoot Hook for processing image verification.\r
@@ -81,10 +84,10 @@ EFI_STRING mHashTypeStr;
 VOID\r
 EFIAPI\r
 SecureBootHook (\r
-  IN CHAR16                                 *VariableName,\r
-  IN EFI_GUID                               *VendorGuid,\r
-  IN UINTN                                  DataSize,\r
-  IN VOID                                   *Data\r
+  IN CHAR16    *VariableName,\r
+  IN EFI_GUID  *VendorGuid,\r
+  IN UINTN     DataSize,\r
+  IN VOID      *Data\r
   );\r
 \r
 /**\r
@@ -105,15 +108,15 @@ SecureBootHook (
 EFI_STATUS\r
 EFIAPI\r
 DxeImageVerificationLibImageRead (\r
-  IN     VOID    *FileHandle,\r
-  IN     UINTN   FileOffset,\r
-  IN OUT UINTN   *ReadSize,\r
-  OUT    VOID    *Buffer\r
+  IN     VOID   *FileHandle,\r
+  IN     UINTN  FileOffset,\r
+  IN OUT UINTN  *ReadSize,\r
+  OUT    VOID   *Buffer\r
   )\r
 {\r
-  UINTN               EndPosition;\r
+  UINTN  EndPosition;\r
 \r
-  if (FileHandle == NULL || ReadSize == NULL || Buffer == NULL) {\r
+  if ((FileHandle == NULL) || (ReadSize == NULL) || (Buffer == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -130,12 +133,11 @@ DxeImageVerificationLibImageRead (
     *ReadSize = 0;\r
   }\r
 \r
-  CopyMem (Buffer, (UINT8 *)((UINTN) FileHandle + FileOffset), *ReadSize);\r
+  CopyMem (Buffer, (UINT8 *)((UINTN)FileHandle + FileOffset), *ReadSize);\r
 \r
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Get the image type.\r
 \r
@@ -147,13 +149,13 @@ DxeImageVerificationLibImageRead (
 **/\r
 UINT32\r
 GetImageType (\r
-  IN  CONST EFI_DEVICE_PATH_PROTOCOL   *File\r
+  IN  CONST EFI_DEVICE_PATH_PROTOCOL  *File\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  EFI_HANDLE                        DeviceHandle;\r
-  EFI_DEVICE_PATH_PROTOCOL          *TempDevicePath;\r
-  EFI_BLOCK_IO_PROTOCOL             *BlockIo;\r
+  EFI_STATUS                Status;\r
+  EFI_HANDLE                DeviceHandle;\r
+  EFI_DEVICE_PATH_PROTOCOL  *TempDevicePath;\r
+  EFI_BLOCK_IO_PROTOCOL     *BlockIo;\r
 \r
   if (File == NULL) {\r
     return IMAGE_UNKNOWN;\r
@@ -162,13 +164,13 @@ GetImageType (
   //\r
   // First check to see if File is from a Firmware Volume\r
   //\r
-  DeviceHandle      = NULL;\r
-  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) File;\r
-  Status = gBS->LocateDevicePath (\r
-                  &gEfiFirmwareVolume2ProtocolGuid,\r
-                  &TempDevicePath,\r
-                  &DeviceHandle\r
-                  );\r
+  DeviceHandle   = NULL;\r
+  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)File;\r
+  Status         = gBS->LocateDevicePath (\r
+                          &gEfiFirmwareVolume2ProtocolGuid,\r
+                          &TempDevicePath,\r
+                          &DeviceHandle\r
+                          );\r
   if (!EFI_ERROR (Status)) {\r
     Status = gBS->OpenProtocol (\r
                     DeviceHandle,\r
@@ -187,23 +189,23 @@ GetImageType (
   // Next check to see if File is from a Block I/O device\r
   //\r
   DeviceHandle   = NULL;\r
-  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) File;\r
-  Status = gBS->LocateDevicePath (\r
-                  &gEfiBlockIoProtocolGuid,\r
-                  &TempDevicePath,\r
-                  &DeviceHandle\r
-                  );\r
+  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)File;\r
+  Status         = gBS->LocateDevicePath (\r
+                          &gEfiBlockIoProtocolGuid,\r
+                          &TempDevicePath,\r
+                          &DeviceHandle\r
+                          );\r
   if (!EFI_ERROR (Status)) {\r
     BlockIo = NULL;\r
-    Status = gBS->OpenProtocol (\r
-                    DeviceHandle,\r
-                    &gEfiBlockIoProtocolGuid,\r
-                    (VOID **) &BlockIo,\r
-                    NULL,\r
-                    NULL,\r
-                    EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                    );\r
-    if (!EFI_ERROR (Status) && BlockIo != NULL) {\r
+    Status  = gBS->OpenProtocol (\r
+                     DeviceHandle,\r
+                     &gEfiBlockIoProtocolGuid,\r
+                     (VOID **)&BlockIo,\r
+                     NULL,\r
+                     NULL,\r
+                     EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
+                     );\r
+    if (!EFI_ERROR (Status) && (BlockIo != NULL)) {\r
       if (BlockIo->Media != NULL) {\r
         if (BlockIo->Media->RemovableMedia) {\r
           //\r
@@ -225,12 +227,12 @@ GetImageType (
   // the device path supports the Simple File System Protocol.\r
   //\r
   DeviceHandle   = NULL;\r
-  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) File;\r
-  Status = gBS->LocateDevicePath (\r
-                  &gEfiSimpleFileSystemProtocolGuid,\r
-                  &TempDevicePath,\r
-                  &DeviceHandle\r
-                  );\r
+  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)File;\r
+  Status         = gBS->LocateDevicePath (\r
+                          &gEfiSimpleFileSystemProtocolGuid,\r
+                          &TempDevicePath,\r
+                          &DeviceHandle\r
+                          );\r
   if (!EFI_ERROR (Status)) {\r
     //\r
     // Simple File System is present without Block I/O, so assume media is fixed.\r
@@ -242,27 +244,30 @@ GetImageType (
   // File is not from an FV, Block I/O or Simple File System, so the only options\r
   // left are a PCI Option ROM and a Load File Protocol such as a PXE Boot from a NIC.\r
   //\r
-  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) File;\r
+  TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)File;\r
   while (!IsDevicePathEndType (TempDevicePath)) {\r
     switch (DevicePathType (TempDevicePath)) {\r
+      case MEDIA_DEVICE_PATH:\r
+        if (DevicePathSubType (TempDevicePath) == MEDIA_RELATIVE_OFFSET_RANGE_DP) {\r
+          return IMAGE_FROM_OPTION_ROM;\r
+        }\r
 \r
-    case MEDIA_DEVICE_PATH:\r
-      if (DevicePathSubType (TempDevicePath) == MEDIA_RELATIVE_OFFSET_RANGE_DP) {\r
-        return IMAGE_FROM_OPTION_ROM;\r
-      }\r
-      break;\r
+        break;\r
 \r
-    case MESSAGING_DEVICE_PATH:\r
-      if (DevicePathSubType(TempDevicePath) == MSG_MAC_ADDR_DP) {\r
-        return IMAGE_FROM_REMOVABLE_MEDIA;\r
-      }\r
-      break;\r
+      case MESSAGING_DEVICE_PATH:\r
+        if (DevicePathSubType (TempDevicePath) == MSG_MAC_ADDR_DP) {\r
+          return IMAGE_FROM_REMOVABLE_MEDIA;\r
+        }\r
 \r
-    default:\r
-      break;\r
+        break;\r
+\r
+      default:\r
+        break;\r
     }\r
+\r
     TempDevicePath = NextDevicePathNode (TempDevicePath);\r
   }\r
+\r
   return IMAGE_UNKNOWN;\r
 }\r
 \r
@@ -285,7 +290,7 @@ GetImageType (
 **/\r
 BOOLEAN\r
 HashPeImage (\r
-  IN  UINT32              HashAlg\r
+  IN  UINT32  HashAlg\r
   )\r
 {\r
   BOOLEAN                   Status;\r
@@ -315,32 +320,34 @@ HashPeImage (
   ZeroMem (mImageDigest, MAX_DIGEST_SIZE);\r
 \r
   switch (HashAlg) {\r
-  case HASHALG_SHA1:\r
-    mImageDigestSize = SHA1_DIGEST_SIZE;\r
-    mCertType        = gEfiCertSha1Guid;\r
-    break;\r
-\r
-  case HASHALG_SHA256:\r
-    mImageDigestSize = SHA256_DIGEST_SIZE;\r
-    mCertType        = gEfiCertSha256Guid;\r
-    break;\r
-\r
-  case HASHALG_SHA384:\r
-    mImageDigestSize = SHA384_DIGEST_SIZE;\r
-    mCertType        = gEfiCertSha384Guid;\r
-    break;\r
-\r
-  case HASHALG_SHA512:\r
-    mImageDigestSize = SHA512_DIGEST_SIZE;\r
-    mCertType        = gEfiCertSha512Guid;\r
-    break;\r
-\r
-  default:\r
-    return FALSE;\r
+ #ifndef DISABLE_SHA1_DEPRECATED_INTERFACES\r
+    case HASHALG_SHA1:\r
+      mImageDigestSize = SHA1_DIGEST_SIZE;\r
+      mCertType        = gEfiCertSha1Guid;\r
+      break;\r
+ #endif\r
+\r
+    case HASHALG_SHA256:\r
+      mImageDigestSize = SHA256_DIGEST_SIZE;\r
+      mCertType        = gEfiCertSha256Guid;\r
+      break;\r
+\r
+    case HASHALG_SHA384:\r
+      mImageDigestSize = SHA384_DIGEST_SIZE;\r
+      mCertType        = gEfiCertSha384Guid;\r
+      break;\r
+\r
+    case HASHALG_SHA512:\r
+      mImageDigestSize = SHA512_DIGEST_SIZE;\r
+      mCertType        = gEfiCertSha512Guid;\r
+      break;\r
+\r
+    default:\r
+      return FALSE;\r
   }\r
 \r
   mHashTypeStr = mHash[HashAlg].Name;\r
-  CtxSize   = mHash[HashAlg].GetContextSize();\r
+  CtxSize      = mHash[HashAlg].GetContextSize ();\r
 \r
   HashCtx = AllocatePool (CtxSize);\r
   if (HashCtx == NULL) {\r
@@ -350,7 +357,7 @@ HashPeImage (
   // 1.  Load the image header into memory.\r
 \r
   // 2.  Initialize a SHA hash context.\r
-  Status = mHash[HashAlg].HashInit(HashCtx);\r
+  Status = mHash[HashAlg].HashInit (HashCtx);\r
 \r
   if (!Status) {\r
     goto Done;\r
@@ -370,13 +377,13 @@ HashPeImage (
     //\r
     // Use PE32 offset.\r
     //\r
-    HashSize = (UINTN) (&mNtHeader.Pe32->OptionalHeader.CheckSum) - (UINTN) HashBase;\r
+    HashSize            = (UINTN)(&mNtHeader.Pe32->OptionalHeader.CheckSum) - (UINTN)HashBase;\r
     NumberOfRvaAndSizes = mNtHeader.Pe32->OptionalHeader.NumberOfRvaAndSizes;\r
   } else if (mNtHeader.Pe32->OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC) {\r
     //\r
     // Use PE32+ offset.\r
     //\r
-    HashSize = (UINTN) (&mNtHeader.Pe32Plus->OptionalHeader.CheckSum) - (UINTN) HashBase;\r
+    HashSize            = (UINTN)(&mNtHeader.Pe32Plus->OptionalHeader.CheckSum) - (UINTN)HashBase;\r
     NumberOfRvaAndSizes = mNtHeader.Pe32Plus->OptionalHeader.NumberOfRvaAndSizes;\r
   } else {\r
     //\r
@@ -386,7 +393,7 @@ HashPeImage (
     goto Done;\r
   }\r
 \r
-  Status  = mHash[HashAlg].HashUpdate(HashCtx, HashBase, HashSize);\r
+  Status = mHash[HashAlg].HashUpdate (HashCtx, HashBase, HashSize);\r
   if (!Status) {\r
     goto Done;\r
   }\r
@@ -403,18 +410,18 @@ HashPeImage (
       //\r
       // Use PE32 offset.\r
       //\r
-      HashBase = (UINT8 *) &mNtHeader.Pe32->OptionalHeader.CheckSum + sizeof (UINT32);\r
-      HashSize = mNtHeader.Pe32->OptionalHeader.SizeOfHeaders - ((UINTN) HashBase - (UINTN) mImageBase);\r
+      HashBase = (UINT8 *)&mNtHeader.Pe32->OptionalHeader.CheckSum + sizeof (UINT32);\r
+      HashSize = mNtHeader.Pe32->OptionalHeader.SizeOfHeaders - ((UINTN)HashBase - (UINTN)mImageBase);\r
     } else {\r
       //\r
       // Use PE32+ offset.\r
       //\r
-      HashBase = (UINT8 *) &mNtHeader.Pe32Plus->OptionalHeader.CheckSum + sizeof (UINT32);\r
-      HashSize = mNtHeader.Pe32Plus->OptionalHeader.SizeOfHeaders - ((UINTN) HashBase - (UINTN) mImageBase);\r
+      HashBase = (UINT8 *)&mNtHeader.Pe32Plus->OptionalHeader.CheckSum + sizeof (UINT32);\r
+      HashSize = mNtHeader.Pe32Plus->OptionalHeader.SizeOfHeaders - ((UINTN)HashBase - (UINTN)mImageBase);\r
     }\r
 \r
     if (HashSize != 0) {\r
-      Status  = mHash[HashAlg].HashUpdate(HashCtx, HashBase, HashSize);\r
+      Status = mHash[HashAlg].HashUpdate (HashCtx, HashBase, HashSize);\r
       if (!Status) {\r
         goto Done;\r
       }\r
@@ -427,18 +434,18 @@ HashPeImage (
       //\r
       // Use PE32 offset.\r
       //\r
-      HashBase = (UINT8 *) &mNtHeader.Pe32->OptionalHeader.CheckSum + sizeof (UINT32);\r
-      HashSize = (UINTN) (&mNtHeader.Pe32->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY]) - (UINTN) HashBase;\r
+      HashBase = (UINT8 *)&mNtHeader.Pe32->OptionalHeader.CheckSum + sizeof (UINT32);\r
+      HashSize = (UINTN)(&mNtHeader.Pe32->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY]) - (UINTN)HashBase;\r
     } else {\r
       //\r
       // Use PE32+ offset.\r
       //\r
-      HashBase = (UINT8 *) &mNtHeader.Pe32Plus->OptionalHeader.CheckSum + sizeof (UINT32);\r
-      HashSize = (UINTN) (&mNtHeader.Pe32Plus->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY]) - (UINTN) HashBase;\r
+      HashBase = (UINT8 *)&mNtHeader.Pe32Plus->OptionalHeader.CheckSum + sizeof (UINT32);\r
+      HashSize = (UINTN)(&mNtHeader.Pe32Plus->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY]) - (UINTN)HashBase;\r
     }\r
 \r
     if (HashSize != 0) {\r
-      Status  = mHash[HashAlg].HashUpdate(HashCtx, HashBase, HashSize);\r
+      Status = mHash[HashAlg].HashUpdate (HashCtx, HashBase, HashSize);\r
       if (!Status) {\r
         goto Done;\r
       }\r
@@ -452,18 +459,18 @@ HashPeImage (
       //\r
       // Use PE32 offset\r
       //\r
-      HashBase = (UINT8 *) &mNtHeader.Pe32->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY + 1];\r
-      HashSize = mNtHeader.Pe32->OptionalHeader.SizeOfHeaders - ((UINTN) HashBase - (UINTN) mImageBase);\r
+      HashBase = (UINT8 *)&mNtHeader.Pe32->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY + 1];\r
+      HashSize = mNtHeader.Pe32->OptionalHeader.SizeOfHeaders - ((UINTN)HashBase - (UINTN)mImageBase);\r
     } else {\r
       //\r
       // Use PE32+ offset.\r
       //\r
-      HashBase = (UINT8 *) &mNtHeader.Pe32Plus->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY + 1];\r
-      HashSize = mNtHeader.Pe32Plus->OptionalHeader.SizeOfHeaders - ((UINTN) HashBase - (UINTN) mImageBase);\r
+      HashBase = (UINT8 *)&mNtHeader.Pe32Plus->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY + 1];\r
+      HashSize = mNtHeader.Pe32Plus->OptionalHeader.SizeOfHeaders - ((UINTN)HashBase - (UINTN)mImageBase);\r
     }\r
 \r
     if (HashSize != 0) {\r
-      Status  = mHash[HashAlg].HashUpdate(HashCtx, HashBase, HashSize);\r
+      Status = mHash[HashAlg].HashUpdate (HashCtx, HashBase, HashSize);\r
       if (!Status) {\r
         goto Done;\r
       }\r
@@ -485,14 +492,13 @@ HashPeImage (
     SumOfBytesHashed = mNtHeader.Pe32Plus->OptionalHeader.SizeOfHeaders;\r
   }\r
 \r
-\r
-  Section = (EFI_IMAGE_SECTION_HEADER *) (\r
-               mImageBase +\r
-               mPeCoffHeaderOffset +\r
-               sizeof (UINT32) +\r
-               sizeof (EFI_IMAGE_FILE_HEADER) +\r
-               mNtHeader.Pe32->FileHeader.SizeOfOptionalHeader\r
-               );\r
+  Section = (EFI_IMAGE_SECTION_HEADER *)(\r
+                                         mImageBase +\r
+                                         mPeCoffHeaderOffset +\r
+                                         sizeof (UINT32) +\r
+                                         sizeof (EFI_IMAGE_FILE_HEADER) +\r
+                                         mNtHeader.Pe32->FileHeader.SizeOfOptionalHeader\r
+                                         );\r
 \r
   //\r
   // 11. Build a temporary table of pointers to all the IMAGE_SECTION_HEADER\r
@@ -500,11 +506,12 @@ HashPeImage (
   //     header indicates how big the table should be. Do not include any\r
   //     IMAGE_SECTION_HEADERs in the table whose 'SizeOfRawData' field is zero.\r
   //\r
-  SectionHeader = (EFI_IMAGE_SECTION_HEADER *) AllocateZeroPool (sizeof (EFI_IMAGE_SECTION_HEADER) * mNtHeader.Pe32->FileHeader.NumberOfSections);\r
+  SectionHeader = (EFI_IMAGE_SECTION_HEADER *)AllocateZeroPool (sizeof (EFI_IMAGE_SECTION_HEADER) * mNtHeader.Pe32->FileHeader.NumberOfSections);\r
   if (SectionHeader == NULL) {\r
     Status = FALSE;\r
     goto Done;\r
   }\r
+\r
   //\r
   // 12.  Using the 'PointerToRawData' in the referenced section headers as\r
   //      a key, arrange the elements in the table in ascending order. In other\r
@@ -517,6 +524,7 @@ HashPeImage (
       CopyMem (&SectionHeader[Pos], &SectionHeader[Pos - 1], sizeof (EFI_IMAGE_SECTION_HEADER));\r
       Pos--;\r
     }\r
+\r
     CopyMem (&SectionHeader[Pos], Section, sizeof (EFI_IMAGE_SECTION_HEADER));\r
     Section += 1;\r
   }\r
@@ -533,10 +541,11 @@ HashPeImage (
     if (Section->SizeOfRawData == 0) {\r
       continue;\r
     }\r
-    HashBase  = mImageBase + Section->PointerToRawData;\r
-    HashSize  = (UINTN) Section->SizeOfRawData;\r
 \r
-    Status  = mHash[HashAlg].HashUpdate(HashCtx, HashBase, HashSize);\r
+    HashBase = mImageBase + Section->PointerToRawData;\r
+    HashSize = (UINTN)Section->SizeOfRawData;\r
+\r
+    Status = mHash[HashAlg].HashUpdate (HashCtx, HashBase, HashSize);\r
     if (!Status) {\r
       goto Done;\r
     }\r
@@ -570,9 +579,9 @@ HashPeImage (
     }\r
 \r
     if (mImageSize > CertSize + SumOfBytesHashed) {\r
-      HashSize = (UINTN) (mImageSize - CertSize - SumOfBytesHashed);\r
+      HashSize = (UINTN)(mImageSize - CertSize - SumOfBytesHashed);\r
 \r
-      Status  = mHash[HashAlg].HashUpdate(HashCtx, HashBase, HashSize);\r
+      Status = mHash[HashAlg].HashUpdate (HashCtx, HashBase, HashSize);\r
       if (!Status) {\r
         goto Done;\r
       }\r
@@ -582,15 +591,17 @@ HashPeImage (
     }\r
   }\r
 \r
-  Status  = mHash[HashAlg].HashFinal(HashCtx, mImageDigest);\r
+  Status = mHash[HashAlg].HashFinal (HashCtx, mImageDigest);\r
 \r
 Done:\r
   if (HashCtx != NULL) {\r
     FreePool (HashCtx);\r
   }\r
+\r
   if (SectionHeader != NULL) {\r
     FreePool (SectionHeader);\r
   }\r
+\r
   return Status;\r
 }\r
 \r
@@ -612,11 +623,11 @@ Done:
 **/\r
 EFI_STATUS\r
 HashPeImageByType (\r
-  IN UINT8              *AuthData,\r
-  IN UINTN              AuthDataSize\r
+  IN UINT8  *AuthData,\r
+  IN UINTN  AuthDataSize\r
   )\r
 {\r
-  UINT8                     Index;\r
+  UINT8  Index;\r
 \r
   for (Index = 0; Index < HASHALG_MAX; Index++) {\r
     //\r
@@ -654,14 +665,13 @@ HashPeImageByType (
   //\r
   // HASH PE Image based on Hash algorithm in PE/COFF Authenticode.\r
   //\r
-  if (!HashPeImage(Index)) {\r
+  if (!HashPeImage (Index)) {\r
     return EFI_UNSUPPORTED;\r
   }\r
 \r
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Returns the size of a given image execution info table in bytes.\r
 \r
@@ -676,7 +686,7 @@ HashPeImageByType (
 **/\r
 UINTN\r
 GetImageExeInfoTableSize (\r
-  EFI_IMAGE_EXECUTION_INFO_TABLE        *ImageExeInfoTable\r
+  EFI_IMAGE_EXECUTION_INFO_TABLE  *ImageExeInfoTable\r
   )\r
 {\r
   UINTN                     Index;\r
@@ -687,11 +697,11 @@ GetImageExeInfoTableSize (
     return 0;\r
   }\r
 \r
-  ImageExeInfoItem  = (EFI_IMAGE_EXECUTION_INFO *) ((UINT8 *) ImageExeInfoTable + sizeof (EFI_IMAGE_EXECUTION_INFO_TABLE));\r
-  TotalSize         = sizeof (EFI_IMAGE_EXECUTION_INFO_TABLE);\r
+  ImageExeInfoItem = (EFI_IMAGE_EXECUTION_INFO *)((UINT8 *)ImageExeInfoTable + sizeof (EFI_IMAGE_EXECUTION_INFO_TABLE));\r
+  TotalSize        = sizeof (EFI_IMAGE_EXECUTION_INFO_TABLE);\r
   for (Index = 0; Index < ImageExeInfoTable->NumberOfImages; Index++) {\r
-    TotalSize += ReadUnaligned32 ((UINT32 *) &ImageExeInfoItem->InfoSize);\r
-    ImageExeInfoItem = (EFI_IMAGE_EXECUTION_INFO *) ((UINT8 *) ImageExeInfoItem + ReadUnaligned32 ((UINT32 *) &ImageExeInfoItem->InfoSize));\r
+    TotalSize       += ReadUnaligned32 ((UINT32 *)&ImageExeInfoItem->InfoSize);\r
+    ImageExeInfoItem = (EFI_IMAGE_EXECUTION_INFO *)((UINT8 *)ImageExeInfoItem + ReadUnaligned32 ((UINT32 *)&ImageExeInfoItem->InfoSize));\r
   }\r
 \r
   return TotalSize;\r
@@ -709,11 +719,11 @@ GetImageExeInfoTableSize (
 **/\r
 VOID\r
 AddImageExeInfo (\r
-  IN       EFI_IMAGE_EXECUTION_ACTION       Action,\r
-  IN       CHAR16                           *Name OPTIONAL,\r
-  IN CONST EFI_DEVICE_PATH_PROTOCOL         *DevicePath,\r
-  IN       EFI_SIGNATURE_LIST               *Signature OPTIONAL,\r
-  IN       UINTN                            SignatureSize\r
+  IN       EFI_IMAGE_EXECUTION_ACTION  Action,\r
+  IN       CHAR16                      *Name OPTIONAL,\r
+  IN CONST EFI_DEVICE_PATH_PROTOCOL    *DevicePath,\r
+  IN       EFI_SIGNATURE_LIST          *Signature OPTIONAL,\r
+  IN       UINTN                       SignatureSize\r
   )\r
 {\r
   EFI_IMAGE_EXECUTION_INFO_TABLE  *ImageExeInfoTable;\r
@@ -725,14 +735,14 @@ AddImageExeInfo (
   UINTN                           DevicePathSize;\r
   CHAR16                          *NameStr;\r
 \r
-  ImageExeInfoTable     = NULL;\r
-  NewImageExeInfoTable  = NULL;\r
-  ImageExeInfoEntry     = NULL;\r
-  NameStringLen         = 0;\r
-  NameStr               = NULL;\r
+  ImageExeInfoTable    = NULL;\r
+  NewImageExeInfoTable = NULL;\r
+  ImageExeInfoEntry    = NULL;\r
+  NameStringLen        = 0;\r
+  NameStr              = NULL;\r
 \r
   if (DevicePath == NULL) {\r
-    return ;\r
+    return;\r
   }\r
 \r
   if (Name != NULL) {\r
@@ -741,7 +751,7 @@ AddImageExeInfo (
     NameStringLen = sizeof (CHAR16);\r
   }\r
 \r
-  EfiGetSystemConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID **) &ImageExeInfoTable);\r
+  EfiGetSystemConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID **)&ImageExeInfoTable);\r
   if (ImageExeInfoTable != NULL) {\r
     //\r
     // The table has been found!\r
@@ -756,7 +766,7 @@ AddImageExeInfo (
     ImageExeInfoTableSize = sizeof (EFI_IMAGE_EXECUTION_INFO_TABLE);\r
   }\r
 \r
-  DevicePathSize            = GetDevicePathSize (DevicePath);\r
+  DevicePathSize = GetDevicePathSize (DevicePath);\r
 \r
   //\r
   // Signature size can be odd. Pad after signature to ensure next EXECUTION_INFO entry align\r
@@ -764,9 +774,9 @@ AddImageExeInfo (
   ASSERT (Signature != NULL || SignatureSize == 0);\r
   NewImageExeInfoEntrySize = sizeof (EFI_IMAGE_EXECUTION_INFO) + NameStringLen + DevicePathSize + SignatureSize;\r
 \r
-  NewImageExeInfoTable      = (EFI_IMAGE_EXECUTION_INFO_TABLE *) AllocateRuntimePool (ImageExeInfoTableSize + NewImageExeInfoEntrySize);\r
+  NewImageExeInfoTable = (EFI_IMAGE_EXECUTION_INFO_TABLE *)AllocateRuntimePool (ImageExeInfoTableSize + NewImageExeInfoEntrySize);\r
   if (NewImageExeInfoTable == NULL) {\r
-    return ;\r
+    return;\r
   }\r
 \r
   if (ImageExeInfoTable != NULL) {\r
@@ -774,37 +784,39 @@ AddImageExeInfo (
   } else {\r
     NewImageExeInfoTable->NumberOfImages = 0;\r
   }\r
+\r
   NewImageExeInfoTable->NumberOfImages++;\r
-  ImageExeInfoEntry = (EFI_IMAGE_EXECUTION_INFO *) ((UINT8 *) NewImageExeInfoTable + ImageExeInfoTableSize);\r
+  ImageExeInfoEntry = (EFI_IMAGE_EXECUTION_INFO *)((UINT8 *)NewImageExeInfoTable + ImageExeInfoTableSize);\r
   //\r
   // Update new item's information.\r
   //\r
-  WriteUnaligned32 ((UINT32 *) ImageExeInfoEntry, Action);\r
-  WriteUnaligned32 ((UINT32 *) ((UINT8 *) ImageExeInfoEntry + sizeof (EFI_IMAGE_EXECUTION_ACTION)), (UINT32) NewImageExeInfoEntrySize);\r
+  WriteUnaligned32 ((UINT32 *)ImageExeInfoEntry, Action);\r
+  WriteUnaligned32 ((UINT32 *)((UINT8 *)ImageExeInfoEntry + sizeof (EFI_IMAGE_EXECUTION_ACTION)), (UINT32)NewImageExeInfoEntrySize);\r
 \r
   NameStr = (CHAR16 *)(ImageExeInfoEntry + 1);\r
   if (Name != NULL) {\r
-    CopyMem ((UINT8 *) NameStr, Name, NameStringLen);\r
+    CopyMem ((UINT8 *)NameStr, Name, NameStringLen);\r
   } else {\r
-    ZeroMem ((UINT8 *) NameStr, sizeof (CHAR16));\r
+    ZeroMem ((UINT8 *)NameStr, sizeof (CHAR16));\r
   }\r
 \r
   CopyMem (\r
-    (UINT8 *) NameStr + NameStringLen,\r
+    (UINT8 *)NameStr + NameStringLen,\r
     DevicePath,\r
     DevicePathSize\r
     );\r
   if (Signature != NULL) {\r
     CopyMem (\r
-      (UINT8 *) NameStr + NameStringLen + DevicePathSize,\r
+      (UINT8 *)NameStr + NameStringLen + DevicePathSize,\r
       Signature,\r
       SignatureSize\r
       );\r
   }\r
+\r
   //\r
   // Update/replace the image execution table.\r
   //\r
-  gBS->InstallConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID *) NewImageExeInfoTable);\r
+  gBS->InstallConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID *)NewImageExeInfoTable);\r
 \r
   //\r
   // Free Old table data!\r
@@ -882,7 +894,7 @@ IsCertHashFoundInDbx (
       HashAlg = HASHALG_SHA512;\r
     } else {\r
       DbxSize -= DbxList->SignatureListSize;\r
-      DbxList  = (EFI_SIGNATURE_LIST *) ((UINT8 *) DbxList + DbxList->SignatureListSize);\r
+      DbxList  = (EFI_SIGNATURE_LIST *)((UINT8 *)DbxList + DbxList->SignatureListSize);\r
       continue;\r
     }\r
 \r
@@ -892,17 +904,21 @@ IsCertHashFoundInDbx (
     if (mHash[HashAlg].GetContextSize == NULL) {\r
       goto Done;\r
     }\r
+\r
     ZeroMem (CertDigest, MAX_DIGEST_SIZE);\r
     HashCtx = AllocatePool (mHash[HashAlg].GetContextSize ());\r
     if (HashCtx == NULL) {\r
       goto Done;\r
     }\r
+\r
     if (!mHash[HashAlg].HashInit (HashCtx)) {\r
       goto Done;\r
     }\r
+\r
     if (!mHash[HashAlg].HashUpdate (HashCtx, TBSCert, TBSCertSize)) {\r
       goto Done;\r
     }\r
+\r
     if (!mHash[HashAlg].HashFinal (HashCtx, CertDigest)) {\r
       goto Done;\r
     }\r
@@ -911,7 +927,7 @@ IsCertHashFoundInDbx (
     HashCtx = NULL;\r
 \r
     SiglistHeaderSize = sizeof (EFI_SIGNATURE_LIST) + DbxList->SignatureHeaderSize;\r
-    CertHash          = (EFI_SIGNATURE_DATA *) ((UINT8 *) DbxList + SiglistHeaderSize);\r
+    CertHash          = (EFI_SIGNATURE_DATA *)((UINT8 *)DbxList + SiglistHeaderSize);\r
     CertHashCount     = (DbxList->SignatureListSize - SiglistHeaderSize) / DbxList->SignatureSize;\r
     for (Index = 0; Index < CertHashCount; Index++) {\r
       //\r
@@ -931,11 +947,12 @@ IsCertHashFoundInDbx (
         CopyMem (RevocationTime, (EFI_TIME *)(DbxCertHash + mHash[HashAlg].DigestLength), sizeof (EFI_TIME));\r
         goto Done;\r
       }\r
-      CertHash = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertHash + DbxList->SignatureSize);\r
+\r
+      CertHash = (EFI_SIGNATURE_DATA *)((UINT8 *)CertHash + DbxList->SignatureSize);\r
     }\r
 \r
     DbxSize -= DbxList->SignatureListSize;\r
-    DbxList  = (EFI_SIGNATURE_LIST *) ((UINT8 *) DbxList + DbxList->SignatureListSize);\r
+    DbxList  = (EFI_SIGNATURE_LIST *)((UINT8 *)DbxList + DbxList->SignatureListSize);\r
   }\r
 \r
   Status = EFI_SUCCESS;\r
@@ -963,11 +980,11 @@ Done:
 **/\r
 EFI_STATUS\r
 IsSignatureFoundInDatabase (\r
-  IN  CHAR16            *VariableName,\r
-  IN  UINT8             *Signature,\r
-  IN  EFI_GUID          *CertType,\r
-  IN  UINTN             SignatureSize,\r
-  OUT BOOLEAN           *IsFound\r
+  IN  CHAR16    *VariableName,\r
+  IN  UINT8     *Signature,\r
+  IN  EFI_GUID  *CertType,\r
+  IN  UINTN     SignatureSize,\r
+  OUT BOOLEAN   *IsFound\r
   )\r
 {\r
   EFI_STATUS          Status;\r
@@ -981,10 +998,10 @@ IsSignatureFoundInDatabase (
   //\r
   // Read signature database variable.\r
   //\r
-  *IsFound  = FALSE;\r
-  Data      = NULL;\r
-  DataSize  = 0;\r
-  Status    = gRT->GetVariable (VariableName, &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, NULL);\r
+  *IsFound = FALSE;\r
+  Data     = NULL;\r
+  DataSize = 0;\r
+  Status   = gRT->GetVariable (VariableName, &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, NULL);\r
   if (Status != EFI_BUFFER_TOO_SMALL) {\r
     if (Status == EFI_NOT_FOUND) {\r
       //\r
@@ -996,7 +1013,7 @@ IsSignatureFoundInDatabase (
     return Status;\r
   }\r
 \r
-  Data = (UINT8 *) AllocateZeroPool (DataSize);\r
+  Data = (UINT8 *)AllocateZeroPool (DataSize);\r
   if (Data == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -1005,14 +1022,15 @@ IsSignatureFoundInDatabase (
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
+\r
   //\r
   // Enumerate all signature data in SigDB to check if signature exists for executable.\r
   //\r
-  CertList = (EFI_SIGNATURE_LIST *) Data;\r
+  CertList = (EFI_SIGNATURE_LIST *)Data;\r
   while ((DataSize > 0) && (DataSize >= CertList->SignatureListSize)) {\r
     CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;\r
-    Cert      = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
-    if ((CertList->SignatureSize == sizeof(EFI_SIGNATURE_DATA) - 1 + SignatureSize) && (CompareGuid(&CertList->SignatureType, CertType))) {\r
+    Cert      = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
+    if ((CertList->SignatureSize == sizeof (EFI_SIGNATURE_DATA) - 1 + SignatureSize) && (CompareGuid (&CertList->SignatureType, CertType))) {\r
       for (Index = 0; Index < CertCount; Index++) {\r
         if (CompareMem (Cert->SignatureData, Signature, SignatureSize) == 0) {\r
           //\r
@@ -1022,13 +1040,14 @@ IsSignatureFoundInDatabase (
           //\r
           // Entries in UEFI_IMAGE_SECURITY_DATABASE that are used to validate image should be measured\r
           //\r
-          if (StrCmp(VariableName, EFI_IMAGE_SECURITY_DATABASE) == 0) {\r
+          if (StrCmp (VariableName, EFI_IMAGE_SECURITY_DATABASE) == 0) {\r
             SecureBootHook (VariableName, &gEfiImageSecurityDatabaseGuid, CertList->SignatureSize, Cert);\r
           }\r
+\r
           break;\r
         }\r
 \r
-        Cert = (EFI_SIGNATURE_DATA *) ((UINT8 *) Cert + CertList->SignatureSize);\r
+        Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)Cert + CertList->SignatureSize);\r
       }\r
 \r
       if (*IsFound) {\r
@@ -1037,7 +1056,7 @@ IsSignatureFoundInDatabase (
     }\r
 \r
     DataSize -= CertList->SignatureListSize;\r
-    CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList->SignatureListSize);\r
+    CertList  = (EFI_SIGNATURE_LIST *)((UINT8 *)CertList + CertList->SignatureListSize);\r
   }\r
 \r
 Done:\r
@@ -1060,23 +1079,23 @@ Done:
 **/\r
 BOOLEAN\r
 IsValidSignatureByTimestamp (\r
-  IN EFI_TIME               *SigningTime,\r
-  IN EFI_TIME               *RevocationTime\r
+  IN EFI_TIME  *SigningTime,\r
+  IN EFI_TIME  *RevocationTime\r
   )\r
 {\r
   if (SigningTime->Year != RevocationTime->Year) {\r
-    return (BOOLEAN) (SigningTime->Year < RevocationTime->Year);\r
+    return (BOOLEAN)(SigningTime->Year < RevocationTime->Year);\r
   } else if (SigningTime->Month != RevocationTime->Month) {\r
-    return (BOOLEAN) (SigningTime->Month < RevocationTime->Month);\r
+    return (BOOLEAN)(SigningTime->Month < RevocationTime->Month);\r
   } else if (SigningTime->Day != RevocationTime->Day) {\r
-    return (BOOLEAN) (SigningTime->Day < RevocationTime->Day);\r
+    return (BOOLEAN)(SigningTime->Day < RevocationTime->Day);\r
   } else if (SigningTime->Hour != RevocationTime->Hour) {\r
-    return (BOOLEAN) (SigningTime->Hour < RevocationTime->Hour);\r
+    return (BOOLEAN)(SigningTime->Hour < RevocationTime->Hour);\r
   } else if (SigningTime->Minute != RevocationTime->Minute) {\r
-    return (BOOLEAN) (SigningTime->Minute < RevocationTime->Minute);\r
+    return (BOOLEAN)(SigningTime->Minute < RevocationTime->Minute);\r
   }\r
 \r
-  return (BOOLEAN) (SigningTime->Second <= RevocationTime->Second);\r
+  return (BOOLEAN)(SigningTime->Second <= RevocationTime->Second);\r
 }\r
 \r
 /**\r
@@ -1090,11 +1109,12 @@ IsValidSignatureByTimestamp (
 **/\r
 BOOLEAN\r
 IsTimeZero (\r
-  IN EFI_TIME               *Time\r
+  IN EFI_TIME  *Time\r
   )\r
 {\r
   if ((Time->Year == 0) && (Time->Month == 0) &&  (Time->Day == 0) &&\r
-      (Time->Hour == 0) && (Time->Minute == 0) && (Time->Second == 0)) {\r
+      (Time->Hour == 0) && (Time->Minute == 0) && (Time->Second == 0))\r
+  {\r
     return TRUE;\r
   }\r
 \r
@@ -1117,32 +1137,32 @@ IsTimeZero (
 **/\r
 BOOLEAN\r
 PassTimestampCheck (\r
-  IN UINT8                  *AuthData,\r
-  IN UINTN                  AuthDataSize,\r
-  IN EFI_TIME               *RevocationTime\r
+  IN UINT8     *AuthData,\r
+  IN UINTN     AuthDataSize,\r
+  IN EFI_TIME  *RevocationTime\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  BOOLEAN                   VerifyStatus;\r
-  EFI_SIGNATURE_LIST        *CertList;\r
-  EFI_SIGNATURE_DATA        *Cert;\r
-  UINT8                     *DbtData;\r
-  UINTN                     DbtDataSize;\r
-  UINT8                     *RootCert;\r
-  UINTN                     RootCertSize;\r
-  UINTN                     Index;\r
-  UINTN                     CertCount;\r
-  EFI_TIME                  SigningTime;\r
+  EFI_STATUS          Status;\r
+  BOOLEAN             VerifyStatus;\r
+  EFI_SIGNATURE_LIST  *CertList;\r
+  EFI_SIGNATURE_DATA  *Cert;\r
+  UINT8               *DbtData;\r
+  UINTN               DbtDataSize;\r
+  UINT8               *RootCert;\r
+  UINTN               RootCertSize;\r
+  UINTN               Index;\r
+  UINTN               CertCount;\r
+  EFI_TIME            SigningTime;\r
 \r
   //\r
   // Variable Initialization\r
   //\r
-  VerifyStatus      = FALSE;\r
-  DbtData           = NULL;\r
-  CertList          = NULL;\r
-  Cert              = NULL;\r
-  RootCert          = NULL;\r
-  RootCertSize      = 0;\r
+  VerifyStatus = FALSE;\r
+  DbtData      = NULL;\r
+  CertList     = NULL;\r
+  Cert         = NULL;\r
+  RootCert     = NULL;\r
+  RootCertSize = 0;\r
 \r
   //\r
   // If RevocationTime is zero, the certificate shall be considered to always be revoked.\r
@@ -1156,23 +1176,25 @@ PassTimestampCheck (
   // Using the dbt to get the trusted TSA certificates.\r
   //\r
   DbtDataSize = 0;\r
-  Status   = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE2, &gEfiImageSecurityDatabaseGuid, NULL, &DbtDataSize, NULL);\r
+  Status      = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE2, &gEfiImageSecurityDatabaseGuid, NULL, &DbtDataSize, NULL);\r
   if (Status != EFI_BUFFER_TOO_SMALL) {\r
     goto Done;\r
   }\r
-  DbtData = (UINT8 *) AllocateZeroPool (DbtDataSize);\r
+\r
+  DbtData = (UINT8 *)AllocateZeroPool (DbtDataSize);\r
   if (DbtData == NULL) {\r
     goto Done;\r
   }\r
-  Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE2, &gEfiImageSecurityDatabaseGuid, NULL, &DbtDataSize, (VOID *) DbtData);\r
+\r
+  Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE2, &gEfiImageSecurityDatabaseGuid, NULL, &DbtDataSize, (VOID *)DbtData);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
 \r
-  CertList = (EFI_SIGNATURE_LIST *) DbtData;\r
+  CertList = (EFI_SIGNATURE_LIST *)DbtData;\r
   while ((DbtDataSize > 0) && (DbtDataSize >= CertList->SignatureListSize)) {\r
     if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {\r
-      Cert      = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
+      Cert      = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
       CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;\r
       for (Index = 0; Index < CertCount; Index++) {\r
         //\r
@@ -1192,11 +1214,13 @@ PassTimestampCheck (
             goto Done;\r
           }\r
         }\r
-        Cert = (EFI_SIGNATURE_DATA *) ((UINT8 *) Cert + CertList->SignatureSize);\r
+\r
+        Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)Cert + CertList->SignatureSize);\r
       }\r
     }\r
+\r
     DbtDataSize -= CertList->SignatureListSize;\r
-    CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList->SignatureListSize);\r
+    CertList     = (EFI_SIGNATURE_LIST *)((UINT8 *)CertList + CertList->SignatureListSize);\r
   }\r
 \r
 Done:\r
@@ -1220,31 +1244,32 @@ Done:
 **/\r
 BOOLEAN\r
 IsForbiddenByDbx (\r
-  IN UINT8                  *AuthData,\r
-  IN UINTN                  AuthDataSize\r
+  IN UINT8  *AuthData,\r
+  IN UINTN  AuthDataSize\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  BOOLEAN                   IsForbidden;\r
-  BOOLEAN                   IsFound;\r
-  UINT8                     *Data;\r
-  UINTN                     DataSize;\r
-  EFI_SIGNATURE_LIST        *CertList;\r
-  UINTN                     CertListSize;\r
-  EFI_SIGNATURE_DATA        *CertData;\r
-  UINT8                     *RootCert;\r
-  UINTN                     RootCertSize;\r
-  UINTN                     CertCount;\r
-  UINTN                     Index;\r
-  UINT8                     *CertBuffer;\r
-  UINTN                     BufferLength;\r
-  UINT8                     *TrustedCert;\r
-  UINTN                     TrustedCertLength;\r
-  UINT8                     CertNumber;\r
-  UINT8                     *CertPtr;\r
-  UINT8                     *Cert;\r
-  UINTN                     CertSize;\r
-  EFI_TIME                  RevocationTime;\r
+  EFI_STATUS          Status;\r
+  BOOLEAN             IsForbidden;\r
+  BOOLEAN             IsFound;\r
+  UINT8               *Data;\r
+  UINTN               DataSize;\r
+  EFI_SIGNATURE_LIST  *CertList;\r
+  UINTN               CertListSize;\r
+  EFI_SIGNATURE_DATA  *CertData;\r
+  UINT8               *RootCert;\r
+  UINTN               RootCertSize;\r
+  UINTN               CertCount;\r
+  UINTN               Index;\r
+  UINT8               *CertBuffer;\r
+  UINTN               BufferLength;\r
+  UINT8               *TrustedCert;\r
+  UINTN               TrustedCertLength;\r
+  UINT8               CertNumber;\r
+  UINT8               *CertPtr;\r
+  UINT8               *Cert;\r
+  UINTN               CertSize;\r
+  EFI_TIME            RevocationTime;\r
+\r
   //\r
   // Variable Initialization\r
   //\r
@@ -1273,14 +1298,16 @@ IsForbiddenByDbx (
       //\r
       IsForbidden = FALSE;\r
     }\r
+\r
     return IsForbidden;\r
   }\r
-  Data = (UINT8 *) AllocateZeroPool (DataSize);\r
+\r
+  Data = (UINT8 *)AllocateZeroPool (DataSize);\r
   if (Data == NULL) {\r
     return IsForbidden;\r
   }\r
 \r
-  Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, (VOID *) Data);\r
+  Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, (VOID *)Data);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
@@ -1289,11 +1316,11 @@ IsForbiddenByDbx (
   // Verify image signature with RAW X509 certificates in DBX database.\r
   // If passed, the image will be forbidden.\r
   //\r
-  CertList     = (EFI_SIGNATURE_LIST *) Data;\r
+  CertList     = (EFI_SIGNATURE_LIST *)Data;\r
   CertListSize = DataSize;\r
   while ((CertListSize > 0) && (CertListSize >= CertList->SignatureListSize)) {\r
     if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {\r
-      CertData  = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
+      CertData  = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
       CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;\r
 \r
       for (Index = 0; Index < CertCount; Index++) {\r
@@ -1319,12 +1346,12 @@ IsForbiddenByDbx (
           goto Done;\r
         }\r
 \r
-        CertData = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertData + CertList->SignatureSize);\r
+        CertData = (EFI_SIGNATURE_DATA *)((UINT8 *)CertData + CertList->SignatureSize);\r
       }\r
     }\r
 \r
     CertListSize -= CertList->SignatureListSize;\r
-    CertList      = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList->SignatureListSize);\r
+    CertList      = (EFI_SIGNATURE_LIST *)((UINT8 *)CertList + CertList->SignatureListSize);\r
   }\r
 \r
   //\r
@@ -1344,7 +1371,7 @@ IsForbiddenByDbx (
   //       UINT8  Certn[];\r
   //\r
   Pkcs7GetSigners (AuthData, AuthDataSize, &CertBuffer, &BufferLength, &TrustedCert, &TrustedCertLength);\r
-  if ((BufferLength == 0) || (CertBuffer == NULL) || (*CertBuffer) == 0) {\r
+  if ((BufferLength == 0) || (CertBuffer == NULL) || ((*CertBuffer) == 0)) {\r
     IsForbidden = TRUE;\r
     goto Done;\r
   }\r
@@ -1352,10 +1379,10 @@ IsForbiddenByDbx (
   //\r
   // Check if any hash of certificates embedded in AuthData is in the forbidden database.\r
   //\r
-  CertNumber = (UINT8) (*CertBuffer);\r
+  CertNumber = (UINT8)(*CertBuffer);\r
   CertPtr    = CertBuffer + 1;\r
   for (Index = 0; Index < CertNumber; Index++) {\r
-    CertSize = (UINTN) ReadUnaligned32 ((UINT32 *)CertPtr);\r
+    CertSize = (UINTN)ReadUnaligned32 ((UINT32 *)CertPtr);\r
     Cert     = (UINT8 *)CertPtr + sizeof (UINT32);\r
     //\r
     // Advance CertPtr to the next cert in image signer's cert list\r
@@ -1386,7 +1413,6 @@ IsForbiddenByDbx (
         goto Done;\r
       }\r
     }\r
-\r
   }\r
 \r
   IsForbidden = FALSE;\r
@@ -1402,7 +1428,6 @@ Done:
   return IsForbidden;\r
 }\r
 \r
-\r
 /**\r
   Check whether the image signature can be verified by the trusted certificates in DB database.\r
 \r
@@ -1415,32 +1440,32 @@ Done:
 **/\r
 BOOLEAN\r
 IsAllowedByDb (\r
-  IN UINT8              *AuthData,\r
-  IN UINTN              AuthDataSize\r
+  IN UINT8  *AuthData,\r
+  IN UINTN  AuthDataSize\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  BOOLEAN                   VerifyStatus;\r
-  BOOLEAN                   IsFound;\r
-  EFI_SIGNATURE_LIST        *CertList;\r
-  EFI_SIGNATURE_DATA        *CertData;\r
-  UINTN                     DataSize;\r
-  UINT8                     *Data;\r
-  UINT8                     *RootCert;\r
-  UINTN                     RootCertSize;\r
-  UINTN                     Index;\r
-  UINTN                     CertCount;\r
-  UINTN                     DbxDataSize;\r
-  UINT8                     *DbxData;\r
-  EFI_TIME                  RevocationTime;\r
+  EFI_STATUS          Status;\r
+  BOOLEAN             VerifyStatus;\r
+  BOOLEAN             IsFound;\r
+  EFI_SIGNATURE_LIST  *CertList;\r
+  EFI_SIGNATURE_DATA  *CertData;\r
+  UINTN               DataSize;\r
+  UINT8               *Data;\r
+  UINT8               *RootCert;\r
+  UINTN               RootCertSize;\r
+  UINTN               Index;\r
+  UINTN               CertCount;\r
+  UINTN               DbxDataSize;\r
+  UINT8               *DbxData;\r
+  EFI_TIME            RevocationTime;\r
 \r
-  Data              = NULL;\r
-  CertList          = NULL;\r
-  CertData          = NULL;\r
-  RootCert          = NULL;\r
-  DbxData           = NULL;\r
-  RootCertSize      = 0;\r
-  VerifyStatus      = FALSE;\r
+  Data         = NULL;\r
+  CertList     = NULL;\r
+  CertData     = NULL;\r
+  RootCert     = NULL;\r
+  DbxData      = NULL;\r
+  RootCertSize = 0;\r
+  VerifyStatus = FALSE;\r
 \r
   //\r
   // Fetch 'db' content. If 'db' doesn't exist or encounters problem to get the\r
@@ -1453,12 +1478,12 @@ IsAllowedByDb (
     return VerifyStatus;\r
   }\r
 \r
-  Data = (UINT8 *) AllocateZeroPool (DataSize);\r
+  Data = (UINT8 *)AllocateZeroPool (DataSize);\r
   if (Data == NULL) {\r
     return VerifyStatus;\r
   }\r
 \r
-  Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE, &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, (VOID *) Data);\r
+  Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE, &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, (VOID *)Data);\r
   if (EFI_ERROR (Status)) {\r
     goto Done;\r
   }\r
@@ -1475,6 +1500,7 @@ IsAllowedByDb (
     if (Status != EFI_NOT_FOUND) {\r
       goto Done;\r
     }\r
+\r
     //\r
     // 'dbx' does not exist. Continue to check 'db'.\r
     //\r
@@ -1482,12 +1508,12 @@ IsAllowedByDb (
     //\r
     // 'dbx' exists. Get its content.\r
     //\r
-    DbxData = (UINT8 *) AllocateZeroPool (DbxDataSize);\r
+    DbxData = (UINT8 *)AllocateZeroPool (DbxDataSize);\r
     if (DbxData == NULL) {\r
       goto Done;\r
     }\r
 \r
-    Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid, NULL, &DbxDataSize, (VOID *) DbxData);\r
+    Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid, NULL, &DbxDataSize, (VOID *)DbxData);\r
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
@@ -1496,10 +1522,10 @@ IsAllowedByDb (
   //\r
   // Find X509 certificate in Signature List to verify the signature in pkcs7 signed data.\r
   //\r
-  CertList = (EFI_SIGNATURE_LIST *) Data;\r
+  CertList = (EFI_SIGNATURE_LIST *)Data;\r
   while ((DataSize > 0) && (DataSize >= CertList->SignatureListSize)) {\r
     if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {\r
-      CertData  = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
+      CertData  = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);\r
       CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;\r
 \r
       for (Index = 0; Index < CertCount; Index++) {\r
@@ -1555,12 +1581,12 @@ IsAllowedByDb (
           goto Done;\r
         }\r
 \r
-        CertData = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertData + CertList->SignatureSize);\r
+        CertData = (EFI_SIGNATURE_DATA *)((UINT8 *)CertData + CertList->SignatureSize);\r
       }\r
     }\r
 \r
     DataSize -= CertList->SignatureListSize;\r
-    CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList->SignatureListSize);\r
+    CertList  = (EFI_SIGNATURE_LIST *)((UINT8 *)CertList + CertList->SignatureListSize);\r
   }\r
 \r
 Done:\r
@@ -1572,6 +1598,7 @@ Done:
   if (Data != NULL) {\r
     FreePool (Data);\r
   }\r
+\r
   if (DbxData != NULL) {\r
     FreePool (DbxData);\r
   }\r
@@ -1629,37 +1656,37 @@ Done:
 EFI_STATUS\r
 EFIAPI\r
 DxeImageVerificationHandler (\r
-  IN  UINT32                           AuthenticationStatus,\r
-  IN  CONST EFI_DEVICE_PATH_PROTOCOL   *File, OPTIONAL\r
-  IN  VOID                             *FileBuffer,\r
-  IN  UINTN                            FileSize,\r
-  IN  BOOLEAN                          BootPolicy\r
+  IN  UINT32                          AuthenticationStatus,\r
+  IN  CONST EFI_DEVICE_PATH_PROTOCOL  *File  OPTIONAL,\r
+  IN  VOID                            *FileBuffer,\r
+  IN  UINTN                           FileSize,\r
+  IN  BOOLEAN                         BootPolicy\r
   )\r
 {\r
-  EFI_IMAGE_DOS_HEADER                 *DosHdr;\r
-  BOOLEAN                              IsVerified;\r
-  EFI_SIGNATURE_LIST                   *SignatureList;\r
-  UINTN                                SignatureListSize;\r
-  EFI_SIGNATURE_DATA                   *Signature;\r
-  EFI_IMAGE_EXECUTION_ACTION           Action;\r
-  WIN_CERTIFICATE                      *WinCertificate;\r
-  UINT32                               Policy;\r
-  UINT8                                *SecureBoot;\r
-  PE_COFF_LOADER_IMAGE_CONTEXT         ImageContext;\r
-  UINT32                               NumberOfRvaAndSizes;\r
-  WIN_CERTIFICATE_EFI_PKCS             *PkcsCertData;\r
-  WIN_CERTIFICATE_UEFI_GUID            *WinCertUefiGuid;\r
-  UINT8                                *AuthData;\r
-  UINTN                                AuthDataSize;\r
-  EFI_IMAGE_DATA_DIRECTORY             *SecDataDir;\r
-  UINT32                               SecDataDirEnd;\r
-  UINT32                               SecDataDirLeft;\r
-  UINT32                               OffSet;\r
-  CHAR16                               *NameStr;\r
-  RETURN_STATUS                        PeCoffStatus;\r
-  EFI_STATUS                           HashStatus;\r
-  EFI_STATUS                           DbStatus;\r
-  BOOLEAN                              IsFound;\r
+  EFI_IMAGE_DOS_HEADER          *DosHdr;\r
+  BOOLEAN                       IsVerified;\r
+  EFI_SIGNATURE_LIST            *SignatureList;\r
+  UINTN                         SignatureListSize;\r
+  EFI_SIGNATURE_DATA            *Signature;\r
+  EFI_IMAGE_EXECUTION_ACTION    Action;\r
+  WIN_CERTIFICATE               *WinCertificate;\r
+  UINT32                        Policy;\r
+  UINT8                         *SecureBoot;\r
+  PE_COFF_LOADER_IMAGE_CONTEXT  ImageContext;\r
+  UINT32                        NumberOfRvaAndSizes;\r
+  WIN_CERTIFICATE_EFI_PKCS      *PkcsCertData;\r
+  WIN_CERTIFICATE_UEFI_GUID     *WinCertUefiGuid;\r
+  UINT8                         *AuthData;\r
+  UINTN                         AuthDataSize;\r
+  EFI_IMAGE_DATA_DIRECTORY      *SecDataDir;\r
+  UINT32                        SecDataDirEnd;\r
+  UINT32                        SecDataDirLeft;\r
+  UINT32                        OffSet;\r
+  CHAR16                        *NameStr;\r
+  RETURN_STATUS                 PeCoffStatus;\r
+  EFI_STATUS                    HashStatus;\r
+  EFI_STATUS                    DbStatus;\r
+  BOOLEAN                       IsFound;\r
 \r
   SignatureList     = NULL;\r
   SignatureListSize = 0;\r
@@ -1674,33 +1701,34 @@ DxeImageVerificationHandler (
   // Check the image type and get policy setting.\r
   //\r
   switch (GetImageType (File)) {\r
+    case IMAGE_FROM_FV:\r
+      Policy = ALWAYS_EXECUTE;\r
+      break;\r
 \r
-  case IMAGE_FROM_FV:\r
-    Policy = ALWAYS_EXECUTE;\r
-    break;\r
-\r
-  case IMAGE_FROM_OPTION_ROM:\r
-    Policy = PcdGet32 (PcdOptionRomImageVerificationPolicy);\r
-    break;\r
+    case IMAGE_FROM_OPTION_ROM:\r
+      Policy = PcdGet32 (PcdOptionRomImageVerificationPolicy);\r
+      break;\r
 \r
-  case IMAGE_FROM_REMOVABLE_MEDIA:\r
-    Policy = PcdGet32 (PcdRemovableMediaImageVerificationPolicy);\r
-    break;\r
+    case IMAGE_FROM_REMOVABLE_MEDIA:\r
+      Policy = PcdGet32 (PcdRemovableMediaImageVerificationPolicy);\r
+      break;\r
 \r
-  case IMAGE_FROM_FIXED_MEDIA:\r
-    Policy = PcdGet32 (PcdFixedMediaImageVerificationPolicy);\r
-    break;\r
+    case IMAGE_FROM_FIXED_MEDIA:\r
+      Policy = PcdGet32 (PcdFixedMediaImageVerificationPolicy);\r
+      break;\r
 \r
-  default:\r
-    Policy = DENY_EXECUTE_ON_SECURITY_VIOLATION;\r
-    break;\r
+    default:\r
+      Policy = DENY_EXECUTE_ON_SECURITY_VIOLATION;\r
+      break;\r
   }\r
+\r
   //\r
   // If policy is always/never execute, return directly.\r
   //\r
   if (Policy == ALWAYS_EXECUTE) {\r
     return EFI_SUCCESS;\r
   }\r
+\r
   if (Policy == NEVER_EXECUTE) {\r
     return EFI_ACCESS_DENIED;\r
   }\r
@@ -1710,11 +1738,11 @@ DxeImageVerificationHandler (
   // violates the UEFI spec and has been removed.\r
   //\r
   ASSERT (Policy != QUERY_USER_ON_SECURITY_VIOLATION && Policy != ALLOW_EXECUTE_ON_SECURITY_VIOLATION);\r
-  if (Policy == QUERY_USER_ON_SECURITY_VIOLATION || Policy == ALLOW_EXECUTE_ON_SECURITY_VIOLATION) {\r
+  if ((Policy == QUERY_USER_ON_SECURITY_VIOLATION) || (Policy == ALLOW_EXECUTE_ON_SECURITY_VIOLATION)) {\r
     CpuDeadLoop ();\r
   }\r
 \r
-  GetEfiGlobalVariable2 (EFI_SECURE_BOOT_MODE_NAME, (VOID**)&SecureBoot, NULL);\r
+  GetEfiGlobalVariable2 (EFI_SECURE_BOOT_MODE_NAME, (VOID **)&SecureBoot, NULL);\r
   //\r
   // Skip verification if SecureBoot variable doesn't exist.\r
   //\r
@@ -1729,6 +1757,7 @@ DxeImageVerificationHandler (
     FreePool (SecureBoot);\r
     return EFI_SUCCESS;\r
   }\r
+\r
   FreePool (SecureBoot);\r
 \r
   //\r
@@ -1738,12 +1767,12 @@ DxeImageVerificationHandler (
     return EFI_ACCESS_DENIED;\r
   }\r
 \r
-  mImageBase  = (UINT8 *) FileBuffer;\r
-  mImageSize  = FileSize;\r
+  mImageBase = (UINT8 *)FileBuffer;\r
+  mImageSize = FileSize;\r
 \r
   ZeroMem (&ImageContext, sizeof (ImageContext));\r
-  ImageContext.Handle    = (VOID *) FileBuffer;\r
-  ImageContext.ImageRead = (PE_COFF_LOADER_READ_FILE) DxeImageVerificationLibImageRead;\r
+  ImageContext.Handle    = (VOID *)FileBuffer;\r
+  ImageContext.ImageRead = (PE_COFF_LOADER_READ_FILE)DxeImageVerificationLibImageRead;\r
 \r
   //\r
   // Get information about the image being loaded\r
@@ -1757,7 +1786,7 @@ DxeImageVerificationHandler (
     goto Failed;\r
   }\r
 \r
-  DosHdr = (EFI_IMAGE_DOS_HEADER *) mImageBase;\r
+  DosHdr = (EFI_IMAGE_DOS_HEADER *)mImageBase;\r
   if (DosHdr->e_magic == EFI_IMAGE_DOS_SIGNATURE) {\r
     //\r
     // DOS image header is present,\r
@@ -1767,10 +1796,11 @@ DxeImageVerificationHandler (
   } else {\r
     mPeCoffHeaderOffset = 0;\r
   }\r
+\r
   //\r
   // Check PE/COFF image.\r
   //\r
-  mNtHeader.Pe32 = (EFI_IMAGE_NT_HEADERS32 *) (mImageBase + mPeCoffHeaderOffset);\r
+  mNtHeader.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)(mImageBase + mPeCoffHeaderOffset);\r
   if (mNtHeader.Pe32->Signature != EFI_IMAGE_NT_SIGNATURE) {\r
     //\r
     // It is not a valid Pe/Coff file.\r
@@ -1785,7 +1815,7 @@ DxeImageVerificationHandler (
     //\r
     NumberOfRvaAndSizes = mNtHeader.Pe32->OptionalHeader.NumberOfRvaAndSizes;\r
     if (NumberOfRvaAndSizes > EFI_IMAGE_DIRECTORY_ENTRY_SECURITY) {\r
-      SecDataDir = (EFI_IMAGE_DATA_DIRECTORY *) &mNtHeader.Pe32->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY];\r
+      SecDataDir = (EFI_IMAGE_DATA_DIRECTORY *)&mNtHeader.Pe32->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY];\r
     }\r
   } else {\r
     //\r
@@ -1793,14 +1823,14 @@ DxeImageVerificationHandler (
     //\r
     NumberOfRvaAndSizes = mNtHeader.Pe32Plus->OptionalHeader.NumberOfRvaAndSizes;\r
     if (NumberOfRvaAndSizes > EFI_IMAGE_DIRECTORY_ENTRY_SECURITY) {\r
-      SecDataDir = (EFI_IMAGE_DATA_DIRECTORY *) &mNtHeader.Pe32Plus->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY];\r
+      SecDataDir = (EFI_IMAGE_DATA_DIRECTORY *)&mNtHeader.Pe32Plus->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_SECURITY];\r
     }\r
   }\r
 \r
   //\r
   // Start Image Validation.\r
   //\r
-  if (SecDataDir == NULL || SecDataDir->Size == 0) {\r
+  if ((SecDataDir == NULL) || (SecDataDir->Size == 0)) {\r
     //\r
     // This image is not signed. The SHA256 hash value of the image must match a record in the security database "db",\r
     // and not be reflected in the security data base "dbx".\r
@@ -1854,13 +1884,18 @@ DxeImageVerificationHandler (
   SecDataDirEnd = SecDataDir->VirtualAddress + SecDataDir->Size;\r
   for (OffSet = SecDataDir->VirtualAddress;\r
        OffSet < SecDataDirEnd;\r
-       OffSet += (WinCertificate->dwLength + ALIGN_SIZE (WinCertificate->dwLength))) {\r
+       OffSet += (WinCertificate->dwLength + ALIGN_SIZE (WinCertificate->dwLength)))\r
+  {\r
     SecDataDirLeft = SecDataDirEnd - OffSet;\r
     if (SecDataDirLeft <= sizeof (WIN_CERTIFICATE)) {\r
       break;\r
     }\r
-    WinCertificate = (WIN_CERTIFICATE *) (mImageBase + OffSet);\r
-    if (SecDataDirLeft < WinCertificate->dwLength) {\r
+\r
+    WinCertificate = (WIN_CERTIFICATE *)(mImageBase + OffSet);\r
+    if ((SecDataDirLeft < WinCertificate->dwLength) ||\r
+        (SecDataDirLeft - WinCertificate->dwLength <\r
+         ALIGN_SIZE (WinCertificate->dwLength)))\r
+    {\r
       break;\r
     }\r
 \r
@@ -1872,29 +1907,33 @@ DxeImageVerificationHandler (
       // The certificate is formatted as WIN_CERTIFICATE_EFI_PKCS which is described in the\r
       // Authenticode specification.\r
       //\r
-      PkcsCertData = (WIN_CERTIFICATE_EFI_PKCS *) WinCertificate;\r
+      PkcsCertData = (WIN_CERTIFICATE_EFI_PKCS *)WinCertificate;\r
       if (PkcsCertData->Hdr.dwLength <= sizeof (PkcsCertData->Hdr)) {\r
         break;\r
       }\r
-      AuthData   = PkcsCertData->CertData;\r
-      AuthDataSize = PkcsCertData->Hdr.dwLength - sizeof(PkcsCertData->Hdr);\r
+\r
+      AuthData     = PkcsCertData->CertData;\r
+      AuthDataSize = PkcsCertData->Hdr.dwLength - sizeof (PkcsCertData->Hdr);\r
     } else if (WinCertificate->wCertificateType == WIN_CERT_TYPE_EFI_GUID) {\r
       //\r
       // The certificate is formatted as WIN_CERTIFICATE_UEFI_GUID which is described in UEFI Spec.\r
       //\r
-      WinCertUefiGuid = (WIN_CERTIFICATE_UEFI_GUID *) WinCertificate;\r
-      if (WinCertUefiGuid->Hdr.dwLength <= OFFSET_OF(WIN_CERTIFICATE_UEFI_GUID, CertData)) {\r
+      WinCertUefiGuid = (WIN_CERTIFICATE_UEFI_GUID *)WinCertificate;\r
+      if (WinCertUefiGuid->Hdr.dwLength <= OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)) {\r
         break;\r
       }\r
+\r
       if (!CompareGuid (&WinCertUefiGuid->CertType, &gEfiCertPkcs7Guid)) {\r
         continue;\r
       }\r
-      AuthData = WinCertUefiGuid->CertData;\r
-      AuthDataSize = WinCertUefiGuid->Hdr.dwLength - OFFSET_OF(WIN_CERTIFICATE_UEFI_GUID, CertData);\r
+\r
+      AuthData     = WinCertUefiGuid->CertData;\r
+      AuthDataSize = WinCertUefiGuid->Hdr.dwLength - OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData);\r
     } else {\r
       if (WinCertificate->dwLength < sizeof (WIN_CERTIFICATE)) {\r
         break;\r
       }\r
+\r
       continue;\r
     }\r
 \r
@@ -1907,7 +1946,7 @@ DxeImageVerificationHandler (
     // Check the digital signature against the revoked certificate in forbidden database (dbx).\r
     //\r
     if (IsForbiddenByDbx (AuthData, AuthDataSize)) {\r
-      Action = EFI_IMAGE_EXECUTION_AUTH_SIG_FAILED;\r
+      Action     = EFI_IMAGE_EXECUTION_AUTH_SIG_FAILED;\r
       IsVerified = FALSE;\r
       break;\r
     }\r
@@ -1964,21 +2003,23 @@ DxeImageVerificationHandler (
   if (IsVerified) {\r
     return EFI_SUCCESS;\r
   }\r
-  if (Action == EFI_IMAGE_EXECUTION_AUTH_SIG_FAILED || Action == EFI_IMAGE_EXECUTION_AUTH_SIG_FOUND) {\r
+\r
+  if ((Action == EFI_IMAGE_EXECUTION_AUTH_SIG_FAILED) || (Action == EFI_IMAGE_EXECUTION_AUTH_SIG_FOUND)) {\r
     //\r
     // Get image hash value as signature of executable.\r
     //\r
     SignatureListSize = sizeof (EFI_SIGNATURE_LIST) + sizeof (EFI_SIGNATURE_DATA) - 1 + mImageDigestSize;\r
-    SignatureList     = (EFI_SIGNATURE_LIST *) AllocateZeroPool (SignatureListSize);\r
+    SignatureList     = (EFI_SIGNATURE_LIST *)AllocateZeroPool (SignatureListSize);\r
     if (SignatureList == NULL) {\r
       SignatureListSize = 0;\r
       goto Failed;\r
     }\r
-    SignatureList->SignatureHeaderSize  = 0;\r
-    SignatureList->SignatureListSize    = (UINT32) SignatureListSize;\r
-    SignatureList->SignatureSize        = (UINT32) (sizeof (EFI_SIGNATURE_DATA) - 1 + mImageDigestSize);\r
+\r
+    SignatureList->SignatureHeaderSize = 0;\r
+    SignatureList->SignatureListSize   = (UINT32)SignatureListSize;\r
+    SignatureList->SignatureSize       = (UINT32)(sizeof (EFI_SIGNATURE_DATA) - 1 + mImageDigestSize);\r
     CopyMem (&SignatureList->SignatureType, &mCertType, sizeof (EFI_GUID));\r
-    Signature = (EFI_SIGNATURE_DATA *) ((UINT8 *) SignatureList + sizeof (EFI_SIGNATURE_LIST));\r
+    Signature = (EFI_SIGNATURE_DATA *)((UINT8 *)SignatureList + sizeof (EFI_SIGNATURE_LIST));\r
     CopyMem (Signature->SignatureData, mImageDigest, mImageDigestSize);\r
   }\r
 \r
@@ -1991,7 +2032,7 @@ Failed:
   AddImageExeInfo (Action, NameStr, File, SignatureList, SignatureListSize);\r
   if (NameStr != NULL) {\r
     DEBUG ((DEBUG_INFO, "The image doesn't pass verification: %s\n", NameStr));\r
-    FreePool(NameStr);\r
+    FreePool (NameStr);\r
   }\r
 \r
   if (SignatureList != NULL) {\r
@@ -2001,6 +2042,7 @@ Failed:
   if (Policy == DEFER_EXECUTE_ON_SECURITY_VIOLATION) {\r
     return EFI_SECURITY_VIOLATION;\r
   }\r
+\r
   return EFI_ACCESS_DENIED;\r
 }\r
 \r
@@ -2016,27 +2058,26 @@ Failed:
 VOID\r
 EFIAPI\r
 OnReadyToBoot (\r
-  IN      EFI_EVENT               Event,\r
-  IN      VOID                    *Context\r
+  IN      EFI_EVENT  Event,\r
+  IN      VOID       *Context\r
   )\r
 {\r
   EFI_IMAGE_EXECUTION_INFO_TABLE  *ImageExeInfoTable;\r
   UINTN                           ImageExeInfoTableSize;\r
 \r
-  EfiGetSystemConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID **) &ImageExeInfoTable);\r
+  EfiGetSystemConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID **)&ImageExeInfoTable);\r
   if (ImageExeInfoTable != NULL) {\r
     return;\r
   }\r
 \r
   ImageExeInfoTableSize = sizeof (EFI_IMAGE_EXECUTION_INFO_TABLE);\r
-  ImageExeInfoTable     = (EFI_IMAGE_EXECUTION_INFO_TABLE *) AllocateRuntimePool (ImageExeInfoTableSize);\r
+  ImageExeInfoTable     = (EFI_IMAGE_EXECUTION_INFO_TABLE *)AllocateRuntimePool (ImageExeInfoTableSize);\r
   if (ImageExeInfoTable == NULL) {\r
-    return ;\r
+    return;\r
   }\r
 \r
   ImageExeInfoTable->NumberOfImages = 0;\r
-  gBS->InstallConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID *) ImageExeInfoTable);\r
-\r
+  gBS->InstallConfigurationTable (&gEfiImageSecurityDatabaseGuid, (VOID *)ImageExeInfoTable);\r
 }\r
 \r
 /**\r
@@ -2054,7 +2095,7 @@ DxeImageVerificationLibConstructor (
   IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
-  EFI_EVENT            Event;\r
+  EFI_EVENT  Event;\r
 \r
   //\r
   // Register the event to publish the image execution table.\r
@@ -2067,7 +2108,7 @@ DxeImageVerificationLibConstructor (
     );\r
 \r
   return RegisterSecurity2Handler (\r
-          DxeImageVerificationHandler,\r
-          EFI_AUTH_OPERATION_VERIFY_IMAGE | EFI_AUTH_OPERATION_IMAGE_REQUIRED\r
-          );\r
+           DxeImageVerificationHandler,\r
+           EFI_AUTH_OPERATION_VERIFY_IMAGE | EFI_AUTH_OPERATION_IMAGE_REQUIRED\r
+           );\r
 }\r