Open In App

Node.js diffieHellman.setPrivateKey() Method

The diffieHellman.setPrivateKey() method is an inbuilt application programming interface of class DiffieHellman (dh) within the crypto module which is used to set the private key of dh object.

Syntax:



diffieHellman.setPrivateKey(privateKey[, encoding])

Parameters: This method accepts the following two parameters:



 

Example 1:




// Node.js program to demonstrate the
// diffieHellman.setPrivateKey() Method
  
const crypto = require('crypto')
  
// Generate DH Key pair
crypto.generateKeyPair('dh'
    {
        primeLength: 512,
         publicKeyEncoding: {
            type: 'spki',
            format: 'der'
        },
        privateKeyEncoding: {
            type: 'pkcs8',
            format: 'der'
        }
    },
    cb
)
  
function cb(err, publicKey, privateKey){
    // Create Diffie-Hellman instance
    const dh = crypto.createDiffieHellman(512)
    // Set the dh's privateKey
    dh.setPrivateKey(privateKey)
  
    if( privateKey.equals(dh.getPrivateKey()) )
        console.log("DH private Key is set successfully")
}

Run index.js file using the following command

node index.js

Output:

DH private Key is set successfully

Example 2 :




// Node.js program to demonstrate the
// diffieHellman.setPrivateKey() Method
  
const crypto = require( 'crypto' )
  
crypto.generateKeyPair( 
    'dh'
    { primeLength: 512 }, 
    cb 
)
  
function cb( err, publicKey, privateKey ){
    // Export key from KeyObject
    privateKey = privateKey.export( {type: 'pkcs8', format: 'der'} )
    // Encode key in base64
    privateKey = privateKey.toString('base64');
    // Create Diffie-Hellman instance
    const dh = crypto.createDiffieHellman( 512 )
    // Set the dh's privateKey
    dh.setPrivateKey( privateKey, 'base64' )
  
    if( privateKey === dh.getPrivateKey('base64')  )
        console.log( "DH private Key is set successfully" )
}

Run index.js file using the following command

node index.js

Output:

DH private Key is set successfully

Reference: https://nodejs.org/api/crypto.html#crypto_ecdh_setprivatekey_privatekey_encoding


Article Tags :