1e41f4b71Sopenharmony_ci# CryptoDigestApi
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## 概述
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci为应用提供摘要算法的相关接口。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**起始版本:** 12
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## 汇总
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci### 文件
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci| 名称 | 描述 | 
17e41f4b71Sopenharmony_ci| -------- | -------- |
18e41f4b71Sopenharmony_ci| [crypto_digest.h](crypto__digest_8h.md) | 定义摘要算法API。 | 
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci### 类型定义
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| 名称 | 描述 | 
24e41f4b71Sopenharmony_ci| -------- | -------- |
25e41f4b71Sopenharmony_ci| typedef struct [OH_CryptoDigest](#oh_cryptodigest) [OH_CryptoDigest](#oh_cryptodigest) | 定义摘要结构体。 | 
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci### 函数
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci| 名称 | 描述 | 
31e41f4b71Sopenharmony_ci| -------- | -------- |
32e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoDigest_Create](#oh_cryptodigest_create) (const char \*algoName, [OH_CryptoDigest](#oh_cryptodigest) \*\*ctx) | 根据给定的算法名称创建一个摘要实例。 | 
33e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoDigest_Update](#oh_cryptodigest_update) ([OH_CryptoDigest](#oh_cryptodigest) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*in) | 传入消息进行摘要更新计算。 | 
34e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoDigest_Final](#oh_cryptodigest_final) ([OH_CryptoDigest](#oh_cryptodigest) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*out) | 计算最终摘要。 | 
35e41f4b71Sopenharmony_ci| uint32_t [OH_CryptoDigest_GetLength](#oh_cryptodigest_getlength) ([OH_CryptoDigest](#oh_cryptodigest) \*ctx) | 获取摘要长度。 | 
36e41f4b71Sopenharmony_ci| const char \* [OH_CryptoDigest_GetAlgoName](#oh_cryptodigest_getalgoname) ([OH_CryptoDigest](#oh_cryptodigest) \*ctx) | 获取摘要算法。 | 
37e41f4b71Sopenharmony_ci| void [OH_DigestCrypto_Destroy](#oh_digestcrypto_destroy) ([OH_CryptoDigest](#oh_cryptodigest) \*ctx) | 销毁摘要实例。 | 
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci## 类型定义说明
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci### OH_CryptoDigest
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci```
46e41f4b71Sopenharmony_citypedef struct OH_CryptoDigestOH_CryptoDigest
47e41f4b71Sopenharmony_ci```
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci**描述**
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci定义摘要结构体。
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci**起始版本:** 12
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci## 函数说明
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci### OH_CryptoDigest_Create()
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci```
62e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoDigest_Create (const char *algoName, OH_CryptoDigest **ctx )
63e41f4b71Sopenharmony_ci```
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**描述**
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci根据给定的算法名称创建一个摘要实例。
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci**起始版本:** 12
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci**参数:**
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci| 名称 | 描述 | 
74e41f4b71Sopenharmony_ci| -------- | -------- |
75e41f4b71Sopenharmony_ci| algoName | 用于生成摘要实例的算法名称。例如:"SHA256" | 
76e41f4b71Sopenharmony_ci| ctx | 指向摘要实例的指针。 | 
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci**返回:**
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci0 - 成功。
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci401 - 参数无效。
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci801 - 操作不支持。
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci17620001 - 内存错误。
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci17630001 - 调用三方算法库API出错。
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci### OH_CryptoDigest_Final()
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci```
96e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoDigest_Final (OH_CryptoDigest *ctx, Crypto_DataBlob *out )
97e41f4b71Sopenharmony_ci```
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci**描述**
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci计算最终摘要。
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci**起始版本:** 12
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci**参数:**
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci| 名称 | 描述 | 
108e41f4b71Sopenharmony_ci| -------- | -------- |
109e41f4b71Sopenharmony_ci| ctx | 指向摘要实例。 | 
110e41f4b71Sopenharmony_ci| out | 返回的Md的计算结果。 | 
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci**返回:**
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci0 - 成功。
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci401 - 参数无效。
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci801 - 操作不支持。
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci17620001 - 内存错误。
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci17630001 - 调用三方算法库API出错。
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**参见:**
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci[OH_CryptoDigest_Update](#oh_cryptodigest_update)
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci### OH_CryptoDigest_GetAlgoName()
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci```
134e41f4b71Sopenharmony_ciconst char* OH_CryptoDigest_GetAlgoName (OH_CryptoDigest *ctx)
135e41f4b71Sopenharmony_ci```
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ci**描述**
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci获取摘要算法。
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci**起始版本:** 12
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci**参数:**
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci| 名称 | 描述 | 
146e41f4b71Sopenharmony_ci| -------- | -------- |
147e41f4b71Sopenharmony_ci| ctx | 指向摘要实例。 | 
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**返回:**
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci摘要算法名。
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci
154e41f4b71Sopenharmony_ci### OH_CryptoDigest_GetLength()
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci```
157e41f4b71Sopenharmony_ciuint32_t OH_CryptoDigest_GetLength (OH_CryptoDigest *ctx)
158e41f4b71Sopenharmony_ci```
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci**描述**
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci获取摘要长度。
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci**起始版本:** 12
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci**参数:**
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci| 名称 | 描述 | 
169e41f4b71Sopenharmony_ci| -------- | -------- |
170e41f4b71Sopenharmony_ci| ctx | 指向摘要实例。 | 
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci**返回:**
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ci0 - 成功。
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci401 - 参数无效。
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci801 - 操作不支持。
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci17620001 - 内存错误。
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci17630001 - 调用三方算法库API出错。
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci### OH_CryptoDigest_Update()
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci```
190e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoDigest_Update (OH_CryptoDigest *ctx, Crypto_DataBlob *in )
191e41f4b71Sopenharmony_ci```
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci**描述**
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci传入消息进行摘要更新计算。
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_ci**起始版本:** 12
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci**参数:**
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci| 名称 | 描述 | 
202e41f4b71Sopenharmony_ci| -------- | -------- |
203e41f4b71Sopenharmony_ci| ctx | 指向摘要实例。 | 
204e41f4b71Sopenharmony_ci| in | 传入的消息。 | 
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci**返回:**
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci0 - 成功。
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ci401 - 参数无效。
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci801 - 操作不支持。
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci17620001 - 内存错误。
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci17630001 - 调用三方算法库API出错。
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_ci**参见:**
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci[OH_CryptoDigest_Final](#oh_cryptodigest_final)
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci### OH_DigestCrypto_Destroy()
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci```
228e41f4b71Sopenharmony_civoid OH_DigestCrypto_Destroy (OH_CryptoDigest *ctx)
229e41f4b71Sopenharmony_ci```
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci**描述**
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci销毁摘要实例。
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci**起始版本:** 12
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci**参数:**
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci| 名称 | 描述 | 
240e41f4b71Sopenharmony_ci| -------- | -------- |
241e41f4b71Sopenharmony_ci| ctx | 指向摘要实例。 | 
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_ci**返回:**
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ci0 - 成功。
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci401 - 参数无效。
250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci801 - 操作不支持。
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ci17620001 - 内存错误。
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci17630001 - 调用三方算法库API出错。
256