feat: scripts

This commit is contained in:
2025-04-05 16:57:26 +08:00
parent bd4fe63cdc
commit 3e996ffab3
62 changed files with 4905 additions and 0 deletions

31
scripts/sshkeygen.js Normal file
View File

@@ -0,0 +1,31 @@
#! /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();