The above method creates a DiffieHellman key exchange object with the help of the supplied prime value and an optional specific generator. The generator argument can hold either a string, number or Buffer value. Default value for generator is 2.
Syntax
crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator], [generatorEncoding]
Parameters
The above parameters are described as below −
prime – The number of prime bits that will be generated. Input value is of type number.
primeEncoding – This parameter defines the encoding of the prime string. Possible input types are: string, buffer, TypedArray and DataView.
generator – Generator for generating the exchange key object. Default value: 2.
generatorEncoding – This parameter defines the generator string encoding.
Example
Create a file with name – index.js and copy the below code snippet. After creating file, use the following command to run this code as shown in the example below −
node index.js
Program Code
// crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator],[generatorEncoding]) // Demo Example // Importing the crypto module const crypto = require('crypto'); // Initializing and defining the prime value const server = crypto.createDiffieHellman(20); // Generating keys server.generateKeys(); // Creating keys using server prime and generator const client= crypto.createDiffieHellman( server.getPrime(), server.getGenerator()); client.generateKeys(); // Printing the server and client values console.log("Server prime: ", server.getPrime().toString('hex'), "\nServer generator: ", server.getGenerator().toString('hex')); console.log("Client prime: ", client.getPrime().toString('hex'), "\nClient generator: ", client.getGenerator().toString('hex'));
Output
C:\home\node>> node index.js Server prime: 0fed0b Server generator: 02 Client prime: 0fed0b Client generator: 02
Since the arguments passed for both server and client are same. Therefore, the keys generated are also same.
Example
Let's take a look at one more example.
// crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator],[generatorEncoding]) // Demo Example // Importing the crypto module const crypto = require('crypto'); // Initializing and defining the prime value const val = crypto.createDiffieHellman(12); // Printing prime value for abve DiffieHellman console.log(val.getPrime()); // Printing the generator value console.log(val.getGenerator())
Output
C:\home\node>> node index.js <Buffer 0f 6b> <Buffer 02>