| /** @file | |
| Unified Hash API Defines | |
| This API when called will calculate the Hash using the | |
| hashing algorithm specified by PcdHashApiLibPolicy. | |
| Copyright (c) 2020, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __HASH_API_LIB_H_ | |
| #define __HASH_API_LIB_H_ | |
| typedef VOID *HASH_API_CONTEXT; | |
| /** | |
| Retrieves the size, in bytes, of the context buffer required for hash operations. | |
| @return The size, in bytes, of the context buffer required for hash operations. | |
| **/ | |
| UINTN | |
| EFIAPI | |
| HashApiGetContextSize ( | |
| VOID | |
| ); | |
| /** | |
| Init hash sequence. | |
| @param[out] HashContext Hash context. | |
| @retval TRUE Hash start and HashHandle returned. | |
| @retval FALSE Hash Init unsuccessful. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HashApiInit ( | |
| OUT HASH_API_CONTEXT HashContext | |
| ); | |
| /** | |
| Makes a copy of an existing hash context. | |
| @param[in] HashContext Hash context. | |
| @param[out] NewHashContext New copy of hash context. | |
| @retval TRUE Hash context copy succeeded. | |
| @retval FALSE Hash context copy failed. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HashApiDuplicate ( | |
| IN HASH_API_CONTEXT HashContext, | |
| OUT HASH_API_CONTEXT NewHashContext | |
| ); | |
| /** | |
| Update hash data. | |
| @param[in] HashContext Hash context. | |
| @param[in] DataToHash Data to be hashed. | |
| @param[in] DataToHashLen Data size. | |
| @retval TRUE Hash updated. | |
| @retval FALSE Hash updated unsuccessful. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HashApiUpdate ( | |
| IN HASH_API_CONTEXT HashContext, | |
| IN VOID *DataToHash, | |
| IN UINTN DataToHashLen | |
| ); | |
| /** | |
| Hash complete. | |
| @param[in] HashContext Hash context. | |
| @param[out] Digest Hash Digest. | |
| @retval TRUE Hash complete and Digest is returned. | |
| @retval FALSE Hash complete unsuccessful. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HashApiFinal ( | |
| IN HASH_API_CONTEXT HashContext, | |
| OUT UINT8 *Digest | |
| ); | |
| /** | |
| Computes hash message digest of a input data buffer. | |
| @param[in] DataToHash Data to be hashed. | |
| @param[in] DataToHashLen Data size. | |
| @param[out] Digest Hash Digest. | |
| @retval TRUE Hash digest computation succeeded. | |
| @retval FALSE Hash digest computation failed. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HashApiHashAll ( | |
| IN CONST VOID *DataToHash, | |
| IN UINTN DataToHashLen, | |
| OUT UINT8 *Digest | |
| ); | |
| #endif |