• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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