keygentoolshed
Version:
Key generation utilities for cryptographic operations. QUANTUM ENCRYPTION FOLDER UPDATE!!! See its folder for all <3
46 lines (41 loc) • 1.26 kB
JavaScript
import crypto from 'crypto';
import fs from 'fs';
import yargs from 'yargs/yargs';
import { hideBin } from 'yargs/helpers';
const argv = yargs(hideBin(process.argv)) // arguments
.option('keymode', {
alias: 'km',
description: 'Choose key mode: RSA or symmetric',
type: 'string',
choices: ['RSA', 'symmetric'],
demandOption: true
})
.help()
.argv;
function generateSymmetricKey() {
const symmetricKey = crypto.randomBytes(32);
fs.writeFileSync('symmetricKey.bin', symmetricKey);
console.log('Generated Symmetric key (RAW):', symmetricKey);
}
function generateRSAKeys() {
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem'
}
});
fs.writeFileSync('publicKey.pem', publicKey);
fs.writeFileSync('privateKey.pem', privateKey);
console.log('Generated RSA Public Key:\n', publicKey);
console.log('Generated RSA Private Key:\n', privateKey);
}
if (argv.keymode === 'symmetric') {
generateSymmetricKey();
} else if (argv.keymode === 'RSA') {
generateRSAKeys();
}