1# oh_rdb_crypto_param.h 2<!--Kit: ArkData--> 3<!--Subsystem: DistributedDataManager--> 4<!--Owner: @baijidong--> 5<!--Designer: @widecode; @htt1997--> 6<!--Tester: @yippo; @logic42--> 7<!--Adviser: @ge-yafang--> 8 9## 概述 10 11提供与关系型数据库加密参数相关的函数和枚举。 12 13**引用文件:** <database/rdb/oh_rdb_crypto_param.h> 14 15**库:** libnative_rdb_ndk.z.so 16 17**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 18 19**起始版本:** 20 20 21**相关模块:** [RDB](capi-rdb.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| ------------------------------------------------ | ------------------ | ------------------------------------ | 29| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) | OH_Rdb_CryptoParam | 指定打开加密数据库时使用的加密参数。 | 30 31### 枚举 32 33| 名称 | typedef关键字 | 描述 | 34| ----------------------------------------- | ------------------ | ---------------------------- | 35| [Rdb_EncryptionAlgo](#rdb_encryptionalgo) | Rdb_EncryptionAlgo | 数据库加密算法。 | 36| [Rdb_HmacAlgo](#rdb_hmacalgo) | Rdb_HmacAlgo | 打开数据库时支持的HMAC算法。 | 37| [Rdb_KdfAlgo](#rdb_kdfalgo) | Rdb_KdfAlgo | 打开数据库时支持的KDF算法。 | 38 39### 函数 40 41| 名称 | 描述 | 42| ------------------------------------------------------------ | ------------------------------------------------------------ | 43| [OH_Rdb_CryptoParam *OH_Rdb_CreateCryptoParam(void)](#oh_rdb_createcryptoparam) | 创建一个[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例对象。 | 44| [int OH_Rdb_DestroyCryptoParam(OH_Rdb_CryptoParam *param)](#oh_rdb_destroycryptoparam) | 销毁一个[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例对象。 | 45| [int OH_Crypto_SetEncryptionKey(OH_Rdb_CryptoParam *param, const uint8_t *key, int32_t length)](#oh_crypto_setencryptionkey) | 设置[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)对象的密钥数据。 | 46| [int OH_Crypto_SetIteration(OH_Rdb_CryptoParam *param, int64_t iteration)](#oh_crypto_setiteration) | 设置打开加密数据库时使用的KDF算法迭代次数。 | 47| [int OH_Crypto_SetEncryptionAlgo(OH_Rdb_CryptoParam *param, int32_t algo)](#oh_crypto_setencryptionalgo) | 设置打开加密数据库时使用的加密算法。 | 48| [int OH_Crypto_SetHmacAlgo(OH_Rdb_CryptoParam *param, int32_t algo)](#oh_crypto_sethmacalgo) | 设置打开加密数据库时使用的HMAC算法。 | 49| [int OH_Crypto_SetKdfAlgo(OH_Rdb_CryptoParam *param, int32_t algo)](#oh_crypto_setkdfalgo) | 设置打开加密数据库时使用的KDF算法。 | 50| [int OH_Crypto_SetCryptoPageSize(OH_Rdb_CryptoParam *param, int64_t size)](#oh_crypto_setcryptopagesize) | 设置打开加密数据库时使用的页大小。 | 51 52## 枚举类型说明 53 54### Rdb_EncryptionAlgo 55 56``` 57enum Rdb_EncryptionAlgo 58``` 59 60**描述** 61 62数据库加密算法。 63 64**起始版本:** 20 65 66| 枚举项 | 描述 | 67| ------------------- | ----------------------------------- | 68| RDB_AES_256_GCM = 0 | 表示数据库使用RDB_AES_256_GCM加密。 | 69| RDB_AES_256_CBC | 表示数据库使用RDB_AES_256_CBC加密。 | 70 71### Rdb_HmacAlgo 72 73``` 74enum Rdb_HmacAlgo 75``` 76 77**描述** 78 79打开数据库时支持的HMAC算法。 80 81**起始版本:** 20 82 83| 枚举项 | 描述 | 84| ----------------- | --------------------- | 85| RDB_HMAC_SHA1 = 0 | RDB_HMAC_SHA1算法。 | 86| RDB_HMAC_SHA256 | RDB_HMAC_SHA256算法。 | 87| RDB_HMAC_SHA512 | RDB_HMAC_SHA512算法。 | 88 89### Rdb_KdfAlgo 90 91``` 92enum Rdb_KdfAlgo 93``` 94 95**描述** 96 97打开数据库时支持的KDF算法。 98 99**起始版本:** 20 100 101| 枚举项 | 描述 | 102| ---------------- | -------------------- | 103| RDB_KDF_SHA1 = 0 | RDB_KDF_SHA1算法。 | 104| RDB_KDF_SHA256 | RDB_KDF_SHA256算法。 | 105| RDB_KDF_SHA512 | RDB_KDF_SHA512算法。 | 106 107 108## 函数说明 109 110### OH_Rdb_CreateCryptoParam() 111 112``` 113OH_Rdb_CryptoParam *OH_Rdb_CreateCryptoParam(void) 114``` 115 116**描述** 117 118创建一个[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例对象。 119 120**起始版本:** 20 121 122**返回:** 123 124| 类型 | 说明 | 125| ------------------------------------------------ | ------------------------------------------------------------ | 126| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) | 成功时返回指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。<br>否则返回nullptr。使用完成后,必须通过[OH_Rdb_DestroyCryptoParam](capi-oh-rdb-crypto-param-h.md#oh_rdb_destroycryptoparam)接口释放内存。 | 127 128### OH_Rdb_DestroyCryptoParam() 129 130``` 131int OH_Rdb_DestroyCryptoParam(OH_Rdb_CryptoParam *param) 132``` 133 134**描述** 135 136销毁一个[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例对象。 137 138**起始版本:** 20 139 140 141**参数:** 142 143| 参数项 | 描述 | 144| ------------------------------------------------------- | ------------------------------------------------------------ | 145| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *param | 表示指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。 | 146 147**返回:** 148 149| 类型 | 说明 | 150| ---- | ------------------------------------------------------------ | 151| int | 返回执行结果。<br>如果执行成功,返回RDB_OK。<br>如果输入参数无效,返回RDB_E_INVALID_ARGS。 | 152 153### OH_Crypto_SetEncryptionKey() 154 155``` 156int OH_Crypto_SetEncryptionKey(OH_Rdb_CryptoParam *param, const uint8_t *key, int32_t length) 157``` 158 159**描述** 160 161设置[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)对象的密钥数据。 162 163**起始版本:** 20 164 165 166**参数:** 167 168| 参数项 | 描述 | 169| ------------------------------------------------------- | ------------------------------------------------------------ | 170| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *param | 表示指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。 | 171| const uint8_t *key | 表示指向数组数据的指针。 | 172| int32_t length | 表示密钥数组的大小。 | 173 174**返回:** 175 176| 类型 | 说明 | 177| ---- | ------------------------------------------------------------ | 178| int | 返回执行结果。<br>如果执行成功,返回RDB_OK。<br>如果输入参数无效,返回RDB_E_INVALID_ARGS。 | 179 180### OH_Crypto_SetIteration() 181 182``` 183int OH_Crypto_SetIteration(OH_Rdb_CryptoParam *param, int64_t iteration) 184``` 185 186**描述** 187 188设置打开加密数据库时使用的KDF算法迭代次数。 189 190**起始版本:** 20 191 192 193**参数:** 194 195| 参数项 | 描述 | 196| ------------------------------------------------------- | ------------------------------------------------------------ | 197| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *param | 表示指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。 | 198| int64_t iteration | 表示迭代次数。 | 199 200**返回:** 201 202| 类型 | 说明 | 203| ---- | ------------------------------------------------------------ | 204| int | 返回执行结果。<br>如果执行成功,返回RDB_OK。<br>如果输入参数无效,返回RDB_E_INVALID_ARGS。 | 205 206### OH_Crypto_SetEncryptionAlgo() 207 208``` 209int OH_Crypto_SetEncryptionAlgo(OH_Rdb_CryptoParam *param, int32_t algo) 210``` 211 212**描述** 213 214设置打开加密数据库时使用的加密算法。 215 216**起始版本:** 20 217 218 219**参数:** 220 221| 参数项 | 描述 | 222| ------------------------------------------------------- | ------------------------------------------------------------ | 223| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *param | 表示指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。 | 224| int32_t algo | 表示加密算法。 | 225 226**返回:** 227 228| 类型 | 说明 | 229| ---- | ------------------------------------------------------------ | 230| int | 返回执行结果。<br>如果执行成功,返回RDB_OK。<br>如果输入参数无效,返回RDB_E_INVALID_ARGS。 | 231 232### OH_Crypto_SetHmacAlgo() 233 234``` 235int OH_Crypto_SetHmacAlgo(OH_Rdb_CryptoParam *param, int32_t algo) 236``` 237 238**描述** 239 240设置打开加密数据库时使用的HMAC算法。 241 242**起始版本:** 20 243 244 245**参数:** 246 247| 参数项 | 描述 | 248| ------------------------------------------------------- | ------------------------------------------------------------ | 249| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *param | 表示指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。 | 250| int32_t algo | 表示HMAC算法。 | 251 252**返回:** 253 254| 类型 | 说明 | 255| ---- | ------------------------------------------------------------ | 256| int | 返回执行结果。<br>如果执行成功,返回RDB_OK。<br>如果输入参数无效,返回RDB_E_INVALID_ARGS。 | 257 258### OH_Crypto_SetKdfAlgo() 259 260``` 261int OH_Crypto_SetKdfAlgo(OH_Rdb_CryptoParam *param, int32_t algo) 262``` 263 264**描述** 265 266设置打开加密数据库时使用的KDF算法。 267 268**起始版本:** 20 269 270 271**参数:** 272 273| 参数项 | 描述 | 274| ------------------------------------------------------- | ------------------------------------------------------------ | 275| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *param | 表示指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。 | 276| int32_t algo | 表示KDF算法。 | 277 278**返回:** 279 280| 类型 | 说明 | 281| ---- | ------------------------------------------------------------ | 282| int | 返回执行结果。<br>如果执行成功,返回RDB_OK。<br>如果输入参数无效,返回RDB_E_INVALID_ARGS。 | 283 284### OH_Crypto_SetCryptoPageSize() 285 286``` 287int OH_Crypto_SetCryptoPageSize(OH_Rdb_CryptoParam *param, int64_t size) 288``` 289 290**描述** 291 292设置打开加密数据库时使用的页大小。 293 294**起始版本:** 20 295 296 297**参数:** 298 299| 参数项 | 描述 | 300| ------------------------------------------------------- | ------------------------------------------------------------ | 301| [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *param | 表示指向[OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md)实例的指针。 | 302| int64_t size | 表示页大小,单位为字节,取值应为2的幂值,最小值为1024,最大值65536。 | 303 304**返回:** 305 306| 类型 | 说明 | 307| ---- | ------------------------------------------------------------ | 308| int | 返回执行结果。<br>如果执行成功,返回RDB_OK。<br>如果输入参数无效,返回RDB_E_INVALID_ARGS。 | 309 310