• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# crypto_digest.h
2
3<!--Kit: Crypto Architecture Kit-->
4<!--Subsystem: Security-->
5<!--Owner: @zxz--3-->
6<!--Designer: @lanming-->
7<!--Tester: @PAFT-->
8<!--Adviser: @zengyawen-->
9
10## 概述
11
12定义摘要算法API。
13
14**引用文件:** <CryptoArchitectureKit/crypto_digest.h>
15
16**库:** libohcrypto.so
17
18**系统能力:** SystemCapability.Security.CryptoFramework
19
20**起始版本:** 12
21
22**相关模块:** [CryptoDigestApi](capi-cryptodigestapi.md)
23
24## 汇总
25
26### 结构体
27
28| 名称 | typedef关键字 | 描述 |
29| -- | -- | -- |
30| [OH_CryptoDigest](capi-cryptodigestapi-oh-cryptodigest.md) | OH_CryptoDigest | 定义摘要结构体。 |
31
32### 函数
33
34| 名称 | 描述 |
35| -- | -- |
36| [OH_Crypto_ErrCode OH_CryptoDigest_Create(const char *algoName, OH_CryptoDigest **ctx)](#oh_cryptodigest_create) | 根据给定的算法名称创建一个摘要实例。 |
37| [OH_Crypto_ErrCode OH_CryptoDigest_Update(OH_CryptoDigest *ctx, Crypto_DataBlob *in)](#oh_cryptodigest_update) | 更新摘要数据。 |
38| [OH_Crypto_ErrCode OH_CryptoDigest_Final(OH_CryptoDigest *ctx, Crypto_DataBlob *out)](#oh_cryptodigest_final) | 完成摘要计算。 |
39| [uint32_t OH_CryptoDigest_GetLength(OH_CryptoDigest *ctx)](#oh_cryptodigest_getlength) | 获取摘要长度。 |
40| [const char *OH_CryptoDigest_GetAlgoName(OH_CryptoDigest *ctx)](#oh_cryptodigest_getalgoname) | 获取摘要算法名称。 |
41| [void OH_DigestCrypto_Destroy(OH_CryptoDigest *ctx)](#oh_digestcrypto_destroy) | 销毁摘要实例。 |
42
43## 函数说明
44
45### OH_CryptoDigest_Create()
46
47```
48OH_Crypto_ErrCode OH_CryptoDigest_Create(const char *algoName, OH_CryptoDigest **ctx)
49```
50
51**描述**
52
53根据给定的算法名称创建一个摘要实例。
54
55**起始版本:** 12
56
57
58**参数:**
59
60| 参数项 | 描述 |
61| -- | -- |
62| const char *algoName | 用于生成摘要实例的算法名称。<br> 例如"SHA256"。 |
63| [OH_CryptoDigest](capi-cryptodigestapi-oh-cryptodigest.md) **ctx | 指向摘要实例的指针。 |
64
65**返回:**
66
67| 类型 | 说明 |
68| -- | -- |
69| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br>         CRYPTO_INVALID_PARAMS:参数无效。<br>         CRYPTO_NOT_SUPPORTED:操作不支持。<br>         CRYPTO_MEMORY_ERROR:内存错误。<br>         CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
70
71### OH_CryptoDigest_Update()
72
73```
74OH_Crypto_ErrCode OH_CryptoDigest_Update(OH_CryptoDigest *ctx, Crypto_DataBlob *in)
75```
76
77**描述**
78
79更新摘要数据。
80
81**起始版本:** 12
82
83
84**参数:**
85
86| 参数项 | 描述 |
87| -- | -- |
88| [OH_CryptoDigest](capi-cryptodigestapi-oh-cryptodigest.md) *ctx | 指向摘要实例。 |
89| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *in | 传入的消息。 |
90
91**返回:**
92
93| 类型 | 说明 |
94| -- | -- |
95| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br>         CRYPTO_INVALID_PARAMS:参数无效。<br>         CRYPTO_NOT_SUPPORTED:操作不支持。<br>         CRYPTO_MEMORY_ERROR:内存错误。<br>         CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
96
97**参考:**
98
99[OH_CryptoDigest_Final](capi-crypto-digest-h.md#oh_cryptodigest_final)
100
101
102### OH_CryptoDigest_Final()
103
104```
105OH_Crypto_ErrCode OH_CryptoDigest_Final(OH_CryptoDigest *ctx, Crypto_DataBlob *out)
106```
107
108**描述**
109
110完成摘要计算。
111
112**起始版本:** 12
113
114
115**参数:**
116
117| 参数项 | 描述 |
118| -- | -- |
119| [OH_CryptoDigest](capi-cryptodigestapi-oh-cryptodigest.md) *ctx | 指向摘要实例。 |
120| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *out | 返回的Md的计算结果。 |
121
122**返回:**
123
124| 类型 | 说明 |
125| -- | -- |
126| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br>         CRYPTO_INVALID_PARAMS:参数无效。<br>         CRYPTO_NOT_SUPPORTED:操作不支持。<br>         CRYPTO_MEMORY_ERROR:内存错误。<br>         CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
127
128**参考:**
129
130[OH_CryptoDigest_Update](capi-crypto-digest-h.md#oh_cryptodigest_update)
131
132
133### OH_CryptoDigest_GetLength()
134
135```
136uint32_t OH_CryptoDigest_GetLength(OH_CryptoDigest *ctx)
137```
138
139**描述**
140
141获取摘要长度。
142
143**起始版本:** 12
144
145
146**参数:**
147
148| 参数项 | 描述 |
149| -- | -- |
150| [OH_CryptoDigest](capi-cryptodigestapi-oh-cryptodigest.md) *ctx | 指向摘要实例。 |
151
152**返回:**
153
154| 类型 | 说明 |
155| -- | -- |
156| uint32_t | 返回摘要长度。<br>        如果输入参数ctx为NULL,则返回401,其他情况下返回0。 |
157
158### OH_CryptoDigest_GetAlgoName()
159
160```
161const char *OH_CryptoDigest_GetAlgoName(OH_CryptoDigest *ctx)
162```
163
164**描述**
165
166获取摘要算法名称。
167
168**起始版本:** 12
169
170
171**参数:**
172
173| 参数项 | 描述 |
174| -- | -- |
175| [OH_CryptoDigest](capi-cryptodigestapi-oh-cryptodigest.md) *ctx | 指向摘要实例。 |
176
177**返回:**
178
179| 类型 | 说明 |
180| -- | -- |
181| const char * | 返回摘要算法名称。 |
182
183### OH_DigestCrypto_Destroy()
184
185```
186void OH_DigestCrypto_Destroy(OH_CryptoDigest *ctx)
187```
188
189**描述**
190
191销毁摘要实例。
192
193**起始版本:** 12
194
195
196**参数:**
197
198| 参数项 | 描述 |
199| -- | -- |
200| [OH_CryptoDigest](capi-cryptodigestapi-oh-cryptodigest.md) *ctx | 指向摘要实例。 |
201
202
203