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