HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point
HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point
下图是debug 日志 以及代码块
更多关于HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
能力有限,一点浅见:
1.算法名称前后对应
2.公钥不能直接生成非压缩点数据
let rsaGenerator = cryptoFramework.createAsyKeyGenerator('ECC_BrainPoolP256r1');
let keyPair = rsaGenerator.generateKeyPairSync();
let eccPkX = keyPair.pubKey.getAsyKeySpec(cryptoFramework.AsyKeySpecItem.ECC_PK_X_BN);
let eccPkY = keyPair.pubKey.getAsyKeySpec(cryptoFramework.AsyKeySpecItem.ECC_PK_Y_BN);
console.info('ECC_PK_X_BN 16:' + eccPkX.toString(16));
console.info('ECC_PK_Y_BN 16:' + eccPkY.toString(16));
// 将eccPkX.toString(16)结果放入x,eccPkY.toString(16)结果放入y
let returnPoint: cryptoFramework.Point = {
x: BigInt('0x' + eccPkX.toString(16)),
y: BigInt('0x' + eccPkY.toString(16))
};
// 非压缩数据点
let pkData=cryptoFramework.ECCKeyUtil.getEncodedPoint('NID_brainpoolP256r1', returnPoint, 'UNCOMPRESSED');
// let pkData = new Uint8Array([4, 143, 39, 57, 249, 145, 50, 63, 222, 35, 70, 178, 121, 202, 154, 21, 146, 129, 75, 76, 63, 8, 195, 157, 111, 40, 217, 215, 148, 120, 224, 205, 82, 83, 92, 185, 21, 211, 184, 5, 19, 114, 33, 86, 85, 228, 123, 242, 206, 200, 98, 178, 184, 130, 35, 232, 45, 5, 202, 189, 11, 46, 163, 156, 152]);
let returnPoint2 = cryptoFramework.ECCKeyUtil.convertPoint('NID_brainpoolP256r1', pkData);
console.info('convertPoint success');
let returnData = cryptoFramework.ECCKeyUtil.getEncodedPoint('NID_brainpoolP256r1', returnPoint2, 'COMPRESSED');
console.info('returnData: ' + returnData);
我是想将 pubkey 非压缩点数据转 报错
针对您提到的HarmonyOS鸿蒙Next Crypto Architecture Kit(加解密算法框架服务)中“failed to convert point”的问题,这通常与椭圆曲线密码学(ECC)中的点转换操作有关。可能的原因包括但不限于:
-
输入数据格式错误:确保提供给转换函数的点数据(如坐标)符合预期的格式和范围。
-
曲线参数不匹配:检查所使用的椭圆曲线参数(如素数p、系数a和b、基点G等)是否与算法要求一致。
-
库或框架版本问题:确认您使用的鸿蒙开发套件及其加密库为最新版本,以避免已知的bug或兼容性问题。
-
内存或资源限制:在嵌入式或资源受限的环境中,确保有足够的内存和资源来执行点转换操作。
-
API使用不当:重新检查API的调用方式,确保遵循文档中的正确用法。
如果上述检查后问题依旧存在,可能是由于更复杂的底层问题或特定于您项目的配置问题。此时,建议直接联系华为开发者支持或访问其官方论坛寻求更具体的帮助。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html