_EFI_KMS_PROTOCOL Struct Reference


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
CHAR16ServiceName
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.

Field Documentation

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.

EFI_KMS_ADD_KEY_ATTRIBUTES _EFI_KMS_PROTOCOL::AddKeyAttributes

Add attributes to an existing key in the KMS database.

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.

TURE 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.

The maximum size in bytes for the client identifier.

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

TURE 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.

The maximum number of characters allowed for the client name.

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

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.

EFI_KMS_CREATE_KEY _EFI_KMS_PROTOCOL::CreateKey

Request the generation of a new key and retrieve it.

EFI_KMS_DELETE_KEY _EFI_KMS_PROTOCOL::DeleteKey

Delete an existing key from the KMS database.

EFI_KMS_DELETE_KEY_ATTRIBUTES _EFI_KMS_PROTOCOL::DeleteKeyAttributes

Delete attributes for an existing key in the KMS database.

EFI_KMS_GET_KEY _EFI_KMS_PROTOCOL::GetKey

Retrieve an existing key.

EFI_KMS_GET_KEY_ATTRIBUTES _EFI_KMS_PROTOCOL::GetKeyAttributes

Get attributes for an existing key in the KMS database.

EFI_KMS_GET_KEY_BY_ATTRIBUTES _EFI_KMS_PROTOCOL::GetKeyByAttributes

Get existing key(s) with the specified attributes.

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.

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.

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.

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.

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

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

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

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.

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

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

EFI_KMS_REGISTER_CLIENT _EFI_KMS_PROTOCOL::RegisterClient

Register a specific client with the KMS.

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.

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.

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

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


Generated on Wed Sep 23 16:24:26 2015 for MdePkg[ALL] by  doxygen 1.5.7.1