SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresenceLib.c File Reference


Functions

UINT32 EFIAPI Tcg2PhysicalPresenceLibReturnOperationResponseToOsFunction (OUT UINT32 *MostRecentRequest, OUT UINT32 *Response)
UINT32 EFIAPI Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction (IN UINT32 OperationRequest, IN UINT32 RequestParameter)
UINT32 EFIAPI Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction (IN UINT32 OperationRequest)
EFI_STATUS EFIAPI Tcg2PhysicalPresenceLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_SMM_VARIABLE_PROTOCOL * mTcg2PpSmmVariable

Detailed Description

Handle TPM 2.0 physical presence requests from OS.

This library will handle TPM 2.0 physical presence request from OS.

Caution: This module requires additional review when modified. This driver will have external input - variable. This external input must be validated carefully to avoid security issue.

Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction() and Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction() will receive untrusted input and do validation.

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.


Function Documentation

EFI_STATUS EFIAPI Tcg2PhysicalPresenceLibConstructor ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE *  SystemTable 
)

The constructor function register UNI strings into imageHandle.

It will ASSERT() if that operation fails and it will always return EFI_SUCCESS.

Parameters:
ImageHandle The firmware allocated handle for the EFI image.
SystemTable A pointer to the EFI System Table.
Return values:
EFI_SUCCESS The constructor successfully added string package.
Other value The constructor can't add string package.

References EFI_STATUS(), and mTcg2PpSmmVariable.

UINT32 EFIAPI Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction ( IN UINT32  OperationRequest  ) 

The handler for TPM physical presence function: Get User Confirmation Status for Operation.

This API should be invoked in OS runtime phase to interface with ACPI method.

Caution: This function may receive untrusted input.

Parameters:
[in] OperationRequest TPM physical presence operation request.
Returns:
Return Code for Get User Confirmation Status for Operation.

References BOOLEAN(), EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, mTcg2PpSmmVariable, EFI_TCG2_PHYSICAL_PRESENCE_FLAGS::PPFlags, TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_EPS, TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_PCRS, TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CLEAR, TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE, TCG2_PHYSICAL_PRESENCE_VARIABLE, Tcg2PpVendorLibGetUserConfirmationStatusFunction(), TCG_PP_GET_USER_CONFIRMATION_ALLOWED_AND_PPUSER_NOT_REQUIRED, TCG_PP_GET_USER_CONFIRMATION_ALLOWED_AND_PPUSER_REQUIRED, TCG_PP_GET_USER_CONFIRMATION_BLOCKED_BY_BIOS_CONFIGURATION, TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED, TRUE, and UINTN().

Referenced by PhysicalPresenceCallback().

UINT32 EFIAPI Tcg2PhysicalPresenceLibReturnOperationResponseToOsFunction ( OUT UINT32 *  MostRecentRequest,
OUT UINT32 *  Response 
)

The handler for TPM physical presence function: Return TPM Operation Response to OS Environment.

This API should be invoked in OS runtime phase to interface with ACPI method.

Parameters:
[out] MostRecentRequest Most recent operation request.
[out] Response Response to the most recent operation request.
Returns:
Return Code for Return TPM Operation Response to OS Environment.

References EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, EFI_TCG2_PHYSICAL_PRESENCE::LastPPRequest, mTcg2PpSmmVariable, EFI_TCG2_PHYSICAL_PRESENCE::PPResponse, TCG2_PHYSICAL_PRESENCE_VARIABLE, and UINTN().

Referenced by PhysicalPresenceCallback(), and Tcg2GetResultOfSetActivePcrBanks().

UINT32 EFIAPI Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction ( IN UINT32  OperationRequest,
IN UINT32  RequestParameter 
)

The handler for TPM physical presence function: Submit TPM Operation Request to Pre-OS Environment and Submit TPM Operation Request to Pre-OS Environment 2.

This API should be invoked in OS runtime phase to interface with ACPI method.

Caution: This function may receive untrusted input.

Parameters:
[in] OperationRequest TPM physical presence operation request.
[in] RequestParameter TPM physical presence operation request parameter.
Returns:
Return Code for Submit TPM Operation Request to Pre-OS Environment and Submit TPM Operation Request to Pre-OS Environment 2.

References EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, mTcg2PpSmmVariable, EFI_TCG2_PHYSICAL_PRESENCE_FLAGS::PPFlags, EFI_TCG2_PHYSICAL_PRESENCE::PPRequest, EFI_TCG2_PHYSICAL_PRESENCE::PPRequestParameter, TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT, TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE, TCG2_PHYSICAL_PRESENCE_VARIABLE, Tcg2PpVendorLibSubmitRequestToPreOSFunction(), TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE, TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED, TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS, and UINTN().

Referenced by PhysicalPresenceCallback(), SaveTcg2PCRBanksRequest(), SaveTcg2PpRequest(), SaveTcg2PpRequestParameter(), and Tcg2SetActivePCRBanks().


Variable Documentation

EFI_SMM_VARIABLE_PROTOCOL* mTcg2PpSmmVariable


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