Security.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /** @file
  2. This file declares the Security Architectural PPI.
  3. This PPI is installed by a platform PEIM that abstracts the security policy to the PEI
  4. Foundation, namely the case of a PEIM's authentication state being returned during the PEI section
  5. extraction process.
  6. Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
  7. SPDX-License-Identifier: BSD-2-Clause-Patent
  8. @par Revision Reference:
  9. This PPI is defined in PEI CIS.
  10. Version 0.91.
  11. **/
  12. #ifndef __SECURITY_PPI_H__
  13. #define __SECURITY_PPI_H__
  14. #define EFI_PEI_SECURITY_PPI_GUID \
  15. { \
  16. 0x1388066e, 0x3a57, 0x4efa, {0x98, 0xf3, 0xc1, 0x2f, 0x3a, 0x95, 0x8a, 0x29 } \
  17. }
  18. typedef struct _EFI_PEI_SECURITY_PPI EFI_PEI_SECURITY_PPI;
  19. /**
  20. Allows the platform builder to implement a security policy in response
  21. to varying file authentication states.
  22. @param PeiServices The pointer to the PEI Services Table.
  23. @param This Interface pointer that implements the particular
  24. EFI_PEI_SECURITY_PPI instance.
  25. @param AuthenticationStatus Status returned by the verification service as
  26. part of section extraction.
  27. @param FfsFileHeader The pointer to the file under review.
  28. @param DeferExecution The pointer to a variable that alerts the PEI
  29. Foundation to defer execution of a PEIM.
  30. @retval EFI_SUCCESS The service performed its action successfully.
  31. @retval EFI_SECURITY_VIOLATION The object cannot be trusted.
  32. **/
  33. typedef
  34. EFI_STATUS
  35. (EFIAPI *FRAMEWORK_EFI_PEI_SECURITY_AUTHENTICATION_STATE)(
  36. IN EFI_PEI_SERVICES **PeiServices,
  37. IN EFI_PEI_SECURITY_PPI *This,
  38. IN UINT32 AuthenticationStatus,
  39. IN EFI_FFS_FILE_HEADER *FfsFileHeader,
  40. IN OUT BOOLEAN *DeferExecution
  41. );
  42. //
  43. // PPI interface structure of Security PPI
  44. //
  45. struct _EFI_PEI_SECURITY_PPI {
  46. FRAMEWORK_EFI_PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState;
  47. };
  48. extern EFI_GUID gEfiPeiSecurityPpiGuid;
  49. #endif