public class KeyStoreTestUtil
extends java.lang.Object
Constructor and Description |
---|
KeyStoreTestUtil() |
Modifier and Type | Method and Description |
---|---|
static void |
cleanupSSLConfig(java.lang.String keystoresDir,
java.lang.String sslConfDir) |
static Configuration |
createClientSSLConfig(java.lang.String clientKS,
java.lang.String password,
java.lang.String keyPassword,
java.lang.String trustKS)
Creates SSL configuration for a client.
|
static void |
createKeyStore(java.lang.String filename,
java.lang.String password,
java.lang.String alias,
java.security.Key privateKey,
java.security.cert.Certificate cert) |
static void |
createKeyStore(java.lang.String filename,
java.lang.String password,
java.lang.String keyPassword,
java.lang.String alias,
java.security.Key privateKey,
java.security.cert.Certificate cert)
Creates a keystore with a single key and saves it to a file.
|
static Configuration |
createServerSSLConfig(java.lang.String serverKS,
java.lang.String password,
java.lang.String keyPassword,
java.lang.String trustKS)
Creates SSL configuration for a server.
|
static <T extends java.security.cert.Certificate> |
createTrustStore(java.lang.String filename,
java.lang.String password,
java.util.Map<java.lang.String,T> certs) |
static void |
createTrustStore(java.lang.String filename,
java.lang.String password,
java.lang.String alias,
java.security.cert.Certificate cert) |
static java.security.cert.X509Certificate |
generateCertificate(java.lang.String dn,
java.security.KeyPair pair,
int days,
java.lang.String algorithm)
Create a self-signed X.509 Certificate.
|
static java.security.KeyPair |
generateKeyPair(java.lang.String algorithm) |
static java.lang.String |
getClasspathDir(java.lang.Class<?> klass) |
static void |
saveConfig(java.io.File file,
Configuration conf)
Saves configuration to a file.
|
static void |
setupSSLConfig(java.lang.String keystoresDir,
java.lang.String sslConfDir,
Configuration conf,
boolean useClientCert)
Performs complete setup of SSL configuration in preparation for testing an
SSLFactory.
|
public static java.lang.String getClasspathDir(java.lang.Class<?> klass) throws java.lang.Exception
java.lang.Exception
public static java.security.cert.X509Certificate generateCertificate(java.lang.String dn, java.security.KeyPair pair, int days, java.lang.String algorithm) throws java.security.cert.CertificateEncodingException, java.security.InvalidKeyException, java.lang.IllegalStateException, java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException, java.security.SignatureException
dn
- the X.509 Distinguished Name, eg "CN=Test, L=London, C=GB"pair
- the KeyPairdays
- how many days from now the Certificate is valid foralgorithm
- the signing algorithm, eg "SHA1withRSA"java.security.cert.CertificateEncodingException
java.security.InvalidKeyException
java.lang.IllegalStateException
java.security.NoSuchProviderException
java.security.NoSuchAlgorithmException
java.security.SignatureException
public static java.security.KeyPair generateKeyPair(java.lang.String algorithm) throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
public static void createKeyStore(java.lang.String filename, java.lang.String password, java.lang.String alias, java.security.Key privateKey, java.security.cert.Certificate cert) throws java.security.GeneralSecurityException, java.io.IOException
java.security.GeneralSecurityException
java.io.IOException
public static void createKeyStore(java.lang.String filename, java.lang.String password, java.lang.String keyPassword, java.lang.String alias, java.security.Key privateKey, java.security.cert.Certificate cert) throws java.security.GeneralSecurityException, java.io.IOException
filename
- String file to savepassword
- String store password to set on keystorekeyPassword
- String key password to set on keyalias
- String alias to use for the keyprivateKey
- Key to save in keystorecert
- Certificate to use as certificate chain associated to keyjava.security.GeneralSecurityException
- for any error with the security APIsjava.io.IOException
- if there is an I/O error saving the filepublic static void createTrustStore(java.lang.String filename, java.lang.String password, java.lang.String alias, java.security.cert.Certificate cert) throws java.security.GeneralSecurityException, java.io.IOException
java.security.GeneralSecurityException
java.io.IOException
public static <T extends java.security.cert.Certificate> void createTrustStore(java.lang.String filename, java.lang.String password, java.util.Map<java.lang.String,T> certs) throws java.security.GeneralSecurityException, java.io.IOException
java.security.GeneralSecurityException
java.io.IOException
public static void cleanupSSLConfig(java.lang.String keystoresDir, java.lang.String sslConfDir) throws java.lang.Exception
java.lang.Exception
public static void setupSSLConfig(java.lang.String keystoresDir, java.lang.String sslConfDir, Configuration conf, boolean useClientCert) throws java.lang.Exception
keystoresDir
- String directory to save keystoressslConfDir
- String directory to save SSL configuration filesconf
- Configuration master configuration to be used by an SSLFactory,
which will be mutated by this methoduseClientCert
- boolean true to make the client present a cert in the
SSL handshakejava.lang.Exception
public static Configuration createClientSSLConfig(java.lang.String clientKS, java.lang.String password, java.lang.String keyPassword, java.lang.String trustKS)
clientKS
- String client keystore filepassword
- String store password, or null to avoid setting store
passwordkeyPassword
- String key password, or null to avoid setting key
passwordtrustKS
- String truststore filepublic static Configuration createServerSSLConfig(java.lang.String serverKS, java.lang.String password, java.lang.String keyPassword, java.lang.String trustKS) throws java.io.IOException
serverKS
- String server keystore filepassword
- String store password, or null to avoid setting store
passwordkeyPassword
- String key password, or null to avoid setting key
passwordtrustKS
- String truststore filejava.io.IOException
public static void saveConfig(java.io.File file, Configuration conf) throws java.io.IOException
file
- File to saveconf
- Configuration contents to write to filejava.io.IOException
- if there is an I/O error saving the file