TianoCore EDK2 master
Loading...
Searching...
No Matches
_EFI_KMS_PROTOCOL Struct Reference

#include <MdePkg/Include/Protocol/Kms.h>

Data Fields

EFI_KMS_GET_SERVICE_STATUS GetServiceStatus
 
EFI_KMS_REGISTER_CLIENT RegisterClient
 
EFI_KMS_CREATE_KEY CreateKey
 
EFI_KMS_GET_KEY GetKey
 
EFI_KMS_ADD_KEY AddKey
 
EFI_KMS_DELETE_KEY DeleteKey
 
EFI_KMS_GET_KEY_ATTRIBUTES GetKeyAttributes
 
EFI_KMS_ADD_KEY_ATTRIBUTES AddKeyAttributes
 
EFI_KMS_DELETE_KEY_ATTRIBUTES DeleteKeyAttributes
 
EFI_KMS_GET_KEY_BY_ATTRIBUTES GetKeyByAttributes
 
UINT32 ProtocolVersion
 
EFI_GUID ServiceId
 
CHAR16 * ServiceName
 
UINT32 ServiceVersion
 
BOOLEAN ServiceAvailable
 
BOOLEAN ClientIdSupported
 
BOOLEAN ClientIdRequired
 
UINT16 ClientIdMaxSize
 
UINT8 ClientNameStringTypes
 
BOOLEAN ClientNameRequired
 
UINT16 ClientNameMaxCount
 
BOOLEAN ClientDataSupported
 
UINTN ClientDataMaxSize
 
BOOLEAN KeyIdVariableLenSupported
 
UINTN KeyIdMaxSize
 
UINTN KeyFormatsCount
 
EFI_GUIDKeyFormats
 
BOOLEAN KeyAttributesSupported
 
UINT8 KeyAttributeIdStringTypes
 
UINT16 KeyAttributeIdMaxCount
 
UINTN KeyAttributesCount
 
EFI_KMS_KEY_ATTRIBUTEKeyAttributes
 

Detailed Description

The Key Management Service (KMS) protocol provides services to generate, store, retrieve, and manage cryptographic keys.

Definition at line 1134 of file Kms.h.

Field Documentation

◆ AddKey

EFI_KMS_ADD_KEY _EFI_KMS_PROTOCOL::AddKey

Add a local key to KMS database. If there is an existing key with this key identifier in the KMS database, it will be replaced with the new key.

Definition at line 1157 of file Kms.h.

◆ AddKeyAttributes

EFI_KMS_ADD_KEY_ATTRIBUTES _EFI_KMS_PROTOCOL::AddKeyAttributes

Add attributes to an existing key in the KMS database.

Definition at line 1169 of file Kms.h.

◆ ClientDataMaxSize

UINTN _EFI_KMS_PROTOCOL::ClientDataMaxSize

The maximum size in bytes for the client data. If the maximum data size is not specified by the KMS or it is not known, then this field must be filled with all ones.

Definition at line 1248 of file Kms.h.

◆ ClientDataSupported

BOOLEAN _EFI_KMS_PROTOCOL::ClientDataSupported

TRUE if and only if the service supports arbitrary client data requests. The use of client data requires the caller to have specific knowledge of the individual KMS service and should be used only if absolutely necessary. FALSE otherwise.

Definition at line 1243 of file Kms.h.

◆ ClientIdMaxSize

UINT16 _EFI_KMS_PROTOCOL::ClientIdMaxSize

The maximum size in bytes for the client identifier.

Definition at line 1220 of file Kms.h.

◆ ClientIdRequired

BOOLEAN _EFI_KMS_PROTOCOL::ClientIdRequired

TRUE if and only if the service requires a client identifier in order to process key requests. FALSE otherwise.

Definition at line 1216 of file Kms.h.

◆ ClientIdSupported

BOOLEAN _EFI_KMS_PROTOCOL::ClientIdSupported

TRUE if and only if the service supports client identifiers. Client identifiers may be used for auditing, access control or any other purpose specific to the implementation.

Definition at line 1211 of file Kms.h.

