Avoid crashing when decrypting fails

This commit is contained in:
roblabla 2015-04-14 12:38:16 +00:00
parent 37e2f10cd7
commit 5806bd5a7d

View File

@ -171,12 +171,17 @@ function createServer(options) {
} }
function onEncryptionKeyResponse(packet) { function onEncryptionKeyResponse(packet) {
var verifyToken = serverKey.decrypt(packet.verifyToken, undefined, undefined, ursa.RSA_PKCS1_PADDING); try {
if (!bufferEqual(client.verifyToken, verifyToken)) { 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'); client.end('DidNotEncryptVerifyTokenProperly');
return; return;
} }
var sharedSecret = serverKey.decrypt(packet.sharedSecret, undefined, undefined, ursa.RSA_PKCS1_PADDING);
client.cipher = crypto.createCipheriv('aes-128-cfb8', sharedSecret, sharedSecret); client.cipher = crypto.createCipheriv('aes-128-cfb8', sharedSecret, sharedSecret);
client.decipher = crypto.createDecipheriv('aes-128-cfb8', sharedSecret, sharedSecret); client.decipher = crypto.createDecipheriv('aes-128-cfb8', sharedSecret, sharedSecret);
hash.update(sharedSecret); hash.update(sharedSecret);