El método diffieHellman.setPublicKey() 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 pública del objeto dh .
Sintaxis:
diffieHellman.setPublicKey(publicKey[, encoding])
Parámetros: este método acepta los siguientes dos parámetros:
- publicKey: Se utiliza para denotar la clave privada.
- codificación: se utiliza para indicar la codificación de publicKey . Si se proporciona codificación, se espera que publicKey sea String; de lo contrario, Buffer, TypedArray o DataView.
Ejemplo 1:
index.js
// Node.js program to demonstrate the // diffieHellman.setPublicKey() Method const crypto = require('crypto') crypto.generateKeyPair('dh', { primeLength: 512, publicKeyEncoding: { type: 'spki', format: 'der' }, publicKeyEncoding: { type: 'pkcs8', format: 'der' } }, cb ) function cb(err, publicKey, publicKey) { // Create Diffie-Hellman instance const dh = crypto.createDiffieHellman(512) // Set the dh's publicKey dh.setPublicKey(publicKey) if (publicKey.equals(dh.getPublicKey())) console.log("DH public Key is set successfully") }
Ejecute el archivo index.js usando el siguiente comando
node index.js
Producción:
DH public Key is set successfully
Ejemplo 2:
index.js
// Node.js program to demonstrate the // diffieHellman.setPublicKey() Method const crypto = require('crypto') crypto.generateKeyPair( 'dh', { primeLength: 512 }, cb ) function cb(err, publicKey, publicKey) { // Export key from KeyObject publicKey = publicKey.export({ type: 'spki', format: 'der' }) // Encode key in base64 publicKey = publicKey.toString('base64'); // Create Diffie-Hellman instance const dh = crypto.createDiffieHellman(512) // Set the dh's publicKey dh.setPublicKey(publicKey, 'base64') if (publicKey === dh.getPublicKey('base64')) console.log("DH public Key is set successfully") }
Ejecute el archivo index.js usando el siguiente comando
node index.js
Producción:
DH public Key is set successfully
Referencia: https://nodejs.org/api/crypto.html#crypto_diffiehellman_setpublickey_publickey_encoding