diff --git a/scripts/rsa.js b/scripts/rsa.js new file mode 100644 index 0000000..800191e --- /dev/null +++ b/scripts/rsa.js @@ -0,0 +1,49 @@ +const readline = require('readline'); +const fs = require('fs'); +const path = require('path'); + +// this function will transform RSA private or public key to one line +// USAGE: +// => node ./scripts/rsa.js private_key.key +function main() { + const args = process.argv; + if (args.length <= 2) { + console.log('required pem file argument'); + process.exit(1); + } + + const pemFileArg = args[2]; + const cwd = process.cwd(); + const pemPath = path.join(cwd, pemFileArg); + + if (!fs.existsSync(pemPath)) { + console.log('pem file does not exist'); + process.exit(1); + } + + const pemOut = path.join(cwd, `${pemFileArg}.oneline.txt`); + + try { + const outStream = fs.createWriteStream(pemOut); + const rl = readline.createInterface({ + input: fs.createReadStream(pemPath) + }); + + rl.on('line', (line) => { + outStream.write(line); + outStream.write('\\n'); + }); + + rl.on('close', () => { + outStream.end(); + }); + + + + } catch(err) { + console.log(err); + process.exit(1); + } +} + +main(); \ No newline at end of file diff --git a/testdata/private_key.key b/testdata/private_key.key index 48eb042..3c5f904 100644 --- a/testdata/private_key.key +++ b/testdata/private_key.key @@ -1,28 +1 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCdf18mK2yOJmzT -nY7+WHXR62osAuLAqgk5n8hL0l3CA51dRJIIhqTEH5pUGMKPvTEGYOyd/Ay4Fw67 -t/V+R/zs7mFmhXKHxr1zVf33r1f4N6nBaSGv3lIjBwNu9x+sNvOjh5KbkYsDWlWW -voK9N5phhXoq69kg6t/dAJ9XVAeCl9OerHJctbffwjcC/nv2v2HTjQYVfaMERuiZ -+/O5jRlcHfKJAkCjVcCeXtCoThSBnpgkKD2+uQUCLS/1n7ALMpAr1Es+710dqHZU -xgGRI1Cu9a5sHns1EQgU7Vt10WZe4x0WFAhGLIGzdI2BdagseaRuUFrnRpStzTAy -IIAzJ/47AgMBAAECggEAaDYzWyo4dgZu08bZKuqVawT+B4kRSLI50GstOR5E8284 -3NHWXtXYh/zxPNv1QO7KVZIkfpScReLb2NHsGla/wHYq9I8wLS8PhBVOKmlXJ+KM -7HEH3TqZ1pt5Zh8WUfk6VOYL1+wBs4I+R7RfBZyZBhYvs97CmMlQvwb+Z+Yt4fZS -OI0kUPLEbVMOCw5yuKK0tTgCX3bEt0gWneXYeXXfJXUqBthFFHQOuI/IUl0OyK5F -r5lowqZqO82WnxxsRNnHSp2xetbD7rGHgbuR2uvj2Q4Gjvob7pOAg0cYjYU8e5P1 -bjJrzi1rlgB6ao+NNGZZbRYf7ARWdHamCy/F6GW9wQKBgQDOWjajLih4Oxnjvpne -oRfpl88tmGe4JGa9nVDzgNP/XCCw5K0Fhp9pBpyDD0r8bkaBW678XvS/wPLtDmZa -E5NMuXo8VxuEom2fhHNPkgj9LJq3KMDmA16napjh9b2zHMQACAQSTS8ztZfwIEgR -o3dQraT5xMNP8MfXjs5VJKF+kwKBgQDDZA8/kooBX1Rnlh5OF1oUFirZvkb8hpYO -SL/uukePxGjAKn6UXniAdw/26+OoLpCbaYbg6QpB43ULyKxK7pbnO0EfB+Ta4aKo -OkLaSn4CJze2XaThTFY3oZ5jOoXiz+vdcxWLqJmYf1ZXv1bd5axceDNX3Y7lSR3X -w+XL/EwiuQKBgQCuMTNsPrvE+scZHL3RVJXWB+PJbp0nsfrU1+cNF1RefUvPZ8qz -HniU9RLMA+3d980mx9mIizP6ZwvqlzxJj7rJis0oALRnG6KEhQ++PN2/spaMRSfJ -Q1D07KRQItzXRVIjYKDnPia5dPLkrquH0EEZZuwcOEBTzEM2sQN2lmyJZwKBgBxw -fPOw3Ztzh7KIHCMbrQXNcDE/S8/HuyGbHyydOntHiEOoK8Jmub1hFxbGoN1C4dNt -Ga+028RZWhj7/W/uqFJBwqnEmV/uhaFc0Yw6WXrwwGAv4ybT2JzCTm58/y3TO66A -6LrqMGkM58Ff3UHxAxR2fmqkmf7vlINqRRFayK4pAoGAfuNNgfQS1mzkDtDS3Xxm -tM6+k1Pub+voSqers9lynzmwYnfdTVgNolxFfhdCUa/FdttwVgM5EP3W6M8iT4Bo -mKdVf9GaKyHFAyLUPEYyJeIc1oSpx5EgbNTkAiMGqnJ3lCy8eatdSx7Uxa/A4Wk0 -tR6Njv4HJMbhYxvnsNTyWdQ= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCdf18mK2yOJmzT\nnY7+WHXR62osAuLAqgk5n8hL0l3CA51dRJIIhqTEH5pUGMKPvTEGYOyd/Ay4Fw67\nt/V+R/zs7mFmhXKHxr1zVf33r1f4N6nBaSGv3lIjBwNu9x+sNvOjh5KbkYsDWlWW\nvoK9N5phhXoq69kg6t/dAJ9XVAeCl9OerHJctbffwjcC/nv2v2HTjQYVfaMERuiZ\n+/O5jRlcHfKJAkCjVcCeXtCoThSBnpgkKD2+uQUCLS/1n7ALMpAr1Es+710dqHZU\nxgGRI1Cu9a5sHns1EQgU7Vt10WZe4x0WFAhGLIGzdI2BdagseaRuUFrnRpStzTAy\nIIAzJ/47AgMBAAECggEAaDYzWyo4dgZu08bZKuqVawT+B4kRSLI50GstOR5E8284\n3NHWXtXYh/zxPNv1QO7KVZIkfpScReLb2NHsGla/wHYq9I8wLS8PhBVOKmlXJ+KM\n7HEH3TqZ1pt5Zh8WUfk6VOYL1+wBs4I+R7RfBZyZBhYvs97CmMlQvwb+Z+Yt4fZS\nOI0kUPLEbVMOCw5yuKK0tTgCX3bEt0gWneXYeXXfJXUqBthFFHQOuI/IUl0OyK5F\nr5lowqZqO82WnxxsRNnHSp2xetbD7rGHgbuR2uvj2Q4Gjvob7pOAg0cYjYU8e5P1\nbjJrzi1rlgB6ao+NNGZZbRYf7ARWdHamCy/F6GW9wQKBgQDOWjajLih4Oxnjvpne\noRfpl88tmGe4JGa9nVDzgNP/XCCw5K0Fhp9pBpyDD0r8bkaBW678XvS/wPLtDmZa\nE5NMuXo8VxuEom2fhHNPkgj9LJq3KMDmA16napjh9b2zHMQACAQSTS8ztZfwIEgR\no3dQraT5xMNP8MfXjs5VJKF+kwKBgQDDZA8/kooBX1Rnlh5OF1oUFirZvkb8hpYO\nSL/uukePxGjAKn6UXniAdw/26+OoLpCbaYbg6QpB43ULyKxK7pbnO0EfB+Ta4aKo\nOkLaSn4CJze2XaThTFY3oZ5jOoXiz+vdcxWLqJmYf1ZXv1bd5axceDNX3Y7lSR3X\nw+XL/EwiuQKBgQCuMTNsPrvE+scZHL3RVJXWB+PJbp0nsfrU1+cNF1RefUvPZ8qz\nHniU9RLMA+3d980mx9mIizP6ZwvqlzxJj7rJis0oALRnG6KEhQ++PN2/spaMRSfJ\nQ1D07KRQItzXRVIjYKDnPia5dPLkrquH0EEZZuwcOEBTzEM2sQN2lmyJZwKBgBxw\nfPOw3Ztzh7KIHCMbrQXNcDE/S8/HuyGbHyydOntHiEOoK8Jmub1hFxbGoN1C4dNt\nGa+028RZWhj7/W/uqFJBwqnEmV/uhaFc0Yw6WXrwwGAv4ybT2JzCTm58/y3TO66A\n6LrqMGkM58Ff3UHxAxR2fmqkmf7vlINqRRFayK4pAoGAfuNNgfQS1mzkDtDS3Xxm\ntM6+k1Pub+voSqers9lynzmwYnfdTVgNolxFfhdCUa/FdttwVgM5EP3W6M8iT4Bo\nmKdVf9GaKyHFAyLUPEYyJeIc1oSpx5EgbNTkAiMGqnJ3lCy8eatdSx7Uxa/A4Wk0\ntR6Njv4HJMbhYxvnsNTyWdQ=\n-----END PRIVATE KEY-----\n \ No newline at end of file diff --git a/testdata/public_key.key b/testdata/public_key.key index 9b6a0e4..86e15d9 100644 --- a/testdata/public_key.key +++ b/testdata/public_key.key @@ -1,9 +1 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnX9fJitsjiZs052O/lh1 -0etqLALiwKoJOZ/IS9JdwgOdXUSSCIakxB+aVBjCj70xBmDsnfwMuBcOu7f1fkf8 -7O5hZoVyh8a9c1X9969X+DepwWkhr95SIwcDbvcfrDbzo4eSm5GLA1pVlr6CvTea -YYV6KuvZIOrf3QCfV1QHgpfTnqxyXLW338I3Av579r9h040GFX2jBEbomfvzuY0Z -XB3yiQJAo1XAnl7QqE4UgZ6YJCg9vrkFAi0v9Z+wCzKQK9RLPu9dHah2VMYBkSNQ -rvWubB57NREIFO1bddFmXuMdFhQIRiyBs3SNgXWoLHmkblBa50aUrc0wMiCAMyf+ -OwIDAQAB ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnX9fJitsjiZs052O/lh1\n0etqLALiwKoJOZ/IS9JdwgOdXUSSCIakxB+aVBjCj70xBmDsnfwMuBcOu7f1fkf8\n7O5hZoVyh8a9c1X9969X+DepwWkhr95SIwcDbvcfrDbzo4eSm5GLA1pVlr6CvTea\nYYV6KuvZIOrf3QCfV1QHgpfTnqxyXLW338I3Av579r9h040GFX2jBEbomfvzuY0Z\nXB3yiQJAo1XAnl7QqE4UgZ6YJCg9vrkFAi0v9Z+wCzKQK9RLPu9dHah2VMYBkSNQ\nrvWubB57NREIFO1bddFmXuMdFhQIRiyBs3SNgXWoLHmkblBa50aUrc0wMiCAMyf+\nOwIDAQAB\n-----END PUBLIC KEY-----\n \ No newline at end of file