forked from I2P_Developers/i2p.i2p
Router: Add CLI tool to generate family keys
This commit is contained in:
@ -20,6 +20,7 @@ public class CommandLine extends net.i2p.util.CommandLine {
|
|||||||
"net.i2p.router.Router",
|
"net.i2p.router.Router",
|
||||||
"net.i2p.router.RouterLaunch",
|
"net.i2p.router.RouterLaunch",
|
||||||
"net.i2p.router.RouterVersion",
|
"net.i2p.router.RouterVersion",
|
||||||
|
"net.i2p.router.crypto.FamilyKeyCrypto",
|
||||||
"net.i2p.router.naming.BlockfileNamingService",
|
"net.i2p.router.naming.BlockfileNamingService",
|
||||||
"net.i2p.router.peermanager.ProfileOrganizer",
|
"net.i2p.router.peermanager.ProfileOrganizer",
|
||||||
"net.i2p.router.tasks.CryptoChecker",
|
"net.i2p.router.tasks.CryptoChecker",
|
||||||
|
@ -486,4 +486,35 @@ public class FamilyKeyCrypto {
|
|||||||
throw new GeneralSecurityException("Error loading family key " + _fname, ioe);
|
throw new GeneralSecurityException("Error loading family key " + _fname, ioe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @since 0.9.36 */
|
||||||
|
public static void main(String[] args) {
|
||||||
|
if (args.length != 2) {
|
||||||
|
System.err.println("Usage: FamilyKeyCrypto keystore.ks familyname");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
File ks = new File(args[0]);
|
||||||
|
if (ks.exists()) {
|
||||||
|
System.err.println("Keystore already exists: " + ks);
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
String fname = args[1];
|
||||||
|
String cname = fname + CN_SUFFIX;
|
||||||
|
String keyPassword = KeyStoreUtil.randomString();
|
||||||
|
try {
|
||||||
|
KeyStoreUtil.createKeysAndCRL(ks, KeyStoreUtil.DEFAULT_KEYSTORE_PASSWORD, fname, cname, "family",
|
||||||
|
DEFAULT_KEY_VALID_DAYS, DEFAULT_KEY_ALGORITHM,
|
||||||
|
DEFAULT_KEY_SIZE, keyPassword);
|
||||||
|
System.out.println("Family keys generated and saved in " + ks + '\n' +
|
||||||
|
"Copy to " + KS_DIR + '/' + KEYSTORE_PREFIX + fname + KEYSTORE_SUFFIX + " in the i2p configuration directory\n" +
|
||||||
|
"Family key configuration for router.config:\n" +
|
||||||
|
PROP_FAMILY_NAME + '=' + fname + '\n' +
|
||||||
|
PROP_KEYSTORE_PASSWORD + '=' + KeyStoreUtil.DEFAULT_KEYSTORE_PASSWORD + '\n' +
|
||||||
|
PROP_KEY_PASSWORD + '=' + keyPassword);
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Failed");
|
||||||
|
e.printStackTrace();
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user