代码之家  ›  专栏  ›  技术社区  ›  user3808307

在javascript中从缓冲区创建bigInteger

  •  0
  • user3808307  · 技术社区  · 4 年前

    我在盖茨比使用一个bigInt库,就像这样

    import BigInteger from 'bigi';
    
    const signature = ecdsa.sign(shaMsg, BigInteger.fromBuffer(privateKey));
    

    生产版本上似乎有一些polyfill问题,我无法解决。在localhost中运行时没有问题。

    所以我想我会尝试一个不同的bigInt库,看看这是否能修复它

    import bigInt from "big-integer";
    

    问题是这个图书馆没有 fromBuffer 功能,以及 signature 在上面的代码中是类型缓冲区。

    除了使用“bigi”库中的函数外,我如何转换它?

    谢谢你(这个问题有意义吗,因为我不知道自己在做什么)

    编辑:为了澄清,控制台日志记录 BigInteger.fromBuffer(privateKey) 在开发构建(有效的构建)结果中:

    BigInteger {0: 5218218, 1: 6291014, 2: 34656281, 3: 1776116, 4: 53518743, 5: 10808093, 6: 62725491, 7: 63913863, 8: 50275223, 9: 1979384, t: 10, s: 0}
    

    在不起作用的生产环境中,与上述日志相同

    n {0: 5218218, 1: 6291014, 2: 34656281, 3: 1776116, 4: 53518743, 5: 10808093, 6: 62725491, 7: 63913863, 8: 50275223, 9: 1979384, t: 10, s: 0}
    

    我不明白会发生什么,也许问题出在 ecdsa 下面一位评论员建议的图书馆

    我在生产中遇到的错误是

    Expected property "1" of type BigInteger, got n
    

    编辑:我解决了这个问题,我在其他地方得到了帮助,使用椭圆代替ecdsa进行签名,如下所述,这是一个ecsda问题。由于赏金,我无法关闭,也无法发布回复,所以我不知道该怎么办

    0 回复  |  直到 4 年前
        1
  •  0
  •   Kuf    4 年前

    这个 ecdsa 库已弃用( source )

    使用 secp256k1 elliptic 如果你需要其他曲线。