UNPKG

keygentoolshed

Version:

Key generation utilities for cryptographic operations. QUANTUM ENCRYPTION FOLDER UPDATE!!! See its folder for all <3

47 lines (39 loc) 1.41 kB
import { Kyber } from 'kyber-crystals'; import yargs from 'yargs/yargs'; import { hideBin } from 'yargs/helpers'; import fs from 'fs'; async function generateKyberKeys(length, secure) { try { const kyber = new Kyber(length); const { publicKey, privateKey } = kyber.keyPair(); console.log(`Kyber-${length} Key Pair Generated`); console.log("Public Key (RAW):", publicKey); console.log("Private Key (RAW):", privateKey); if (secure) { console.log("Secure Mode Enabled: Saving keys to files."); fs.writeFileSync(`kyber_${length}_pubkey.raw`, publicKey); fs.writeFileSync(`kyber_${length}_privkey.raw`, privateKey); } return { publicKey, privateKey }; } catch (error) { console.error(`Key Generation Failed: ${error.message}`); } } async function main() { const argv = yargs(hideBin(process.argv)) .option('length', { alias: 'l', type: 'number', demandOption: true, describe: 'The length of the key (512, 768, 1024)' }) .option('secure', { alias: 's', type: 'boolean', default: false, describe: 'Save keys as raw binary files' }) .argv; await generateKyberKeys(argv.length, argv.secure); } main();