From 6c2bc5b0696b3c0b4c46a154d188b27e4fb149a4 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Mon, 4 Mar 2019 11:28:11 -0800 Subject: [PATCH 1/2] chore: roll node in particular, this picks up electron/node#70a78f07b, which fixes an issue with incorrect usage of the BN_bn2bin_padded API in boringssl --- DEPS | 2 +- spec/node-spec.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 23f4770e13ea4..8c0c2ff28e204 100644 --- a/DEPS +++ b/DEPS @@ -12,7 +12,7 @@ vars = { 'chromium_version': '73.0.3683.61', 'node_version': - 'fac6d766c143db8db05bb3b0c0871df8f032363c', + '70a78f07b1c4d53f3da462b08cef42a4ff8f949f', 'boto_version': 'f7574aa6cc2c819430c1f05e9a1a1a666ef8169b', 'pyyaml_version': '3.12', diff --git a/spec/node-spec.js b/spec/node-spec.js index fea62025c200e..6d34967212e96 100644 --- a/spec/node-spec.js +++ b/spec/node-spec.js @@ -472,6 +472,24 @@ describe('node feature', () => { const iv = Buffer.from('fedcba9876543210', 'hex') require('crypto').createCipheriv('des-ede-cbc', key, iv) }) + + it('should not crash when getting an ECDH key', () => { + const ecdh = require('crypto').createECDH('prime256v1') + expect(ecdh.getPrivateKey()).to.be.a(Buffer) + }) + + it('should not crash when generating DH keys', () => { + const dh = require('crypto').createDiffieHellman('modp15') + expect(dh.generateKeys()).to.be.a(Buffer) + }) + + it('should not crash when fetching DH parameters', () => { + const dh = require('crypto').createDiffieHellman('modp15') + expect(dh.getPrime()).to.be.a(Buffer) + expect(dh.getGenerator()).to.be.a(Buffer) + expect(dh.getPublicKey()).to.be.a(Buffer) + expect(dh.getPrivateKey()).to.be.a(Buffer) + }) }) it('includes the electron version in process.versions', () => { From 1d3057c2323898ce7c6766159f937bfdce7863c6 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Mon, 4 Mar 2019 13:27:10 -0800 Subject: [PATCH 2/2] fix tests --- spec/node-spec.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/spec/node-spec.js b/spec/node-spec.js index 6d34967212e96..566e906a301db 100644 --- a/spec/node-spec.js +++ b/spec/node-spec.js @@ -475,20 +475,17 @@ describe('node feature', () => { it('should not crash when getting an ECDH key', () => { const ecdh = require('crypto').createECDH('prime256v1') - expect(ecdh.getPrivateKey()).to.be.a(Buffer) + expect(ecdh.generateKeys()).to.be.an.instanceof(Buffer) + expect(ecdh.getPrivateKey()).to.be.an.instanceof(Buffer) }) - it('should not crash when generating DH keys', () => { + it('should not crash when generating DH keys or fetching DH fields', () => { const dh = require('crypto').createDiffieHellman('modp15') - expect(dh.generateKeys()).to.be.a(Buffer) - }) - - it('should not crash when fetching DH parameters', () => { - const dh = require('crypto').createDiffieHellman('modp15') - expect(dh.getPrime()).to.be.a(Buffer) - expect(dh.getGenerator()).to.be.a(Buffer) - expect(dh.getPublicKey()).to.be.a(Buffer) - expect(dh.getPrivateKey()).to.be.a(Buffer) + expect(dh.generateKeys()).to.be.an.instanceof(Buffer) + expect(dh.getPublicKey()).to.be.an.instanceof(Buffer) + expect(dh.getPrivateKey()).to.be.an.instanceof(Buffer) + expect(dh.getPrime()).to.be.an.instanceof(Buffer) + expect(dh.getGenerator()).to.be.an.instanceof(Buffer) }) })