HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point
HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point
下图是debug 日志 以及代码块
5 回复
能力有限,一点浅见:
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