diff --git a/src/index.js b/src/index.js index 9e853ad..8fb415a 100644 --- a/src/index.js +++ b/src/index.js @@ -171,12 +171,17 @@ function createServer(options) { } function onEncryptionKeyResponse(packet) { - var verifyToken = serverKey.decrypt(packet.verifyToken, undefined, undefined, ursa.RSA_PKCS1_PADDING); - if (!bufferEqual(client.verifyToken, verifyToken)) { + try { + var verifyToken = serverKey.decrypt(packet.verifyToken, undefined, undefined, ursa.RSA_PKCS1_PADDING); + if (!bufferEqual(client.verifyToken, verifyToken)) { + client.end('DidNotEncryptVerifyTokenProperly'); + return; + } + var sharedSecret = serverKey.decrypt(packet.sharedSecret, undefined, undefined, ursa.RSA_PKCS1_PADDING); + } catch (e) { client.end('DidNotEncryptVerifyTokenProperly'); return; } - var sharedSecret = serverKey.decrypt(packet.sharedSecret, undefined, undefined, ursa.RSA_PKCS1_PADDING); client.cipher = crypto.createCipheriv('aes-128-cfb8', sharedSecret, sharedSecret); client.decipher = crypto.createDecipheriv('aes-128-cfb8', sharedSecret, sharedSecret); hash.update(sharedSecret);