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;