SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigImpl.c File Reference


Defines

#define EFI_TCG2_EVENT_LOG_FORMAT_ALL   (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)

Functions

EFI_STATUS EFIAPI Tcg2ExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS SaveTcg2PpRequest (IN UINT8 PpRequest)
EFI_STATUS SaveTcg2PpRequestParameter (IN UINT32 PpRequestParameter)
EFI_STATUS SaveTcg2PCRBanksRequest (IN UINTN PCRBankIndex, IN BOOLEAN Enable)
EFI_STATUS EFIAPI Tcg2RouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS EFIAPI Tcg2Callback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
VOID AppendBufferWithTpmAlgHash (IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 TpmAlgHash)
VOID FillBufferWithBootHashAlg (IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 BootHashAlg)
VOID FillBufferWithTCG2EventLogFormat (IN UINT16 *Buffer, IN UINTN BufferSize, IN UINT32 TCG2EventLogFormat)
BOOLEAN IsZeroBuffer (IN VOID *Buffer, IN UINTN BufferSize)
EFI_STATUS InstallTcg2ConfigForm (IN OUT TCG2_CONFIG_PRIVATE_DATA *PrivateData)
VOID UninstallTcg2ConfigForm (IN OUT TCG2_CONFIG_PRIVATE_DATA *PrivateData)

Variables

TPM_INSTANCE_ID mTpmInstanceId [TPM_DEVICE_MAX+1] = TPM_INSTANCE_ID_LIST
TCG2_CONFIG_PRIVATE_DATAmTcg2ConfigPrivateDate
TCG2_CONFIG_PRIVATE_DATA mTcg2ConfigPrivateDateTemplate
HII_VENDOR_DEVICE_PATH mTcg2HiiVendorDevicePath
UINT8 mCurrentPpRequest

Detailed Description

HII Config Access protocol implementation of TCG2 configuration module. NOTE: This module is only for reference only, each platform should have its own setup page.

Copyright (c) 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.


Define Documentation

#define EFI_TCG2_EVENT_LOG_FORMAT_ALL   (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)


Function Documentation

VOID AppendBufferWithTpmAlgHash ( IN UINT16 *  Buffer,
IN UINTN  BufferSize,
IN UINT32  TpmAlgHash 
)

Append Buffer With TpmAlgHash.

Parameters:
[in] Buffer Buffer to be appended.
[in] BufferSize Size of buffer.
[in] TpmAlgHash TpmAlgHash.

Referenced by InstallTcg2ConfigForm().

VOID FillBufferWithBootHashAlg ( IN UINT16 *  Buffer,
IN UINTN  BufferSize,
IN UINT32  BootHashAlg 
)

Fill Buffer With BootHashAlg.

Parameters:
[in] Buffer Buffer to be filled.
[in] BufferSize Size of buffer.
[in] BootHashAlg BootHashAlg.

Referenced by InstallTcg2ConfigForm().

VOID FillBufferWithTCG2EventLogFormat ( IN UINT16 *  Buffer,
IN UINTN  BufferSize,
IN UINT32  TCG2EventLogFormat 
)

Fill Buffer With TCG2EventLogFormat.

Parameters:
[in] Buffer Buffer to be filled.
[in] BufferSize Size of buffer.
[in] TCG2EventLogFormat TCG2EventLogFormat.

References EFI_TCG2_EVENT_LOG_FORMAT_ALL, EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2, and EFI_TCG2_EVENT_LOG_FORMAT_TCG_2.

Referenced by InstallTcg2ConfigForm().

EFI_STATUS InstallTcg2ConfigForm ( IN OUT TCG2_CONFIG_PRIVATE_DATA PrivateData  ) 

This function publish the TCG2 configuration Form for TPM device.

Parameters:
[in,out] PrivateData Points to TCG2 configuration private data.
Return values:
EFI_SUCCESS HII Form is installed for this network device.
EFI_OUT_OF_RESOURCES Not enough resource for HII Form installation.
Others Other errors as indicated.

References AppendBufferWithTpmAlgHash(), EFI_STATUS(), FillBufferWithBootHashAlg(), FillBufferWithTCG2EventLogFormat(), gTcg2ConfigFormSetGuid, IsZeroBuffer(), Tcg2ConfigBin, Tcg2ConfigDxeStrings, Tpm2GetCapabilityPcrs(), TPM_DEVICE_1_2, TPM_DEVICE_2_0_DTPM, TPM_DEVICE_NULL, and UINTN().

Referenced by Tcg2ConfigDriverEntryPoint().

BOOLEAN IsZeroBuffer ( IN VOID *  Buffer,
IN UINTN  BufferSize 
)

Check if buffer is all zero.

Parameters:
[in] Buffer Buffer to be checked.
[in] BufferSize Size of buffer to be checked.
Return values:
TRUE Buffer is all zero.
FALSE Buffer is not all zero.

