eccrypto.getPublic()在“自定义”私钥上不起作用

时间:2019-12-03 17:32:44

标签: javascript cryptography ethereum ecdsa

我正在尝试用JavaScript生成一对以太坊密钥。

为此,我正在测试一些ECDSA / Keccak256算法,以从私钥获取公钥。我发现的最有前途的一个(知道我想仅对私钥避免伪随机的约束)是:https://github.com/bitchan/eccrypto

我已经能够使用lib的两个功能来生成私钥和获取公钥:

np.array

但是,每当我尝试对之前不是由eccrypto立即生成的privateKey使用getPublic时,eccrypto.getPublic将无法正常工作,并且会拒绝并显示错误const privateKey2 = eccrypto.generatePrivate(); console.log(privateKey2); const publicKey = eccrypto.getPublic(privateKey2); console.log(publicKey);

最奇怪的是,即使我通过电子密码复制生成的私钥,然后尝试将其传递给Bad private key(硬编码),也会遇到相同的错误:

eccrypto.getPublic()

这是一个非常具体的问题,但是如果有人有解决方案,那对我真的有帮助!

1 个答案:

答案 0 :(得分:1)

我认为您只需要在传递私钥之前将其转换为Buffer,其中就有一个isScalar方法使用isBuffer并且期望实际的{{1 }}对象。

您应该可以使用Buffer.from(array)从数组中创建它。