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