References TRUE, and UINTN().

Referenced by DriverEntry(), InstallTcg2ConfigForm(), and SetTpm2HashMask().

EFI_STATUS SaveTcg2PCRBanksRequest ( IN UINTN  PCRBankIndex,
IN BOOLEAN  Enable 
)

Save Tcg2 PCR Banks request request to variable space.

Parameters:
[in] PCRBankIndex PCR Bank Index.
[in] Enable Enable or disable this PCR Bank.
Return values:
EFI_SUCCESS The operation is finished successfully.
Others Other errors as indicated.

References EFI_STATUS(), TCG2_CONFIG_PRIVATE_DATA::PCRBanksDesired, Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction(), TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE, TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED, and TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS.

Referenced by Tcg2Callback().

EFI_STATUS SaveTcg2PpRequest ( IN UINT8  PpRequest  ) 

Save TPM request to variable space.

Parameters:
[in] PpRequest Physical Presence request command.
Return values:
EFI_SUCCESS The operation is finished successfully.
Others Other errors as indicated.

References EFI_STATUS(), Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction(), TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE, TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED, and TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS.

Referenced by Tcg2Callback().

EFI_STATUS SaveTcg2PpRequestParameter ( IN UINT32  PpRequestParameter  ) 

Save TPM request to variable space.

Parameters:
[in] PpRequestParameter Physical Presence request parameter.
Return values:
EFI_SUCCESS The operation is finished successfully.
Others Other errors as indicated.

References EFI_STATUS(), Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction(), TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE, TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED, and TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS.

Referenced by Tcg2Callback().

EFI_STATUS EFIAPI Tcg2Callback ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *  This,
IN EFI_BROWSER_ACTION  Action,
IN EFI_QUESTION_ID  QuestionId,
IN UINT8  Type,
IN EFI_IFR_TYPE_VALUE *  Value,
OUT EFI_BROWSER_ACTION_REQUEST *  ActionRequest 
)

This function processes the results of changes in configuration.

Parameters:
[in] This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] Action Specifies the type of action taken by the browser.
[in] QuestionId A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in] Type The type of value for the question.
[in] Value A pointer to the data being sent to the original exporting driver.
[out] ActionRequest On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS The callback successfully handled the action.
EFI_OUT_OF_RESOURCES Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR The variable could not be saved.
EFI_UNSUPPORTED The specified Action is not supported by the callback.

References KEY_TPM2_OPERATION, KEY_TPM2_OPERATION_PARAMETER, KEY_TPM2_PCR_BANKS_REQUEST_0, KEY_TPM2_PCR_BANKS_REQUEST_4, KEY_TPM_DEVICE, SaveTcg2PCRBanksRequest(), SaveTcg2PpRequest(), and SaveTcg2PpRequestParameter().

EFI_STATUS EFIAPI Tcg2ExtractConfig ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *  This,
IN CONST EFI_STRING  Request,
OUT EFI_STRING *  Progress,
OUT EFI_STRING *  Results 
)

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
[in] This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] Request A null-terminated Unicode string in <ConfigRequest> format.
[out] Progress On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
[out] Results A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES Not enough memory to store the results.
EFI_INVALID_PARAMETER Request is illegal syntax, or unknown name.
EFI_NOT_FOUND Routing data doesn't match any storage in this driver.

EFI_STATUS EFIAPI Tcg2RouteConfig ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *  This,
IN CONST EFI_STRING  Configuration,
OUT EFI_STRING *  Progress 
)

This function processes the results of changes in configuration.

Parameters:
[in] This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] Configuration A null-terminated Unicode string in <ConfigResp> format.
[out] Progress A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS The Results is processed successfully.
EFI_INVALID_PARAMETER Configuration is NULL.
EFI_NOT_FOUND Routing data doesn't match any storage in this driver.

VOID UninstallTcg2ConfigForm ( IN OUT TCG2_CONFIG_PRIVATE_DATA PrivateData  ) 

This function removes TCG2 configuration Form.

Parameters:
[in,out] PrivateData Points to TCG2 configuration private data.

Referenced by Tcg2ConfigDriverEntryPoint(), and Tcg2ConfigDriverUnload().


Variable Documentation

Initial value:

 {
  {
    {
      HARDWARE_DEVICE_PATH,
      HW_VENDOR_DP,
      {
        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
      }
    },
    TCG2_CONFIG_FORM_SET_GUID
  },
  {
    END_DEVICE_PATH_TYPE,
    END_ENTIRE_DEVICE_PATH_SUBTYPE,
    { 
      (UINT8) (END_DEVICE_PATH_LENGTH),
      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
    }
  }
}

TPM_INSTANCE_ID mTpmInstanceId[TPM_DEVICE_MAX+1] = TPM_INSTANCE_ID_LIST


Generated on Thu Sep 24 23:44:24 2015 for SecurityPkg[ALL] by  doxygen 1.5.7.1