const fs = require('fs'); const path = require('path'); const forge = require('node-forge'); const invariant = require('invariant'); let secretKey; if (process.env.NODE_ENV === 'production') { invariant( process.env.PRIVATE_KEY, 'Missing $PRIVATE_KEY environment variable' ); secretKey = { public: fs.readFileSync( path.resolve(__dirname, '../secret_key.pub'), 'utf8' ), private: process.env.PRIVATE_KEY }; } else { // Generate a random keypair for dev/testing. // See https://gist.github.com/sebadoom/2b70969e70db5da9a203bebd9cff099f const keypair = forge.rsa.generateKeyPair({ bits: 2048 }); secretKey = { public: forge.pki.publicKeyToPem(keypair.publicKey, 72), private: forge.pki.privateKeyToPem(keypair.privateKey, 72) }; } module.exports = secretKey;