this version will run with npm start, but when attempting to run the built version behind nginx, it appears to have issues
diffie hellman 
pure js diffie-hellman, same api as node, most hard parts thanks to bn.js by @indutny. In node just returns an object with crypto.createDiffieHellman and crypto.getDiffieHellman in the browser returns a shim. To require the pure JavaScript one in node require('diffie-hellman/browser');;