Skip to content
Snippets Groups Projects
Verified Commit d1eabf35 authored by Louis's avatar Louis :fire:
Browse files

Add command for generating RSA keys

parent 51c433df
No related branches found
No related tags found
No related merge requests found
module.exports = {
command: 'crypto:rsa:generate',
description: 'Generate an RSA key pair, encoded as Base64',
async handler(args) {
const { generateRsaKeys } = require('core/utils/jwt')
const { secureHexString, toBase64 } = require('core/utils/crypto')
const key = await secureHexString(16)
const { pub, priv } = await generateRsaKeys(key)
console.log({
passphrase: key,
public_key: toBase64(pub),
private_key: toBase64(priv),
})
process.exit(0)
},
}
const { generateKeyPair, createPublicKey, createPrivateKey } = require('crypto')
async function generateRsaKeys() {
exports.generateRsaKeys = async (pass = null) => {
const { config } = require('bootstrap')
return new Promise((resolve, reject) => {
generateKeyPair(
......@@ -14,7 +15,7 @@ async function generateRsaKeys() {
type: 'pkcs8',
format: 'pem',
cipher: 'aes-256-cbc',
passphrase: config('app.key'),
passphrase: pass ?? config('app.key'),
},
},
(err, pub, priv) => {
......@@ -27,6 +28,7 @@ async function generateRsaKeys() {
)
})
}
const generateRsaKeys = exports.generateRsaKeys
exports.getKeys = () => {
const { config } = require('bootstrap')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment