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