31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
#! /usr/bin/env runjs
|
|
|
|
var KeyPairGenerator = java.security.KeyPairGenerator;
|
|
var Bytes = Packages.me.hatter.tools.commons.bytes.Bytes;
|
|
var UnixArgsUtil = Packages.me.hatter.tools.commons.args.UnixArgsUtil;
|
|
var SSHKeyGen = Packages.me.hatter.tools.commons.security.ssh.SSHKeyGen;
|
|
|
|
var main = () => {
|
|
UnixArgsUtil.parseGlobalArgs($ARGS);
|
|
var args = UnixArgsUtil.ARGS.args();
|
|
if (UnixArgsUtil.ARGS.flags().containsAny('h', 'help')) {
|
|
println('sshkeygen.js - Generate SSH keypair.')
|
|
println();
|
|
println('sshkeygen.js [--h[elp]] [-keyLength 4096] [-serverName server_name]');
|
|
return;
|
|
}
|
|
|
|
var kpg = KeyPairGenerator.getInstance("RSA");
|
|
var keyLen = $$.asInt(UnixArgsUtil.ARGS.kvalue('keyLength') || '2048');
|
|
if (keyLen < 1024) {
|
|
println('Key length is less than 1024 bit: ' + keyLen);
|
|
return;
|
|
}
|
|
kpg.initialize(keyLen);
|
|
var kp = kpg.generateKeyPair();
|
|
|
|
println(SSHKeyGen.encodePublicKey(kp.getPublic(), UnixArgsUtil.ARGS.kvalue('serverName') || 'test@example.com'));
|
|
println(Bytes.from(kp.getPrivate().getEncoded()).asPem('PRIVATE KEY'));
|
|
};
|
|
|
|
main(); |