diff --git a/en/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-security.md b/en/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-security.md new file mode 100644 index 0000000000000000000000000000000000000000..caf1866f3a5caec4bb78d7f7991208f8c9da46e9 --- /dev/null +++ b/en/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-security.md @@ -0,0 +1,86 @@ +# Security Subsystem Changelog + +## cl.security.1 ParamsSpec Attribute Name Change +Changed **algoName** of the **ParamsSpec** structure to **algName**. + +**Change Impact** + +For the released JavaScript APIs that use **ParamsSpec** and its child classes **IvParamsSpec**, **GcmParamsSpec**, and **CcmParamsSpec** as parameters or return values, **algoName** must be changed to **algName**. +The change must be made for all the applications that use these APIs. Otherwise, the compilation in the SDK of the new version cannot be successful. + +**Key API/Component Changes** + +API prototype before the change: + + ```ts +interface ParamsSpec { + /** + * Indicates the algorithm name. Should be set before initialization of a cipher object. + * @type { string } + * @syscap SystemCapability.Security.CryptoFramework + * @since 9 + */ + algoName : string; +} + ``` +API prototype after the change: + + ```ts +interface ParamsSpec { + /** + * Indicates the algorithm name. Should be set before initialization of a cipher object. + * @type { string } + * @syscap SystemCapability.Security.CryptoFramework + * @since 9 + */ + algName : string; +} + ``` + +**Adaptation Guide** + +Change **algoName** to **algName** in **ParamsSpec** and its child classes **IvParamsSpec**, **GcmParamsSpec**, and **CcmParamsSpec**. + ```ts +function genGcmParamsSpec() { + let arr = [0, 0, 0, 0 , 0, 0, 0, 0, 0, 0 , 0, 0]; // 12 bytes + let dataIv = new Uint8Array(arr); + let ivBlob = {data : dataIv}; + + arr = [0, 0, 0, 0 , 0, 0, 0, 0]; // 8 bytes + let dataAad = new Uint8Array(arr); + let aadBlob = {data : dataAad}; + + arr = [0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0]; // 16 bytes + let dataTag = new Uint8Array(arr); + let tagBlob = {data : dataTag}; + let gcmParamsSpec = {iv : ivBlob, aad : aadBlob, authTag : tagBlob, algName : "GcmParamsSpec"}; + return gcmParamsSpec; +} + ``` +For details, see the APIs of **ParamsSpec** in [Crypto Framework](../../../application-dev/reference/apis/js-apis-cryptoFramework.md#paramsspec). + +## Change of cl.security.2 ECC Algorithm Parameter Name from ECC512 to ECC521 + +**Change Impact** + +Behavior of released JavaScript APIs will be changed. +The application needs to be adapted to obtain the correct result in the SDK of the new version. + +**Key API/Component Changes** +The parameter passed in the APIs is changed from **ECC512** to **ECC521**. The related APIs remain unchanged. For details, see [Key Generation Specifications](../../../application-dev/security/cryptoFramework-overview.md#key-generation-specifications). The following APIs are involved: + +cryptoFramework.createAsyKeyGenerator + +cryptoFramework.createSign + +cryptoFramework.createVerify + +cryptoFramework.createKeyAgreement + +**Adaptation Guide** + +```js +import cryptoFramework from "@ohos.security.cryptoFramework" + +let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("ECC521"); +```