private KeyStore newKeystore(int numberOfSignKeypairs, int numberOfEncKeypairs, int numberOfSecretKeys, String serverKeystoreName, CallbackHandler storePassHandler, String serverKeyPairName, String serverKeyPairAliasPrefix) {
try {
String keystoreType = EnvProperties.getEnvOrSysProp(ServerKeyPropertiesConstants.SERVER_KEYSTORE_TYPE, "UBER");
KeystoreBuilder keystoreBuilder = new KeystoreBuilder().withStoreType(keystoreType);
for (int i = 0; i < numberOfSignKeypairs; i++) {
keystoreBuilder = keystoreBuilder.withKeyEntry(newKeyPair(serverKeyPairName,
serverKeyPairAliasPrefix + UUID.randomUUID().toString(),
storePassHandler, keyUsageSignature));
}
for (int i = 0; i < numberOfEncKeypairs; i++) {
keystoreBuilder = keystoreBuilder.withKeyEntry(newKeyPair(serverKeyPairName,
serverKeyPairAliasPrefix + RandomStringUtils.randomAlphanumeric(5).toUpperCase(),
storePassHandler, keyUsageEncryption));
}
for (int i = 0; i < numberOfSecretKeys; i++) {
keystoreBuilder = keystoreBuilder.withKeyEntry(newSecretKey(
serverKeyPairAliasPrefix + RandomStringUtils.randomAlphanumeric(5).toUpperCase(),
storePassHandler));
}
byte[] bs = keystoreBuilder.withStoreId(serverKeystoreName).build(storePassHandler);
ByteArrayInputStream bis = new ByteArrayInputStream(bs);
return KeyStoreUtils.loadKeyStore(bis, serverKeystoreName, keystoreType, storePassHandler);
} catch (Exception e) {
throw new IllegalStateException(e);
}
}