51 OUT UINT32 *OutputBufferSize,
52 OUT UINT32 *ScratchBufferSize,
53 OUT UINT16 *SectionAttribute
56 if (IS_SECTION2 (InputSection)) {
61 &gEfiCrc32GuidedSectionExtractionGuid,
65 return EFI_INVALID_PARAMETER;
72 *ScratchBufferSize = 0;
79 &gEfiCrc32GuidedSectionExtractionGuid,
83 return EFI_INVALID_PARAMETER;
90 *ScratchBufferSize = 0;
118 OUT VOID **OutputBuffer,
119 IN VOID *ScratchBuffer OPTIONAL,
120 OUT UINT32 *AuthenticationStatus
123 UINT32 SectionCrc32Checksum;
124 UINT32 Crc32Checksum;
125 UINT32 OutputBufferSize;
127 if (IS_SECTION2 (InputSection)) {
132 &gEfiCrc32GuidedSectionExtractionGuid,
136 return EFI_INVALID_PARAMETER;
150 *AuthenticationStatus = EFI_AUTH_STATUS_IMAGE_SIGNED;
156 &gEfiCrc32GuidedSectionExtractionGuid,
160 return EFI_INVALID_PARAMETER;
174 *AuthenticationStatus = EFI_AUTH_STATUS_IMAGE_SIGNED;
181 if (Crc32Checksum != SectionCrc32Checksum) {
185 *AuthenticationStatus |= EFI_AUTH_STATUS_TEST_FAILED;
191 if ((*AuthenticationStatus & (EFI_AUTH_STATUS_TEST_FAILED | EFI_AUTH_STATUS_NOT_TESTED)) != 0) {
192 return EFI_ACCESS_DENIED;
216 &gEfiCrc32GuidedSectionExtractionGuid,
UINT32 EFIAPI CalculateCrc32(IN VOID *Buffer, IN UINTN Length)
BOOLEAN EFIAPI CompareGuid(IN CONST GUID *Guid1, IN CONST GUID *Guid2)
#define SECTION_SIZE(SectionHeaderPtr)
VOID * EFI_PEI_FILE_HANDLE