UNPKG

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
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(); }