◆ ClientNameMaxCount

UINT16 _EFI_KMS_PROTOCOL::ClientNameMaxCount

The maximum number of characters allowed for the client name.

Definition at line 1236 of file Kms.h.

◆ ClientNameRequired

BOOLEAN _EFI_KMS_PROTOCOL::ClientNameRequired

TRUE if only if the KMS requires a client name to be supplied to the service. FALSE otherwise.

Definition at line 1232 of file Kms.h.

◆ ClientNameStringTypes

UINT8 _EFI_KMS_PROTOCOL::ClientNameStringTypes

The client name string type(s) supported by the KMS service. If client names are not supported, this field will be set the EFI_KMS_DATA_TYPE_NONE. Otherwise, it will be set to the inclusive 'OR' of all client name formats supported. Client names may be used for auditing, access control or any other purpose specific to the implementation.

Definition at line 1227 of file Kms.h.

◆ CreateKey

EFI_KMS_CREATE_KEY _EFI_KMS_PROTOCOL::CreateKey

Request the generation of a new key and retrieve it.

Definition at line 1148 of file Kms.h.

◆ DeleteKey

EFI_KMS_DELETE_KEY _EFI_KMS_PROTOCOL::DeleteKey

Delete an existing key from the KMS database.

Definition at line 1161 of file Kms.h.

◆ DeleteKeyAttributes

EFI_KMS_DELETE_KEY_ATTRIBUTES _EFI_KMS_PROTOCOL::DeleteKeyAttributes

Delete attributes for an existing key in the KMS database.

Definition at line 1173 of file Kms.h.

◆ GetKey

EFI_KMS_GET_KEY _EFI_KMS_PROTOCOL::GetKey

Retrieve an existing key.

Definition at line 1152 of file Kms.h.

◆ GetKeyAttributes

EFI_KMS_GET_KEY_ATTRIBUTES _EFI_KMS_PROTOCOL::GetKeyAttributes

Get attributes for an existing key in the KMS database.

Definition at line 1165 of file Kms.h.

◆ GetKeyByAttributes

EFI_KMS_GET_KEY_BY_ATTRIBUTES _EFI_KMS_PROTOCOL::GetKeyByAttributes

Get existing key(s) with the specified attributes.

Definition at line 1177 of file Kms.h.

◆ GetServiceStatus

EFI_KMS_GET_SERVICE_STATUS _EFI_KMS_PROTOCOL::GetServiceStatus

Get the current status of the key management service. If the implementation has not yet connected to the KMS, then a call to this function will initiate a connection. This is the only function that is valid for use prior to the service being marked available.

Definition at line 1140 of file Kms.h.

◆ KeyAttributeIdMaxCount

UINT16 _EFI_KMS_PROTOCOL::KeyAttributeIdMaxCount

Definition at line 1288 of file Kms.h.

◆ KeyAttributeIdStringTypes

UINT8 _EFI_KMS_PROTOCOL::KeyAttributeIdStringTypes

The key attribute identifier string type(s) supported by the KMS service. If key attributes are not supported, this field will be set to EFI_KMS_DATA_TYPE_NONE. Otherwise, it will be set to the inclusive 'OR' of all key attribute identifier string types supported. EFI_KMS_DATA_TYPE_BINARY is not valid for this field.

Definition at line 1287 of file Kms.h.

◆ KeyAttributes

EFI_KMS_KEY_ATTRIBUTE* _EFI_KMS_PROTOCOL::KeyAttributes

A pointer to an array of KeyAttributes structures which contains the predefined attributes supported by this KMS. Each structure must contain a valid key attribute identifier and should provide any other information as appropriate for the attribute, including a default value if one exists. This variable must be set to NULL if the KeyAttributesCount variable is zero. It must point to a valid buffer if the KeyAttributesCount variable is non-zero. This list of predefined attributes is not required to be exhaustive, and the KMS may provide additional predefined attributes not enumerated in this list. The implementation does not distinguish between predefined and used defined attributes, and therefore, predefined attributes not enumerated will still be processed to the KMS.

