• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# security子系统ChangeLog
2
3## cl.security.1 Random的setSeed功能变更,由异步接口改为同步接口
4
5**变更影响**
6
7影响已发布的JS接口,接口行为发生变更。
8应用需要进行适配,才可以在新版本SDK环境正常编译通过。
9
10**关键的接口/组件变更**
11修改前的接口原型:
12setSeed(seed : DataBlob, callback : AsyncCallback\<void>) : void;
13setSeed(seed : DataBlob) : Promise\<void>;
14修改后的接口原型:
15setSeed(seed : DataBlob) : void;
16
17**适配指导**
18查看API参考中setSeed对应的接口适配指南:
19[加解密算法库框架-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cryptoFramework.md)
20
21
22## cl.security.2 interface DataArray 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
23**变更影响**
24
25影响已发布的JS接口,接口行为发生变更。
26应用需要进行适配,才可以在新版本SDK环境正常编译通过。
27
28**关键的接口/组件变更**
29interface DataArray从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
30
31**适配指导**
32重新import并使用对应的.d.ts文件:
33import cryptoCert from '@ohos.security.cert';
34查看API参考中对应的接口适配指南:
35[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
36
37
38## cl.security.3 interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
39**变更影响**
40
41影响已发布的JS接口,接口行为发生变更。
42应用需要进行适配,才可以在新版本SDK环境正常编译通过。
43
44**关键的接口/组件变更**
45interface EncodingFormat从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
46
47**适配指导**
48重新import并使用对应的.d.ts文件:
49import cryptoCert from '@ohos.security.cert';
50查看API参考中对应的接口适配指南:
51[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
52
53
54## cl.security.4 interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
55**变更影响**
56
57影响已发布的JS接口,接口行为发生变更。
58应用需要进行适配,才可以在新版本SDK环境正常编译通过。
59
60**关键的接口/组件变更**
61interface EncodingBlob 从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
62
63**适配指导**
64重新import并使用对应的.d.ts文件:
65import cryptoCert from '@ohos.security.cert';
66查看API参考中对应的接口适配指南:
67[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
68
69
70## cl.security.5 interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
71**变更影响**
72
73影响已发布的JS接口,接口行为发生变更。
74应用需要进行适配,才可以在新版本SDK环境正常编译通过。
75
76**关键的接口/组件变更**
77interface CertChainData从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
78
79**适配指导**
80重新import并使用对应的.d.ts文件:
81import cryptoCert from '@ohos.security.cert';
82查看API参考中对应的接口适配指南:
83[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
84
85
86## cl.security.6 interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
87**变更影响**
88
89影响已发布的JS接口,接口行为发生变更。
90应用需要进行适配,才可以在新版本SDK环境正常编译通过。
91
92**关键的接口/组件变更**
93interface X509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
94
95**适配指导**
96重新import并使用对应的.d.ts文件:
97import cryptoCert from '@ohos.security.cert';
98查看API参考中对应的接口适配指南:
99[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
100
101
102## cl.security.7 function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
103**变更影响**
104
105影响已发布的JS接口,接口行为发生变更。
106应用需要进行适配,才可以在新版本SDK环境正常编译通过。
107
108**关键的接口/组件变更**
109function createX509Cert从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
110
111**适配指导**
112重新import并使用对应的.d.ts文件:
113import cryptoCert from '@ohos.security.cert';
114查看API参考中对应的接口适配指南:
115[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
116
117
118## cl.security.8 interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
119**变更影响**
120
121影响已发布的JS接口,接口行为发生变更。
122应用需要进行适配,才可以在新版本SDK环境正常编译通过。
123
124**关键的接口/组件变更**
125interface X509CrlEntry从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
126
127**适配指导**
128重新import并使用对应的.d.ts文件:
129import cryptoCert from '@ohos.security.cert';
130查看API参考中对应的接口适配指南:
131[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
132
133
134## cl.security.9 interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
135**变更影响**
136
137影响已发布的JS接口,接口行为发生变更。
138应用需要进行适配,才可以在新版本SDK环境正常编译通过。
139
140**关键的接口/组件变更**
141interface X509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
142
143**适配指导**
144重新import并使用对应的.d.ts文件:
145import cryptoCert from '@ohos.security.cert';
146查看API参考中对应的接口适配指南:
147[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
148
149
150## cl.security.10 function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
151**变更影响**
152
153影响已发布的JS接口,接口行为发生变更。
154应用需要进行适配,才可以在新版本SDK环境正常编译通过。
155
156**关键的接口/组件变更**
157function createX509Crl从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
158
159**适配指导**
160重新import并使用对应的.d.ts文件:
161import cryptoCert from '@ohos.security.cert';
162查看API参考中对应的接口适配指南:
163[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
164
165
166## cl.security.11 interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
167**变更影响**
168
169影响已发布的JS接口,接口行为发生变更。
170应用需要进行适配,才可以在新版本SDK环境正常编译通过。
171
172**关键的接口/组件变更**
173interface CertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
174
175**适配指导**
176重新import并使用对应的.d.ts文件:
177import cryptoCert from '@ohos.security.cert';
178查看API参考中对应的接口适配指南:
179[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
180
181
182## cl.security.12 function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
183**变更影响**
184
185影响已发布的JS接口,接口行为发生变更。
186应用需要进行适配,才可以在新版本SDK环境正常编译通过。
187
188**关键的接口/组件变更**
189function createCertChainValidator从@ohos.security.cryptoFramework.d.ts 迁移至@ohos.security.cert.d.ts
190
191**适配指导**
192重新import并使用对应的.d.ts文件:
193import cryptoCert from '@ohos.security.cert';
194查看API参考中对应的接口适配指南:
195[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
196
197
198## cl.security.13 X509Cert 的getPublicKey功能变更,由异步接口改为同步接口
199**变更影响**
200
201影响已发布的JS接口,接口行为发生变更。
202应用需要进行适配,才可以在新版本SDK环境正常编译通过。
203
204**关键的接口/组件变更**
205修改前的接口原型:
206getPublicKey(callback : AsyncCallback\<PubKey>) : void;
207getPublicKey() : Promise\<PubKey>;
208修改后的接口原型:
209getPublicKey() : cryptoFramework.PubKey;
210
211**适配指导**
212查看API参考中对应的接口适配指南:
213[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
214
215
216## cl.security.14 X509Cert 的checkValidityWithDate功能变更,由异步接口改为同步接口
217**变更影响**
218
219影响已发布的JS接口,接口行为发生变更。
220应用需要进行适配,才可以在新版本SDK环境正常编译通过。
221
222**关键的接口/组件变更**
223修改前的接口原型:
224checkValidityWithDate(date: string, callback : AsyncCallback\<void>) : void;
225checkValidityWithDate(date: string) : Promise\<void>;
226修改后的接口原型:
227checkValidityWithDate(date: string) : void;
228
229**适配指导**
230查看API参考中对应的接口适配指南:
231[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
232
233
234## cl.security.15 X509CrlEntry 的getCertIssuer功能变更,由异步接口改为同步接口
235**变更影响**
236
237影响已发布的JS接口,接口行为发生变更。
238应用需要进行适配,才可以在新版本SDK环境正常编译通过。
239
240**关键的接口/组件变更**
241修改前的接口原型:
242getCertIssuer(callback : AsyncCallback\<DataBlob>) : void;
243getCertIssuer() : Promise\<DataBlob>;
244
245修改后的接口原型:
246getCertIssuer() : DataBlob;
247
248**适配指导**
249查看API参考中对应的接口适配指南:
250[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
251
252
253## cl.security.16 X509CrlEntry 的getRevocationDate功能变更,由异步接口改为同步接口
254**变更影响**
255
256影响已发布的JS接口,接口行为发生变更。
257应用需要进行适配,才可以在新版本SDK环境正常编译通过。
258
259**关键的接口/组件变更**
260修改前的接口原型:
261getRevocationDate(callback : AsyncCallback\<string>) : void;
262getRevocationDate() : Promise\<string>;
263
264修改后的接口原型:
265getRevocationDate() : string;
266
267**适配指导**
268查看API参考中对应的接口适配指南:
269[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
270
271
272## cl.security.17 X509Crl 的isRevoked功能变更,由异步接口改为同步接口
273**变更影响**
274
275影响已发布的JS接口,接口行为发生变更。
276应用需要进行适配,才可以在新版本SDK环境正常编译通过。
277
278**关键的接口/组件变更**
279修改前的接口原型:
280isRevoked(cert : X509Cert, callback : AsyncCallback\<boolean>) : void;
281isRevoked(cert : X509Cert) : Promise\<boolean>;
282
283修改后的接口原型:
284isRevoked(cert : X509Cert) : boolean;
285
286**适配指导**
287查看API参考中对应的接口适配指南:
288[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
289
290
291## cl.security.18 X509Crl 的getRevokedCert功能变更,由异步接口改为同步接口
292**变更影响**
293
294影响已发布的JS接口,接口行为发生变更。
295应用需要进行适配,才可以在新版本SDK环境正常编译通过。
296
297**关键的接口/组件变更**
298修改前的接口原型:
299getRevokedCert(serialNumber : number, callback : AsyncCallback\<X509CrlEntry>) : void;
300getRevokedCert(serialNumber : number) : Promise\<X509CrlEntry>;
301
302修改后的接口原型:
303getRevokedCert(serialNumber : number) : X509CrlEntry;
304
305**适配指导**
306查看API参考中对应的接口适配指南:
307[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
308
309
310## cl.security.19 X509Crl 的getRevokedCertWithCert功能变更,由异步接口改为同步接口
311**变更影响**
312
313影响已发布的JS接口,接口行为发生变更。
314应用需要进行适配,才可以在新版本SDK环境正常编译通过。
315
316**关键的接口/组件变更**
317修改前的接口原型:
318getRevokedCertWithCert(cert : X509Cert, callback : AsyncCallback\<X509CrlEntry>) : void;
319getRevokedCertWithCert(cert : X509Cert) : Promise\<X509CrlEntry>;
320
321修改后的接口原型:
322getRevokedCertWithCert(cert : X509Cert) : X509CrlEntry;
323
324**适配指导**
325查看API参考中对应的接口适配指南:
326[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
327
328
329## cl.security.20 X509Crl 的getTbsInfo功能变更,由异步接口改为同步接口
330**变更影响**
331
332影响已发布的JS接口,接口行为发生变更。
333应用需要进行适配,才可以在新版本SDK环境正常编译通过。
334
335**关键的接口/组件变更**
336修改前的接口原型:
337getTbsInfo(callback : AsyncCallback\<DataBlob>) : void;
338getTbsInfo() : Promise\<DataBlob>;
339
340修改后的接口原型:
341getTbsInfo() : DataBlob;
342
343**适配指导**
344查看API参考中对应的接口适配指南:
345[证书-API参考](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-cert.md)
346
347## cl.security.21 HUKS支持No-Hash的签名模式
348
349变更之前,应用传递huks.HuksTag.HUKS_TAG_DIGEST = huks.HuksKeyDigest.HUKS_DIGEST_NONE,HUKS默认使用huks.HuksKeyDigest.HUKS_DIGEST_SHA256进行处理;变更之后,应用传递huks.HuksTag.HUKS_TAG_DIGEST = huks.HuksKeyDigest.HUKS_DIGEST_NONE时,HUKS默认不进行摘要处理,需要业务先对原始数据进行hash操作,再将hash后的摘要传入huks进行签名/验签处理。
350
351**变更影响**
352
353影响已发布的JS接口,接口行为发生变更。
354应用需要进行适配,才可以使得变更前后的签名/验签结果通过。
355
356**关键的接口/组件变更**
357
358发布的JS接口不变, 传入接口的参数集合发生变更。
359
360业务使用No-Hash的签名模式,需要先对原始数据进行hash处理,再将hash后的摘要传入huks签名/验签接口。同时huks.HuksTag.HUKS_TAG_DIGEST参数设置为huks.HuksKeyDigest.HUKS_DIGEST_NONE361
362**适配指导**
363
364以签名为例,示例代码如下:
365
366```js
367import huks from '@ohos.security.huks';
368
369let keyAlias = 'rsa_Key';
370/* sha256之后的摘要值 */
371let inDataAfterSha256 = new Uint8Array(
372    0x4B, 0x1E, 0x22, 0x64, 0xA9, 0x89, 0x60, 0x1D, 0xEC, 0x78, 0xC0, 0x5D, 0xBE, 0x46, 0xAD, 0xCF,
373    0x1C, 0x35, 0x16, 0x11, 0x34, 0x01, 0x4E, 0x9B, 0x7C, 0x00, 0x66, 0x0E, 0xCA, 0x09, 0xC0, 0xF3,
374);
375/* 签名参数 */
376let signProperties = new Array();
377signProperties[0] = {
378    tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
379    value: huks.HuksKeyAlg.HUKS_ALG_RSA,
380}
381signProperties[1] = {
382    tag: huks.HuksTag.HUKS_TAG_PURPOSE,
383    value:
384    huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN
385}
386signProperties[2] = {
387    tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
388    value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_2048,
389}
390signProperties[3] = {
391    tag: huks.HuksTag.HUKS_TAG_DIGEST,
392    value: huks.HuksKeyDigest.HUKS_DIGEST_NONE, // 设置 digest-none
393}
394let signOptions = {
395    properties: signProperties,
396    inData: inDataAfterSha256 // 设置HASH后的值
397}
398
399huks.initSession(keyAlias, signOptions);
400```
401
402更多接口的示例代码可参考[HUKS-guidelines](../../../application-dev/security/huks-guidelines.md)和[HUKS API](../../../application-dev/reference/apis/js-apis-huks.md)。
403
404## cl.security.22 HUKS支持在密钥使用时指定密钥运算参数
405
406变更之前,业务在生成密钥的时候,必须指定密钥运算的全部参数;变更之后,在生成密钥时,只需要包含必选参数即可,在密钥使用阶段再传入其他参数。业务使用会更加灵活。
407
408**变更影响**
409
410影响已发布的JS接口,接口行为发生变更。
411
412允许应用在生成密钥阶段传入的参数中包含必选参数即可,在密钥使用阶段再传入其他可选参数。
413
414**关键的接口/组件变更**
415
416发布的JS接口不变, 传入接口的参数集合发生变更,将参数分为必选参数和可选参数,具体可参考[HUKS-guidelines](../../../application-dev/security/huks-guidelines.md),涉及的接口有:
417
418huks.generateKeyItem
419
420huks.importKeyItem
421
422huks.importWrappedKeyItem
423
424huks.initSession
425
426huks.updateSession
427
428huks.finishSession
429
430**适配指导**
431
432以生成密钥为例,示例代码如下:
433
434```js
435let keyAlias = 'keyAlias';
436let properties = new Array();
437//必选参数
438properties[0] = {
439    tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
440    value: huks.HuksKeyAlg.HUKS_ALG_RSA
441};
442//必选参数
443properties[1] = {
444    tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
445    value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_2048
446};
447//必选参数
448properties[2] = {
449    tag: huks.HuksTag.HUKS_TAG_PURPOSE,
450    value:
451    huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN |
452    huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
453};
454//可选参数,如果在生成密钥阶段没有传入,则在使用密钥阶段必须传入。
455properties[3] = {
456    tag: huks.HuksTag.HUKS_TAG_DIGEST,
457    value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256
458};
459let options = {
460    properties: properties
461};
462try {
463    huks.generateKeyItem(keyAlias, options, function (error, data) {
464        if (error) {
465            console.error(`callback: generateKeyItem failed, code: ${error.code}, msg: ${error.message}`);
466        } else {
467            console.info(`callback: generateKeyItem key success`);
468        }
469    });
470} catch (error) {
471    console.error(`callback: generateKeyItem input arg invalid, code: ${error.code}, msg: ${error.message}`);
472}
473```
474
475更多接口的示例代码可参考[HUKS-guidelines](../../../application-dev/security/huks-guidelines.md)和[HUKS API](../../../application-dev/reference/apis/js-apis-huks.md)。
476