XenevaOS
Loading...
Searching...
No Matches
Kms.h
Go to the documentation of this file.
1
22#ifndef __KMS_H__
23#define __KMS_H__
24
25#define EFI_KMS_PROTOCOL_GUID \
26 { \
27 0xEC3A978D, 0x7C4E, 0x48FA, {0x9A, 0xBE, 0x6A, 0xD9, 0x1C, 0xC8, 0xF8, 0x11 } \
28 }
29
31
32//
33// Where appropriate, EFI_KMS_DATA_TYPE values may be combined using a bitwise 'OR'
34// operation to indicate support for multiple data types.
35//
36#define EFI_KMS_DATA_TYPE_NONE 0
37#define EFI_KMS_DATA_TYPE_BINARY 1
38#define EFI_KMS_DATA_TYPE_ASCII 2
39#define EFI_KMS_DATA_TYPE_UNICODE 4
40#define EFI_KMS_DATA_TYPE_UTF8 8
41
42
43//
44// The key formats recognized by the KMS protocol are defined by an EFI_GUID which specifies
45// a (key-algorithm, key-size) pair. The names of these GUIDs are in the format
46// EFI_KMS_KEY_(key-algorithm)_(key-size)_GUID, where the key-size is expressed in bits.
47// The key formats recognized fall into three categories, generic (no algorithm), hash algorithms,
48// and encrypted algorithms.
49//
50
55#define EFI_KMS_FORMAT_GENERIC_128_GUID \
56 { \
57 0xec8a3d69, 0x6ddf, 0x4108, {0x94, 0x76, 0x73, 0x37, 0xfc, 0x52, 0x21, 0x36 } \
58 }
59#define EFI_KMS_FORMAT_GENERIC_160_GUID \
60 { \
61 0xa3b3e6f8, 0xefca, 0x4bc1, {0x88, 0xfb, 0xcb, 0x87, 0x33, 0x9b, 0x25, 0x79 } \
62 }
63#define EFI_KMS_FORMAT_GENERIC_256_GUID \
64 { \
65 0x70f64793, 0xc323, 0x4261, {0xac, 0x2c, 0xd8, 0x76, 0xf2, 0x7c, 0x53, 0x45 } \
66 }
67#define EFI_KMS_FORMAT_GENERIC_512_GUID \
68 { \
69 0x978fe043, 0xd7af, 0x422e, {0x8a, 0x92, 0x2b, 0x48, 0xe4, 0x63, 0xbd, 0xe6 } \
70 }
71#define EFI_KMS_FORMAT_GENERIC_1024_GUID \
72 { \
73 0x43be0b44, 0x874b, 0x4ead, {0xb0, 0x9c, 0x24, 0x1a, 0x4f, 0xbd, 0x7e, 0xb3 } \
74 }
75#define EFI_KMS_FORMAT_GENERIC_2048_GUID \
76 { \
77 0x40093f23, 0x630c, 0x4626, {0x9c, 0x48, 0x40, 0x37, 0x3b, 0x19, 0xcb, 0xbe } \
78 }
79#define EFI_KMS_FORMAT_GENERIC_3072_GUID \
80 { \
81 0xb9237513, 0x6c44, 0x4411, {0xa9, 0x90, 0x21, 0xe5, 0x56, 0xe0, 0x5a, 0xde } \
82 }
83#define EFI_KMS_FORMAT_GENERIC_DYNAMIC_GUID \
84 { \
85 0x2156e996, 0x66de, 0x4b27, {0x9c, 0xc9, 0xb0, 0x9f, 0xac, 0x4d, 0x2, 0xbe } \
86 }
88
93#define EFI_KMS_FORMAT_MD2_128_GUID \
94 { \
95 0x78be11c4, 0xee44, 0x4a22, {0x9f, 0x05, 0x03, 0x85, 0x2e, 0xc5, 0xc9, 0x78 } \
96 }
97#define EFI_KMS_FORMAT_MDC2_128_GUID \
98 { \
99 0xf7ad60f8, 0xefa8, 0x44a3, {0x91, 0x13, 0x23, 0x1f, 0x39, 0x9e, 0xb4, 0xc7 } \
100 }
101#define EFI_KMS_FORMAT_MD4_128_GUID \
102 { \
103 0xd1c17aa1, 0xcac5, 0x400f, {0xbe, 0x17, 0xe2, 0xa2, 0xae, 0x06, 0x67, 0x7c } \
104 }
105#define EFI_KMS_FORMAT_MDC4_128_GUID \
106 { \
107 0x3fa4f847, 0xd8eb, 0x4df4, {0xbd, 0x49, 0x10, 0x3a, 0x0a, 0x84, 0x7b, 0xbc } \
108 }
109#define EFI_KMS_FORMAT_MD5_128_GUID \
110 { \
111 0xdcbc3662, 0x9cda, 0x4b52, {0xa0, 0x4c, 0x82, 0xeb, 0x1d, 0x23, 0x48, 0xc7 } \
112 }
113#define EFI_KMS_FORMAT_MD5SHA_128_GUID \
114 { \
115 0x1c178237, 0x6897, 0x459e, {0x9d, 0x36, 0x67, 0xce, 0x8e, 0xf9, 0x4f, 0x76 } \
116 }
117#define EFI_KMS_FORMAT_SHA1_160_GUID \
118 { \
119 0x453c5e5a, 0x482d, 0x43f0, {0x87, 0xc9, 0x59, 0x41, 0xf3, 0xa3, 0x8a, 0xc2 } \
120 }
121#define EFI_KMS_FORMAT_SHA256_256_GUID \
122 { \
123 0x6bb4f5cd, 0x8022, 0x448d, {0xbc, 0x6d, 0x77, 0x1b, 0xae, 0x93, 0x5f, 0xc6 } \
124 }
125#define EFI_KMS_FORMAT_SHA512_512_GUID \
126 { \
127 0x2f240e12, 0xe14d, 0x475c, {0x83, 0xb0, 0xef, 0xff, 0x22, 0xd7, 0x7b, 0xe7 } \
128 }
130
135#define EFI_KMS_FORMAT_AESXTS_128_GUID \
136 { \
137 0x4776e33f, 0xdb47, 0x479a, {0xa2, 0x5f, 0xa1, 0xcd, 0x0a, 0xfa, 0xb3, 0x8b } \
138 }
139#define EFI_KMS_FORMAT_AESXTS_256_GUID \
140 { \
141 0xdc7e8613, 0xc4bb, 0x4db0, {0x84, 0x62, 0x13, 0x51, 0x13, 0x57, 0xab, 0xe2 } \
142 }
143#define EFI_KMS_FORMAT_AESCBC_128_GUID \
144 { \
145 0xa0e8ee6a, 0x0e92, 0x44d4, {0x86, 0x1b, 0x0e, 0xaa, 0x4a, 0xca, 0x44, 0xa2 } \
146 }
147#define EFI_KMS_FORMAT_AESCBC_256_GUID \
148 { \
149 0xd7e69789, 0x1f68, 0x45e8, {0x96, 0xef, 0x3b, 0x64, 0x07, 0xa5, 0xb2, 0xdc } \
150 }
151#define EFI_KMS_FORMAT_RSASHA1_1024_GUID \
152 { \
153 0x56417bed, 0x6bbe, 0x4882, {0x86, 0xa0, 0x3a, 0xe8, 0xbb, 0x17, 0xf8, 0xf9 } \
154 }
155#define EFI_KMS_FORMAT_RSASHA1_2048_GUID \
156 { \
157 0xf66447d4, 0x75a6, 0x463e, {0xa8, 0x19, 0x07, 0x7f, 0x2d, 0xda, 0x05, 0xe9 } \
158 }
159#define EFI_KMS_FORMAT_RSASHA256_2048_GUID \
160 { \
161 0xa477af13, 0x877d, 0x4060, {0xba, 0xa1, 0x25, 0xd1, 0xbe, 0xa0, 0x8a, 0xd3 } \
162 }
163#define EFI_KMS_FORMAT_RSASHA256_3072_GUID \
164 { \
165 0x4e1356c2, 0xeed, 0x463f, {0x81, 0x47, 0x99, 0x33, 0xab, 0xdb, 0xc7, 0xd5 } \
166 }
168
169#define EFI_KMS_ATTRIBUTE_TYPE_NONE 0x00
170#define EFI_KMS_ATTRIBUTE_TYPE_INTEGER 0x01
171#define EFI_KMS_ATTRIBUTE_TYPE_LONG_INTEGER 0x02
172#define EFI_KMS_ATTRIBUTE_TYPE_BIG_INTEGER 0x03
173#define EFI_KMS_ATTRIBUTE_TYPE_ENUMERATION 0x04
174#define EFI_KMS_ATTRIBUTE_TYPE_BOOLEAN 0x05
175#define EFI_KMS_ATTRIBUTE_TYPE_BYTE_STRING 0x06
176#define EFI_KMS_ATTRIBUTE_TYPE_TEXT_STRING 0x07
177#define EFI_KMS_ATTRIBUTE_TYPE_DATE_TIME 0x08
178#define EFI_KMS_ATTRIBUTE_TYPE_INTERVAL 0x09
179#define EFI_KMS_ATTRIBUTE_TYPE_STRUCTURE 0x0A
180#define EFI_KMS_ATTRIBUTE_TYPE_DYNAMIC 0x0B
181
182typedef struct {
190 UINT8 KeyData[1];
192
220
258
259typedef struct {
277 UINT8 KeyAttributeData[1];
279
290
351
365typedef
368 IN EFI_KMS_PROTOCOL *This
369 );
370
414typedef
417 IN EFI_KMS_PROTOCOL *This,
418 IN EFI_KMS_CLIENT_INFO *Client,
419 IN OUT UINTN *ClientDataSize OPTIONAL,
420 IN OUT VOID **ClientData OPTIONAL
421 );
422
508typedef
511 IN EFI_KMS_PROTOCOL *This,
512 IN EFI_KMS_CLIENT_INFO *Client,
513 IN OUT UINT16 *KeyDescriptorCount,
514 IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors,
515 IN OUT UINTN *ClientDataSize OPTIONAL,
516 IN OUT VOID **ClientData OPTIONAL
517 );
518
596typedef
599 IN EFI_KMS_PROTOCOL *This,
600 IN EFI_KMS_CLIENT_INFO *Client,
601 IN OUT UINT16 *KeyDescriptorCount,
602 IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors,
603 IN OUT UINTN *ClientDataSize OPTIONAL,
604 IN OUT VOID **ClientData OPTIONAL
605 );
606
682typedef
685 IN EFI_KMS_PROTOCOL *This,
686 IN EFI_KMS_CLIENT_INFO *Client,
687 IN OUT UINT16 *KeyDescriptorCount,
688 IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors,
689 IN OUT UINTN *ClientDataSize OPTIONAL,
690 IN OUT VOID **ClientData OPTIONAL
691 );
692
761typedef
764 IN EFI_KMS_PROTOCOL *This,
765 IN EFI_KMS_CLIENT_INFO *Client,
766 IN OUT UINT16 *KeyDescriptorCount,
767 IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors,
768 IN OUT UINTN *ClientDataSize OPTIONAL,
769 IN OUT VOID **ClientData OPTIONAL
770 );
771
848typedef
851 IN EFI_KMS_PROTOCOL *This,
852 IN EFI_KMS_CLIENT_INFO *Client,
853 IN UINT8 *KeyIdentifierSize,
854 IN CONST VOID *KeyIdentifier,
855 IN OUT UINT16 *KeyAttributesCount,
856 IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes,
857 IN OUT UINTN *ClientDataSize OPTIONAL,
858 IN OUT VOID **ClientData OPTIONAL
859 );
860
938typedef
941 IN EFI_KMS_PROTOCOL *This,
942 IN EFI_KMS_CLIENT_INFO *Client,
943 IN UINT8 *KeyIdentifierSize,
944 IN CONST VOID *KeyIdentifier,
945 IN OUT UINT16 *KeyAttributesCount,
946 IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes,
947 IN OUT UINTN *ClientDataSize OPTIONAL,
948 IN OUT VOID **ClientData OPTIONAL
949 );
950
1021typedef
1024 IN EFI_KMS_PROTOCOL *This,
1025 IN EFI_KMS_CLIENT_INFO *Client,
1026 IN UINT8 *KeyIdentifierSize,
1027 IN CONST VOID *KeyIdentifier,
1028 IN OUT UINT16 *KeyAttributesCount,
1029 IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes,
1030 IN OUT UINTN *ClientDataSize OPTIONAL,
1031 IN OUT VOID **ClientData OPTIONAL
1032 );
1033
1124typedef
1127 IN EFI_KMS_PROTOCOL *This,
1128 IN EFI_KMS_CLIENT_INFO *Client,
1129 IN OUT UINTN *KeyAttributeCount,
1130 IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes,
1131 IN OUT UINTN *KeyDescriptorCount,
1132 IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors,
1133 IN OUT UINTN *ClientDataSize OPTIONAL,
1134 IN OUT VOID **ClientData OPTIONAL
1135 );
1136
1316
1342
1343#endif
UINT64 UINTN
Definition ProcessorBind.h:118
unsigned short CHAR16
Definition ProcessorBind.h:105
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define CONST
Definition Base.h:327
#define IN
Definition Base.h:347
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
EFI_GUID gEfiKmsFormatMdc2128Guid
EFI_STATUS(EFIAPI * EFI_KMS_GET_KEY)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN OUT UINT16 *KeyDescriptorCount, IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:598
EFI_STATUS(EFIAPI * EFI_KMS_CREATE_KEY)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN OUT UINT16 *KeyDescriptorCount, IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:510
EFI_STATUS(EFIAPI * EFI_KMS_DELETE_KEY_ATTRIBUTES)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN UINT8 *KeyIdentifierSize, IN CONST VOID *KeyIdentifier, IN OUT UINT16 *KeyAttributesCount, IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:1023
EFI_GUID gEfiKmsFormatAescbc128Guid
EFI_GUID gEfiKmsFormatSha512512Guid
EFI_GUID gEfiKmsFormatRsasha11024Guid
EFI_GUID gEfiKmsFormatGeneric512Guid
EFI_GUID gEfiKmsFormatMd5sha128Guid
EFI_GUID gEfiKmsFormatAesxts128Guid
EFI_GUID gEfiKmsFormatGeneric128Guid
EFI_GUID gEfiKmsFormatMdc4128Guid
EFI_GUID gEfiKmsFormatRsasha2562048Guid
EFI_GUID gEfiKmsFormatGeneric2048Guid
EFI_STATUS(EFIAPI * EFI_KMS_GET_KEY_ATTRIBUTES)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN UINT8 *KeyIdentifierSize, IN CONST VOID *KeyIdentifier, IN OUT UINT16 *KeyAttributesCount, IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:850
EFI_GUID gEfiKmsFormatAesxts256Guid
EFI_STATUS(EFIAPI * EFI_KMS_GET_KEY_BY_ATTRIBUTES)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN OUT UINTN *KeyAttributeCount, IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes, IN OUT UINTN *KeyDescriptorCount, IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:1126
EFI_GUID gEfiKmsFormatSha1160Guid
EFI_STATUS(EFIAPI * EFI_KMS_GET_SERVICE_STATUS)(IN EFI_KMS_PROTOCOL *This)
Definition Kms.h:367
EFI_GUID gEfiKmsFormatSha256256Guid
EFI_GUID gEfiKmsFormatAescbc256Guid
EFI_GUID gEfiKmsFormatRsasha12048Guid
EFI_GUID gEfiKmsFormatMd2128Guid
EFI_STATUS(EFIAPI * EFI_KMS_ADD_KEY_ATTRIBUTES)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN UINT8 *KeyIdentifierSize, IN CONST VOID *KeyIdentifier, IN OUT UINT16 *KeyAttributesCount, IN OUT EFI_KMS_KEY_ATTRIBUTE *KeyAttributes, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:940
EFI_GUID gEfiKmsProtocolGuid
EFI_GUID gEfiKmsFormatMd5128Guid
EFI_GUID gEfiKmsFormatMd4128Guid
EFI_STATUS(EFIAPI * EFI_KMS_DELETE_KEY)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN OUT UINT16 *KeyDescriptorCount, IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:763
EFI_GUID gEfiKmsFormatGeneric256Guid
EFI_GUID gEfiKmsFormatGeneric160Guid
EFI_STATUS(EFIAPI * EFI_KMS_REGISTER_CLIENT)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:416
EFI_GUID gEfiKmsFormatGeneric3072Guid
EFI_GUID gEfiKmsFormatGeneric1024Guid
EFI_STATUS(EFIAPI * EFI_KMS_ADD_KEY)(IN EFI_KMS_PROTOCOL *This, IN EFI_KMS_CLIENT_INFO *Client, IN OUT UINT16 *KeyDescriptorCount, IN OUT EFI_KMS_KEY_DESCRIPTOR *KeyDescriptors, IN OUT UINTN *ClientDataSize OPTIONAL, IN OUT VOID **ClientData OPTIONAL)
Definition Kms.h:684
EFI_GUID gEfiKmsFormatRsasha2563072Guid
RETURN_STATUS EFI_STATUS
Definition UefiBaseType.h:33
#define VOID
Definition acefi.h:190
unsigned short UINT16
Definition actypes.h:237
unsigned char BOOLEAN
Definition actypes.h:235
unsigned char UINT8
Definition actypes.h:236
Definition Kms.h:193
UINT8 ClientNameCount
Definition Kms.h:213
VOID * ClientId
Definition Kms.h:201
UINT8 ClientNameType
Definition Kms.h:207
UINT16 ClientIdSize
Definition Kms.h:197
VOID * ClientName
Definition Kms.h:218
Definition Kms.h:280
UINT32 FieldCount
Definition Kms.h:284
Definition Kms.h:259
UINT16 Tag
Definition Kms.h:264
UINT32 Length
Definition Kms.h:273
UINT16 Type
Definition Kms.h:269
Definition Kms.h:182
UINT32 KeySize
Definition Kms.h:186
Definition Kms.h:291
EFI_STATUS KeyAttributeStatus
Definition Kms.h:349
UINT8 KeyAttributeIdentifierType
Definition Kms.h:297
UINT16 KeyAttributeValueSize
Definition Kms.h:326
UINT8 KeyAttributeIdentifierCount
Definition Kms.h:302
VOID * KeyAttributeIdentifier
Definition Kms.h:307
UINT16 KeyAttributeType
Definition Kms.h:321
VOID * KeyAttributeValue
Definition Kms.h:331
UINT16 KeyAttributeInstance
Definition Kms.h:316
Definition Kms.h:221
VOID * KeyValue
Definition Kms.h:238
UINT8 KeyIdentifierSize
Definition Kms.h:225
VOID * KeyIdentifier
Definition Kms.h:229
EFI_STATUS KeyStatus
Definition Kms.h:256
EFI_GUID KeyFormat
Definition Kms.h:233
Definition Base.h:281
Definition Kms.h:1141
UINT16 ClientIdMaxSize
Definition Kms.h:1227
EFI_GUID ServiceId
Definition Kms.h:1194
BOOLEAN KeyAttributesSupported
Definition Kms.h:1287
UINT16 ClientNameMaxCount
Definition Kms.h:1243
EFI_KMS_REGISTER_CLIENT RegisterClient
Definition Kms.h:1151
EFI_KMS_ADD_KEY_ATTRIBUTES AddKeyAttributes
Definition Kms.h:1176
UINT8 ClientNameStringTypes
Definition Kms.h:1234
EFI_KMS_DELETE_KEY DeleteKey
Definition Kms.h:1168
UINTN KeyAttributesCount
Definition Kms.h:1301
BOOLEAN ClientDataSupported
Definition Kms.h:1250
UINTN KeyIdMaxSize
Definition Kms.h:1266
UINTN KeyFormatsCount
Definition Kms.h:1270
UINT32 ServiceVersion
Definition Kms.h:1204
EFI_KMS_GET_KEY GetKey
Definition Kms.h:1159
EFI_KMS_DELETE_KEY_ATTRIBUTES DeleteKeyAttributes
Definition Kms.h:1180
EFI_GUID * KeyFormats
Definition Kms.h:1282
EFI_KMS_GET_KEY_BY_ATTRIBUTES GetKeyByAttributes
Definition Kms.h:1184
UINT32 ProtocolVersion
Definition Kms.h:1189
CHAR16 * ServiceName
Definition Kms.h:1199
BOOLEAN ClientIdSupported
Definition Kms.h:1218
BOOLEAN ClientIdRequired
Definition Kms.h:1223
EFI_KMS_CREATE_KEY CreateKey
Definition Kms.h:1155
EFI_KMS_ADD_KEY AddKey
Definition Kms.h:1164
BOOLEAN KeyIdVariableLenSupported
Definition Kms.h:1260
BOOLEAN ServiceAvailable
Definition Kms.h:1213
BOOLEAN ClientNameRequired
Definition Kms.h:1239
UINTN ClientDataMaxSize
Definition Kms.h:1255
UINT8 KeyAttributeIdStringTypes
Definition Kms.h:1294
EFI_KMS_KEY_ATTRIBUTE * KeyAttributes
Definition Kms.h:1314
UINT16 KeyAttributeIdMaxCount
Definition Kms.h:1295
EFI_KMS_GET_SERVICE_STATUS GetServiceStatus
Definition Kms.h:1147
EFI_KMS_GET_KEY_ATTRIBUTES GetKeyAttributes
Definition Kms.h:1172