El método diffieHellman.setPrivateKey() es una interfaz de programación de aplicaciones incorporada de la clase DiffieHellman (dh) dentro del módulo criptográfico que se utiliza para establecer la clave privada del objeto dh .
Sintaxis:
diffieHellman.setPrivateKey(privateKey[, encoding])
Parámetros: este método acepta los siguientes dos parámetros:
- privateKey: Se utiliza para denotar la clave privada.
- codificación: se utiliza para indicar la codificación de privateKey . Si se proporciona codificación, se espera que privateKey sea String; de lo contrario, Buffer, TypedArray o DataView.
Ejemplo 1:
index.js
// 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") }
Ejecute el archivo index.js usando el siguiente comando
node index.js
Producción:
DH private Key is set successfully
Ejemplo 2:
index.js
// 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" ) }
Ejecute el archivo index.js usando el siguiente comando
node index.js
Producción:
DH private Key is set successfully
Referencia: https://nodejs.org/api/crypto.html#crypto_ecdh_setprivatekey_privatekey_encoding