SecurityPkg/Library/HashLibTpm2/HashLibTpm2.c File Reference


Functions

TPM_ALG_ID Tpm2GetAlgoFromHashMask (VOID)
EFI_STATUS EFIAPI HashStart (OUT HASH_HANDLE *HashHandle)
EFI_STATUS EFIAPI HashUpdate (IN HASH_HANDLE HashHandle, IN VOID *DataToHash, IN UINTN DataToHashLen)
EFI_STATUS EFIAPI HashCompleteAndExtend (IN HASH_HANDLE HashHandle, IN TPMI_DH_PCR PcrIndex, IN VOID *DataToHash, IN UINTN DataToHashLen, OUT TPML_DIGEST_VALUES *DigestList)
EFI_STATUS EFIAPI HashAndExtend (IN TPMI_DH_PCR PcrIndex, IN VOID *DataToHash, IN UINTN DataToHashLen, OUT TPML_DIGEST_VALUES *DigestList)
EFI_STATUS EFIAPI RegisterHashInterfaceLib (IN HASH_INTERFACE *HashInterface)

Variables

TPM2_HASH_MASK mTpm2HashMask []

Detailed Description

Ihis library uses TPM2 device to calculation hash.

Copyright (c) 2013 - 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 HashAndExtend ( IN TPMI_DH_PCR  PcrIndex,
IN VOID *  DataToHash,
IN UINTN  DataToHashLen,
OUT TPML_DIGEST_VALUES *  DigestList 
)

Hash data and extend to PCR.

Parameters:
PcrIndex PCR to be extended.
DataToHash Data to be hashed.
DataToHashLen Data size.
DigestList Digest list.
Return values:
EFI_SUCCESS Hash data and DigestList is returned.

References EFI_STATUS(), Tpm2EventSequenceComplete(), Tpm2GetAlgoFromHashMask(), Tpm2HashSequenceStart(), Tpm2PcrEvent(), Tpm2PcrExtend(), Tpm2SequenceComplete(), Tpm2SequenceUpdate(), and UINTN().

Referenced by HashLogExtendEvent(), and TcgDxeHashLogExtendEvent().

EFI_STATUS EFIAPI HashCompleteAndExtend ( IN HASH_HANDLE  HashHandle,
IN TPMI_DH_PCR  PcrIndex,
IN VOID *  DataToHash,
IN UINTN  DataToHashLen,
OUT TPML_DIGEST_VALUES *  DigestList 
)

Hash sequence complete and extend to PCR.

Parameters:
HashHandle Hash handle.
PcrIndex PCR to be extended.
DataToHash Data to be hashed.
DataToHashLen Data size.
DigestList Digest list.
Return values:
EFI_SUCCESS Hash sequence complete and DigestList is returned.

References EFI_STATUS(), Tpm2EventSequenceComplete(), Tpm2GetAlgoFromHashMask(), Tpm2PcrExtend(), Tpm2SequenceComplete(), Tpm2SequenceUpdate(), and UINTN().

Referenced by HashAndExtend(), and MeasurePeImageAndExtend().

EFI_STATUS EFIAPI HashStart ( OUT HASH_HANDLE HashHandle  ) 

Start hash sequence.

Parameters:
HashHandle Hash handle.
Return values:
EFI_SUCCESS Hash sequence start and HandleHandle returned.
EFI_OUT_OF_RESOURCES No enough resource to start hash.

References EFI_STATUS(), Tpm2GetAlgoFromHashMask(), and Tpm2HashSequenceStart().

Referenced by HashAndExtend(), and MeasurePeImageAndExtend().

EFI_STATUS EFIAPI HashUpdate ( IN HASH_HANDLE  HashHandle,
IN VOID *  DataToHash,
IN UINTN  DataToHashLen 
)

Update hash sequence data.

Parameters:
HashHandle Hash handle.
DataToHash Data to be hashed.
DataToHashLen Data size.
Return values:
EFI_SUCCESS Hash sequence updated.

References EFI_STATUS(), Tpm2SequenceUpdate(), and UINTN().

Referenced by HashAndExtend(), and MeasurePeImageAndExtend().

EFI_STATUS EFIAPI RegisterHashInterfaceLib ( IN HASH_INTERFACE HashInterface  ) 

This service register Hash.

Parameters:
HashInterface Hash interface
Return values:
EFI_SUCCESS This hash interface is registered successfully.
EFI_UNSUPPORTED System does not support register this interface.
EFI_ALREADY_STARTED System already register this interface.

Referenced by HashInstanceLibSha1Constructor(), and HashInstanceLibSha256Constructor().

TPM_ALG_ID Tpm2GetAlgoFromHashMask ( VOID   ) 

The function get algorith from hash mask info.

Returns:
Hash algorithm

References mTpm2HashMask, and UINTN().

Referenced by HashAndExtend(), HashCompleteAndExtend(), and HashStart().


Variable Documentation

TPM2_HASH_MASK mTpm2HashMask[]

Initial value:

 {
  {TPM_ALG_SHA1,         HASH_ALG_SHA1},
  {TPM_ALG_SHA256,       HASH_ALG_SHA256},
  {TPM_ALG_SHA384,       HASH_ALG_SHA384},
  {TPM_ALG_SHA512,       HASH_ALG_SHA512},
}


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