从JavaScript中的缓冲区创建bigInteger

问题描述

我正在像这样在盖茨比使用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,s: 0}

我不知道会发生什么,也许问题出在以下评论者建议的ecdsa库中

我在生产中遇到的错误是

Expected property "1" of type BigInteger,got n

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

解决方法

ecdsa库已过时(source

如果需要其他曲线,请使用secp256k1elliptic

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...