HarmonyOS中AES加密CBC模式中IV的实现,ArkTS和C++怎么对应上?在使用AES加密CBC模式的时候,看文档在ArkTS上采用以下的方式设置IV。对应于c层的话,HarmonyOS也提供了OH_HUKS_TAG_IV的参数,但是怎么实现以下的"IvParamsSpec"的模式了,有参考的内容吗?
function genIvParamsSpec() {
let arr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; // 16 bytes
let dataIv = new Uint8Array(arr);
let ivBlob: cryptoFramework.DataBlob = { data: dataIv };
let ivParamsSpec: cryptoFramework.IvParamsSpec = {
algName: "IvParamsSpec",
iv: ivBlob
};
return ivParamsSpec;
}
async function encryptMessagePromise(symKey: cryptoFramework.SymKey, plainText: cryptoFramework.DataBlob) {
let cipher = cryptoFramework.createCipher('AES128|CBC|PKCS7');
let iv = genIvParamsSpec();
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, iv);
let cipherData = await cipher.doFinal(plainText);
return cipherData;
}
使用场景不同不存在对应关系,
AES加密CBC模式是加解密算法框架服务CryptoArchitectureKit 中的接口,并没有提供C++接口,参考官网文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
OH_HUKS_TAG_IV参数是密钥管理服务HUKS中的接口,HUKS提供了密钥管理的接口的C++和ArkTS接口,参考官网文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...