When i load the ECDH private key with the crypto module i am getting the following error:
node:internal/crypto/diffiehellman:231
this[kHandle].setPrivateKey(key);
^
RangeError: Private key is not valid for specified curve.
at ECDH.setPrivateKey (node:internal/crypto/diffiehellman:231:17)
......
code: 'ERR_CRYPTO_INVALID_KEYTYPE'
}
The private key was created executing openssl ecparam -name prime256v1 -genkey -noout -out "private_key.pem"
I tried the following:
// private_key.pem
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDuwn+0qX7ZDCOjQPxBNNn9nr/OLWptW+kwlJcb60q4EoAoGCCqGSM49
AwEHoUQDQgAEV8swcnlrvUuuQ1M9iyLiGfSuAkC2xJa6gK3wQyemV3LsiflS5bDw
ce4oSTzRtVfyFElm3jv0pKxMj7uK7/YCMA==
-----END EC PRIVATE KEY-----
// index.js
// Libraries
const crypto = require('crypto');
const fs = require('fs');
const ecdh = new crypto.createECDH('prime256v1')
ecdh.setPrivateKey(fs.readFileSync('./private_key.pem'), 'utf8')