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