Javascript 是否可以在Tweetnacl库中使用base58密钥对邮件进行签名?

Javascript 是否可以在Tweetnacl库中使用base58密钥对邮件进行签名?,javascript,cryptography,key,signature,nacl-cryptography,Javascript,Cryptography,Key,Signature,Nacl Cryptography,我已使用以下方法生成密钥对: 现在我有了一个base58密钥对(base58中的公钥和密钥),我想用密钥对消息签名,如下所示: nacl.sign( Buffer.from(someStringMessage, 'hex'), base58.decode(keyPair.secretKey) ) base58这是来自图书馆的 但是我得到了这个错误: bad secret key size at Object.<anon

我已使用以下方法生成密钥对:

现在我有了一个base58密钥对(base58中的公钥和密钥),我想用密钥对消息签名,如下所示:

nacl.sign(
          Buffer.from(someStringMessage, 'hex'),
          base58.decode(keyPair.secretKey)
        )
base58
这是来自图书馆的

但是我得到了这个错误:

bad secret key size

      at Object.<anonymous>.nacl.sign (node_modules/tweetnacl/nacl-fast.js:2257:11)
坏密钥大小
at Object..nacl.sign(node_modules/tweetnacl/nacl fast.js:2257:11)
实际上,
nacl.sign
函数需要一个64位的密钥,而我的base58版本并非如此


有没有办法在保留base58的同时修复它,或者我应该使用由
nacl.randomBytes(32)
生成的原始Ed25519格式,即未转换的格式

也就是说,签名密钥是64字节,而不是32字节。因此你会得到错误

base58KeyPairGenerator
函数中,密钥必须是
nacl.sign.keyPair.fromSeed(seed).secretKey
(或
.privateKey
或其他任何名称)的输出,而不仅仅是种子

bad secret key size

      at Object.<anonymous>.nacl.sign (node_modules/tweetnacl/nacl-fast.js:2257:11)