ecdh.setPublicKey(public_key[, encoding])
Stability: 0 - Deprecated
Sets the EC Diffie-Hellman public key. Key encoding can be 'binary'
, 'hex'
or 'base64'
. If encoding
is provided public_key
is expected to be a string; otherwise a Buffer
is expected.
Note that there is not normally a reason to call this method because ECDH
only requires a private key and the other party's public key to compute the shared secret. Typically either ecdh.generateKeys()
or ecdh.setPrivateKey()
will be called. The ecdh.setPrivateKey()
method attempts to generate the public point/key associated with the private key being set.
Example (obtaining a shared secret):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | const crypto = require( 'crypto' ); const alice = crypto.createECDH( 'secp256k1' ); const bob = crypto.createECDH( 'secp256k1' ); // Note: This is a shortcut way to specify one of Alice's previous private // keys. It would be unwise to use such a predictable private key in a real // application. alice.setPrivateKey( crypto.createHash('sha256 ').update(' alice ', ' utf8 ').digest() ); // Bob uses a newly generated cryptographically strong // pseudorandom key pair bob.generateKeys(); const alice_secret = alice.computeSecret(bob.getPublicKey(), null, ' hex '); const bob_secret = bob.computeSecret(alice.getPublicKey(), null, ' hex'); // alice_secret and bob_secret should be the same shared secret value console.log(alice_secret === bob_secret); |
Please login to continue.