Node.js生成ECC私钥

时间:2017-08-08 05:51:02

标签: node.js cryptography ecdsa

作为官方文件

const crypto = require('crypto');
const sign = crypto.createSign('sha256');

sign.update('some data to sign');

const privateKey =
`-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49
AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2
pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==
-----END EC PRIVATE KEY-----`;
console.log(sign.sign(privateKey).toString('hex'));

我们如何使用crypto模块生成如下格式的私钥?

`-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49
AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2
pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==
-----END EC PRIVATE KEY-----`;

我尝试使用createECDH getPrivateKey,但不是我想要的格式。使用此格式进行签名将导致

错误:错误:0906D06C:PEM例程:PEM_read_bio:无起始线

  const crypto = require('crypto');
    const bob = crypto.createECDH('secp256k1');
    bob.generateKeys();

    const privateKey = bob.getPrivateKey()
    console.log(privateKey)

我尝试使用

转换它
const privateKey = bob.getPrivateKey().toString('base64');

并在头部和尾部添加注释,使其看起来像这样

`-----BEGIN EC PRIVATE KEY-----
pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==
-----END EC PRIVATE KEY-----`;

但这仍然不起作用

如何使用Crypto模块在node.js中生成有效的ECC pem?

0 个答案:

没有答案