SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c File Reference


Functions

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

HASH_INTERFACE mHashInterface [HASH_COUNT] = {{{0}, NULL, NULL, NULL}}
UINTN mHashInterfaceCount = 0

Detailed Description

Ihis library is BaseCrypto router. It will redirect hash request to each individual hash handler registerd, such as SHA1, SHA256. Platform can use PcdTpm2HashMask to mask some hash engines.

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(), HashCompleteAndExtend(), HashStart(), HashUpdate(), and mHashInterfaceCount.

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(), HASH_INTERFACE::HashFinal, HASH_INTERFACE::HashUpdate, mHashInterfaceCount, Tpm2GetHashMaskFromAlgo(), Tpm2PcrExtend(), Tpm2SetHashToDigestList(), and UINTN().

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 HASH_INTERFACE::HashInit, mHashInterfaceCount, Tpm2GetHashMaskFromAlgo(), and UINTN().

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 HASH_INTERFACE::HashUpdate, mHashInterfaceCount, Tpm2GetHashMaskFromAlgo(), and UINTN().

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.

References HASH_INTERFACE::HashGuid, mHashInterfaceCount, Tpm2GetHashMaskFromAlgo(), and UINTN().


Variable Documentation

HASH_INTERFACE mHashInterface[HASH_COUNT] = {{{0}, NULL, NULL, NULL}}


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