HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Crypto Architecture Kit(加解密算法框架服务) failed to convert point

下图是debug 日志 以及代码块

cke_123.png

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)中的点转换操作有关。可能的原因包括但不限于:

  1. 输入数据格式错误:确保提供给转换函数的点数据(如坐标)符合预期的格式和范围。

  2. 曲线参数不匹配:检查所使用的椭圆曲线参数(如素数p、系数a和b、基点G等)是否与算法要求一致。

  3. 库或框架版本问题:确认您使用的鸿蒙开发套件及其加密库为最新版本,以避免已知的bug或兼容性问题。

  4. 内存或资源限制:在嵌入式或资源受限的环境中,确保有足够的内存和资源来执行点转换操作。

  5. API使用不当:重新检查API的调用方式,确保遵循文档中的正确用法。

如果上述检查后问题依旧存在,可能是由于更复杂的底层问题或特定于您项目的配置问题。此时,建议直接联系华为开发者支持或访问其官方论坛寻求更具体的帮助。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部