// /** @file
// Provides hash service by registered hash handler
//
// This library is BaseCrypto router. It will redirect hash request to each individual
// hash handler registered, such as SHA1, SHA256. Platform can use PcdTpm2HashMask to
// mask some hash engines.
//
// Copyright (c) 2013 - 2016, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "Provides hash service by registered hash handler"

#string STR_MODULE_DESCRIPTION          #language en-US "This library is BaseCrypto router. It will redirect hash request to each individual hash handler registered, such as SHA1, SHA256. Platform can use PcdTpm2HashMask to mask some hash engines."

