]> git.proxmox.com Git - mirror_edk2.git/blame - CryptoPkg/Include/Library/HashApiLib.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / CryptoPkg / Include / Library / HashApiLib.h
CommitLineData
3feea54e
AS
1/** @file\r
2 Unified Hash API Defines\r
3\r
4 This API when called will calculate the Hash using the\r
5 hashing algorithm specified by PcdHashApiLibPolicy.\r
6\r
7 Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
8 SPDX-License-Identifier: BSD-2-Clause-Patent\r
9\r
10**/\r
11\r
c70bdf9d
AS
12#ifndef __HASH_API_LIB_H_\r
13#define __HASH_API_LIB_H_\r
3feea54e 14\r
7c342378 15typedef VOID *HASH_API_CONTEXT;\r
3feea54e 16\r
3feea54e
AS
17/**\r
18 Retrieves the size, in bytes, of the context buffer required for hash operations.\r
19\r
20 @return The size, in bytes, of the context buffer required for hash operations.\r
21**/\r
22UINTN\r
23EFIAPI\r
24HashApiGetContextSize (\r
25 VOID\r
26 );\r
27\r
28/**\r
29 Init hash sequence.\r
30\r
31 @param[out] HashContext Hash context.\r
32\r
33 @retval TRUE Hash start and HashHandle returned.\r
34 @retval FALSE Hash Init unsuccessful.\r
35**/\r
36BOOLEAN\r
37EFIAPI\r
38HashApiInit (\r
39 OUT HASH_API_CONTEXT HashContext\r
40 );\r
41\r
42/**\r
43 Makes a copy of an existing hash context.\r
44\r
45 @param[in] HashContext Hash context.\r
46 @param[out] NewHashContext New copy of hash context.\r
47\r
48 @retval TRUE Hash context copy succeeded.\r
49 @retval FALSE Hash context copy failed.\r
50**/\r
51BOOLEAN\r
52EFIAPI\r
53HashApiDuplicate (\r
54 IN HASH_API_CONTEXT HashContext,\r
55 OUT HASH_API_CONTEXT NewHashContext\r
56 );\r
57\r
58/**\r
59 Update hash data.\r
60\r
61 @param[in] HashContext Hash context.\r
62 @param[in] DataToHash Data to be hashed.\r
63 @param[in] DataToHashLen Data size.\r
64\r
65 @retval TRUE Hash updated.\r
66 @retval FALSE Hash updated unsuccessful.\r
67**/\r
68BOOLEAN\r
69EFIAPI\r
70HashApiUpdate (\r
71 IN HASH_API_CONTEXT HashContext,\r
72 IN VOID *DataToHash,\r
73 IN UINTN DataToHashLen\r
74 );\r
75\r
76/**\r
77 Hash complete.\r
78\r
79 @param[in] HashContext Hash context.\r
80 @param[out] Digest Hash Digest.\r
81\r
82 @retval TRUE Hash complete and Digest is returned.\r
83 @retval FALSE Hash complete unsuccessful.\r
84**/\r
85BOOLEAN\r
86EFIAPI\r
87HashApiFinal (\r
88 IN HASH_API_CONTEXT HashContext,\r
89 OUT UINT8 *Digest\r
90 );\r
91\r
92/**\r
93 Computes hash message digest of a input data buffer.\r
94\r
95 @param[in] DataToHash Data to be hashed.\r
96 @param[in] DataToHashLen Data size.\r
97 @param[out] Digest Hash Digest.\r
98\r
99 @retval TRUE Hash digest computation succeeded.\r
100 @retval FALSE Hash digest computation failed.\r
101**/\r
102BOOLEAN\r
103EFIAPI\r
104HashApiHashAll (\r
105 IN CONST VOID *DataToHash,\r
106 IN UINTN DataToHashLen,\r
107 OUT UINT8 *Digest\r
108 );\r
109\r
110#endif\r