From 99103b84b8f53f1a368e9df4501b73e7634e8df8 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Wed, 15 Dec 2021 15:47:40 -0400 Subject: [PATCH] Generate keypair through subprocess --- utils/ECC/ECC.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/utils/ECC/ECC.js b/utils/ECC/ECC.js index 2d8de174..2dbf265f 100644 --- a/utils/ECC/ECC.js +++ b/utils/ECC/ECC.js @@ -1,6 +1,8 @@ /** @format */ const ECCrypto = require('eccrypto') const Storage = require('node-persist') +const { fork } = require('child_process') + const FieldError = require('../fieldError') const logger = require('../../config/log') const { @@ -12,6 +14,9 @@ const { convertToEncryptedMessage, convertBase64ToBuffer } = require('./crypto') +const { invoke } = require('./subprocess') + +const cryptoSubprocess = fork('utils/ECC/subprocess') const nodeKeyPairs = new Map() const devicePublicKeys = new Map() @@ -62,8 +67,8 @@ const generateKeyPair = async deviceId => { } } - const privateKey = ECCrypto.generatePrivate() - const publicKey = ECCrypto.getPublic(privateKey) + const privateKey = await invoke('generatePrivate', [], cryptoSubprocess) + const publicKey = await invoke('getPublic', [privateKey], cryptoSubprocess) const privateKeyBase64 = convertBufferToBase64(privateKey) const publicKeyBase64 = convertBufferToBase64(publicKey)