Util: Fix up KeyStoreUtil CLI

This commit is contained in:
zzz
2021-02-10 10:04:54 -05:00
parent 48d3f6469d
commit b2655dc86b

View File

@@ -1272,41 +1272,51 @@ public final class KeyStoreUtil {
} }
/** /**
* Usage: KeyStoreUtil (loads from system keystore) * Usage: KeyStoreUtil system (loads from system keystore)
* KeyStoreUtil foo.ks (loads from system keystore, and from foo.ks keystore if exists, else creates empty) * KeyStoreUtil foo.ks (loads from system keystore, and from foo.ks keystore if exists, else creates empty)
* KeyStoreUtil certDir (loads from system keystore and all certs in certDir if exists)
* KeyStoreUtil import file.ks file.key alias keypw (imports private key from file to keystore) * KeyStoreUtil import file.ks file.key alias keypw (imports private key from file to keystore)
* KeyStoreUtil export file.ks alias keypw (exports private key from keystore) * KeyStoreUtil export file.ks alias keypw (exports private key from keystore)
* KeyStoreUtil keygen file.ks alias keypw (create keypair in keystore) * KeyStoreUtil keygen file.ks alias keypw (create keypair in keystore)
* KeyStoreUtil keygen2 file.ks alias keypw (create keypair using I2PProvider) * KeyStoreUtil keygen2 file.ks alias keypw (create keypair using I2PProvider)
*/ */
public static void main(String[] args) { public static void main(String[] args) {
if (args.length <= 0) {
usage();
return;
}
try { try {
if (args.length > 0 && "import".equals(args[0])) { if ("import".equals(args[0])) {
testImport(args); testImport(args);
return; return;
} }
if (args.length > 0 && "export".equals(args[0])) { if ("export".equals(args[0])) {
testExport(args); testExport(args);
return; return;
} }
if (args.length > 0 && "keygen".equals(args[0])) { if ("keygen".equals(args[0])) {
testKeygen(args); testKeygen(args);
return; return;
} }
if (args.length > 0 && "keygen2".equals(args[0])) { if ("keygen2".equals(args[0])) {
testKeygen2(args); testKeygen2(args);
return; return;
} }
if (args.length > 0 && "list".equals(args[0])) { if ("list".equals(args[0])) {
listKeys(args); listKeys(args);
return; return;
} }
File ksf = (args.length > 0) ? new File(args[0]) : null; if ("create".equals(args[0])) {
if (ksf != null && !ksf.exists()) { File ksf = (args.length == 2) ? new File(args[1]) : null;
createKeyStore(ksf, DEFAULT_KEYSTORE_PASSWORD); if (ksf != null && !ksf.exists()) {
System.out.println("Created empty keystore " + ksf); createKeyStore(ksf, DEFAULT_KEYSTORE_PASSWORD);
} else { System.out.println("Created empty keystore " + ksf);
} else {
usage();
}
return;
}
File ksf = new File(args[0]);
if ("system".equals(args[0]) || ksf.isFile()) {
KeyStore ks = loadSystemKeyStore(); KeyStore ks = loadSystemKeyStore();
if (ks != null) { if (ks != null) {
System.out.println("Loaded system keystore"); System.out.println("Loaded system keystore");
@@ -1326,12 +1336,27 @@ public final class KeyStoreUtil {
} else { } else {
System.out.println("FAIL"); System.out.println("FAIL");
} }
return;
} }
usage();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
usage();
} }
} }
private static void usage() {
System.err.println(
"Usage: KeyStoreUtil create keystore.ks (create empty keystore)\n" +
" KeyStoreUtil export keystore.ks alias keypw (exports private key from keystore)\n" +
" KeyStoreUtil import keystore.ks file.key alias keypw (imports private key from file to keystore)\n" +
" KeyStoreUtil keygen keystore.ks alias keypw (create keypair in keystore)\n" +
" KeyStoreUtil keygen2 keystore.ks alias keypw (create keypair using I2PProvider)\n" +
" KeyStoreUtil list keystore.ks (list contents)\n" +
" KeyStoreUtil system (loads from system keystore)\n" +
" KeyStoreUtil keystore.ks (loads from system keystore and from keystore.ks)");
}
private static void testImport(String[] args) throws Exception { private static void testImport(String[] args) throws Exception {
File ksf = new File(args[1]); File ksf = new File(args[1]);
InputStream in = new FileInputStream(args[2]); InputStream in = new FileInputStream(args[2]);
@@ -1343,7 +1368,7 @@ public final class KeyStoreUtil {
private static void testExport(String[] args) throws Exception { private static void testExport(String[] args) throws Exception {
if (args.length != 4) { if (args.length != 4) {
System.err.println("Usage: KeyStoreUtil export keystore.ks keyalias keypassword"); usage();
System.exit(1); System.exit(1);
} }
File ksf = new File(args[1]); File ksf = new File(args[1]);
@@ -1396,7 +1421,7 @@ public final class KeyStoreUtil {
private static void listKeys(String[] args) { private static void listKeys(String[] args) {
if (args.length != 2) { if (args.length != 2) {
System.err.println("Usage: KeyStoreUtil list keystore.ks"); usage();
System.exit(1); System.exit(1);
} }
File ksf = new File(args[1]); File ksf = new File(args[1]);