Definition at line 1307 of file Kms.h.

◆ KeyAttributesCount

UINTN _EFI_KMS_PROTOCOL::KeyAttributesCount

The number of predefined KeyAttributes structures returned in the KeyAttributes parameter. If the KMS does not support predefined key attributes, or if it does not provide a method to obtain predefined key attributes data, then this field must be zero.

Definition at line 1294 of file Kms.h.

◆ KeyAttributesSupported

BOOLEAN _EFI_KMS_PROTOCOL::KeyAttributesSupported

TRUE if key attributes are supported. FALSE if key attributes are not supported.

Definition at line 1280 of file Kms.h.

◆ KeyFormats

EFI_GUID* _EFI_KMS_PROTOCOL::KeyFormats

A pointer to an array of EFI_GUID values which specify key formats/sizes supported by this KMS. Each format/size pair will be specified by a separate EFI_GUID. At least one key format/size must be supported. All formats/sizes with the same hashing algorithm must be contiguous in the array, and for each hashing algorithm, the key sizes must be in ascending order. See "Related Definitions" for GUIDs which identify supported key formats/sizes. This list of GUIDs supported by the KMS is not required to be exhaustive, and the KMS may provide support for additional key formats/sizes. Users may request key information using an arbitrary GUID, but any GUID not recognized by the implementation or not supported by the KMS will return an error code of EFI_UNSUPPORTED

Definition at line 1275 of file Kms.h.

◆ KeyFormatsCount

UINTN _EFI_KMS_PROTOCOL::KeyFormatsCount

The number of key format/size GUIDs returned in the KeyFormats field.

Definition at line 1263 of file Kms.h.

◆ KeyIdMaxSize

UINTN _EFI_KMS_PROTOCOL::KeyIdMaxSize

If KeyIdVariableLenSupported is TRUE, this is the maximum supported key identifier length in bytes. Otherwise this is the fixed length of key identifier supported. Key ids shorter than the fixed length will be padded on the right with blanks.

Definition at line 1259 of file Kms.h.

◆ KeyIdVariableLenSupported

BOOLEAN _EFI_KMS_PROTOCOL::KeyIdVariableLenSupported

TRUE if variable length key identifiers are supported. FALSE if a fixed length key identifier is supported.

Definition at line 1253 of file Kms.h.

◆ ProtocolVersion

UINT32 _EFI_KMS_PROTOCOL::ProtocolVersion

The version of this EFI_KMS_PROTOCOL structure. This must be set to 0x00020040 for the initial version of this protocol.

Definition at line 1182 of file Kms.h.

◆ RegisterClient

EFI_KMS_REGISTER_CLIENT _EFI_KMS_PROTOCOL::RegisterClient

Register a specific client with the KMS.

Definition at line 1144 of file Kms.h.

◆ ServiceAvailable

BOOLEAN _EFI_KMS_PROTOCOL::ServiceAvailable

TRUE if and only if the service is active and available for use. To avoid unnecessary delays in POST, this protocol may be installed without connecting to the service. In this case, the first call to the GetServiceStatus () function will cause the implementation to connect to the supported service and mark it as available. The capabilities of this service as defined in the reminder of this protocol are not guaranteed to be valid until the service has been marked available.

Definition at line 1206 of file Kms.h.

◆ ServiceId

EFI_GUID _EFI_KMS_PROTOCOL::ServiceId

Optional GUID used to identify a specific KMS. This GUID may be supplied by the provider, by the implementation, or may be null. If is null, then the ServiceName must not be null.

Definition at line 1187 of file Kms.h.

◆ ServiceName

CHAR16* _EFI_KMS_PROTOCOL::ServiceName

Optional pointer to a unicode string which may be used to identify the KMS or provide other information about the supplier.

Definition at line 1192 of file Kms.h.

◆ ServiceVersion

UINT32 _EFI_KMS_PROTOCOL::ServiceVersion

Optional 32-bit value which may be used to indicate the version of the KMS provided by the supplier.

Definition at line 1197 of file Kms.h.


The documentation for this struct was generated from the following file: