From a4bd3fc83852a398f00ffd0282f90fff8d18b912 Mon Sep 17 00:00:00 2001 From: folex <0xdxdy@gmail.com> Date: Tue, 24 Dec 2019 07:03:29 +0300 Subject: [PATCH] Fix freeze in createExchange --- src/handshake/crypto.js | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/handshake/crypto.js b/src/handshake/crypto.js index 13fb06c..6bcebd6 100644 --- a/src/handshake/crypto.js +++ b/src/handshake/crypto.js @@ -45,18 +45,36 @@ exports.createExchange = (state, callback) => { state.ephemeralKey.local ]) - state.key.local.sign(selectionOut, (err, sig) => { - if (err) { - return callback(err) - } - + // CODE BELOW WORKS + state.key.local.sign(selectionOut).then((sig) => { + log('2. exchange (promise) – corpus signed') state.exchange.out = { epubkey: state.ephemeralKey.local, signature: sig } callback(null, pbm.Exchange.encode(state.exchange.out)) + }).catch((err) => { + if (err) { + return callback(err) + } }) + + // CODE BELOW HANGS + // state.key.local.sign(selectionOut, (err, sig) => { + // log('2. exchange – corpus signed, err', err, 'sig', sig) + + // if (err) { + // return callback(err) + // } + + // state.exchange.out = { + // epubkey: state.ephemeralKey.local, + // signature: sig + // } + + // callback(null, pbm.Exchange.encode(state.exchange.out)) + // }) }) }