]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Guid/VariableFormat.h
MdeModulePkg: Move authenticated variable definition from SecurityPkg
[mirror_edk2.git] / MdeModulePkg / Include / Guid / VariableFormat.h
index a7902f16828eb796c2ddcd3ee51403ff00a20f10..c52eaf3f12ec39c0cab8ee4e2079341211aae0b8 100644 (file)
@@ -2,7 +2,7 @@
   The variable data structures are related to EDK II-specific implementation of UEFI variables.\r
   VariableFormat.h defines variable data headers and variable storage region headers.\r
 \r
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under \r
 the terms and conditions of the BSD License that accompanies this distribution.  \r
 The full text of the license may be found at\r
@@ -19,7 +19,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define EFI_VARIABLE_GUID \\r
   { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d } }\r
 \r
+#define EFI_AUTHENTICATED_VARIABLE_GUID \\r
+  { 0xaaf32c78, 0x947b, 0x439a, { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 } }\r
+\r
 extern EFI_GUID gEfiVariableGuid;\r
+extern EFI_GUID gEfiAuthenticatedVariableGuid;\r
 \r
 ///\r
 /// Alignment of variable name and data, according to the architecture:\r
@@ -60,6 +64,7 @@ typedef enum {
 #pragma pack(1)\r
 \r
 #define VARIABLE_STORE_SIGNATURE  EFI_VARIABLE_GUID\r
+#define AUTHENTICATED_VARIABLE_STORE_SIGNATURE  EFI_AUTHENTICATED_VARIABLE_GUID\r
 \r
 ///\r
 /// Variable Store Header Format and State.\r
@@ -136,6 +141,49 @@ typedef struct {
   EFI_GUID    VendorGuid;\r
 } VARIABLE_HEADER;\r
 \r
+///\r
+/// Single Authenticated Variable Data Header Structure.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// Variable Data Start Flag.\r
+  ///\r
+  UINT16      StartId;\r
+  ///\r
+  /// Variable State defined above.\r
+  ///\r
+  UINT8       State;\r
+  UINT8       Reserved;\r
+  ///\r
+  /// Attributes of variable defined in UEFI specification.\r
+  ///\r
+  UINT32      Attributes;\r
+  ///\r
+  /// Associated monotonic count value against replay attack.\r
+  ///\r
+  UINT64      MonotonicCount;\r
+  ///\r
+  /// Associated TimeStamp value against replay attack.\r
+  ///\r
+  EFI_TIME    TimeStamp;\r
+  ///\r
+  /// Index of associated public key in database.\r
+  ///\r
+  UINT32      PubKeyIndex;\r
+  ///\r
+  /// Size of variable null-terminated Unicode string name.\r
+  ///\r
+  UINT32      NameSize;\r
+  ///\r
+  /// Size of the variable data without this header.\r
+  ///\r
+  UINT32      DataSize;\r
+  ///\r
+  /// A unique identifier for the vendor that produces and consumes this varaible.\r
+  ///\r
+  EFI_GUID    VendorGuid;\r
+} AUTHENTICATED_VARIABLE_HEADER;\r
+\r
 #pragma pack()\r
 \r
 typedef struct _VARIABLE_INFO_ENTRY  VARIABLE_INFO_ENTRY;\r