use of javax.net.ssl.KeyManagerFactory in project robovm by robovm.
the class SSLParametersImpl method createDefaultKeyManager.
private static X509KeyManager createDefaultKeyManager() throws KeyManagementException {
try {
String algorithm = KeyManagerFactory.getDefaultAlgorithm();
KeyManagerFactory kmf = KeyManagerFactory.getInstance(algorithm);
kmf.init(null, null);
KeyManager[] kms = kmf.getKeyManagers();
return findX509KeyManager(kms);
} catch (NoSuchAlgorithmException e) {
throw new KeyManagementException(e);
} catch (KeyStoreException e) {
throw new KeyManagementException(e);
} catch (UnrecoverableKeyException e) {
throw new KeyManagementException(e);
}
}
use of javax.net.ssl.KeyManagerFactory in project robovm by robovm.
the class X509KeyManagerTest method test_ChooseClientAlias_KeyType.
private void test_ChooseClientAlias_KeyType(String clientKeyType, String caKeyType, String selectedKeyType, boolean succeeds) throws Exception {
TestKeyStore ca = new TestKeyStore.Builder().keyAlgorithms(caKeyType).build();
TestKeyStore client = new TestKeyStore.Builder().keyAlgorithms(clientKeyType).signer(ca.getPrivateKey(caKeyType, caKeyType)).build();
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(client.keyStore, client.keyPassword);
String[] keyTypes = new String[] { selectedKeyType };
KeyManager[] managers = kmf.getKeyManagers();
for (KeyManager manager : managers) {
if (manager instanceof X509KeyManager) {
String alias = ((X509KeyManager) manager).chooseClientAlias(keyTypes, null, null);
if (succeeds) {
assertNotNull(alias);
} else {
assertNull(alias);
}
}
}
}
use of javax.net.ssl.KeyManagerFactory in project robovm by robovm.
the class MySslContext method test_init$Ljavax_net_ssl_KeyManager$Ljavax_net_ssl_TrustManagerLjava_security_SecureRandom.
/**
* @throws NoSuchAlgorithmException
* @throws KeyStoreException
* @throws FileNotFoundException
* @throws KeyManagementException
* javax.net.ssl.SSLContext#
* init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[],
* java.security.SecureRandom)
*/
public void test_init$Ljavax_net_ssl_KeyManager$Ljavax_net_ssl_TrustManagerLjava_security_SecureRandom() throws Exception {
if (!DEFSupported)
fail(NotSupportMsg);
SSLContextSpi spi = new MySSLContextSpi();
SSLContext sslContext = new MySslContext(spi, defaultProvider, defaultProtocol);
try {
sslContext.createSSLEngine();
fail("Expected RuntimeException was not thrown");
} catch (RuntimeException rte) {
// expected
}
try {
sslContext.init(null, null, null);
fail("KeyManagementException wasn't thrown");
} catch (KeyManagementException kme) {
//expected
}
try {
String tAlg = TrustManagerFactory.getDefaultAlgorithm();
String kAlg = KeyManagerFactory.getDefaultAlgorithm();
if (tAlg == null)
fail("TrustManagerFactory default algorithm is not defined");
if (kAlg == null)
fail("KeyManagerFactory default algorithm is not defined");
KeyManagerFactory kmf = KeyManagerFactory.getInstance(kAlg);
kmf.init(null, new char[11]);
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tAlg);
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
tmf.init(ks);
TrustManager[] tms = tmf.getTrustManagers();
sslContext.init(kmf.getKeyManagers(), tms, new SecureRandom());
} catch (Exception e) {
System.out.println("EE = " + e);
}
}
use of javax.net.ssl.KeyManagerFactory in project robovm by robovm.
the class MySslContext method test_getServerSocketFactory.
/**
* Test for <code>getServerSocketFactory()</code>
* <code>getSocketFactory()</code>
* <code>init(KeyManager[] km, TrustManager[] tm, SecureRandom random)</code>
* methods Assertion: returns correspondent object
*
*/
public void test_getServerSocketFactory() throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
if (!DEFSupported) {
fail(NotSupportMsg);
return;
}
SSLContext[] sslC = createSSLCon();
assertNotNull("SSLContext objects were not created", sslC);
String tAlg = TrustManagerFactory.getDefaultAlgorithm();
String kAlg = KeyManagerFactory.getDefaultAlgorithm();
if (tAlg == null) {
fail("TrustManagerFactory default algorithm is not defined");
return;
}
if (kAlg == null) {
fail("KeyManagerFactory default algorithm is not defined");
return;
}
KeyManagerFactory kmf = KeyManagerFactory.getInstance(kAlg);
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
try {
ks.load(null, null);
} catch (Exception e) {
fail(e + " was thrown for method load(null, null)");
}
kmf.init(ks, new char[10]);
KeyManager[] kms = kmf.getKeyManagers();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tAlg);
tmf.init(ks);
TrustManager[] tms = tmf.getTrustManagers();
for (int i = 0; i < sslC.length; i++) {
sslC[i].init(kms, tms, new SecureRandom());
assertNotNull("No SSLServerSocketFactory available", sslC[i].getServerSocketFactory());
assertNotNull("No SSLSocketFactory available", sslC[i].getSocketFactory());
}
}
use of javax.net.ssl.KeyManagerFactory in project robovm by robovm.
the class SSLContextSpiTest method test_commonTest_02.
/**
* SSLContextSpi#engineCreateSSLEngine()
* SSLContextSpi#engineCreateSSLEngine(String host, int port)
* SSLContextSpi#engineGetClientSessionContext()
* SSLContextSpi#engineGetServerSessionContext()
* SSLContextSpi#engineGetServerSocketFactory()
* SSLContextSpi#engineGetSocketFactory()
*/
public void test_commonTest_02() {
SSLContextSpiImpl ssl = new SSLContextSpiImpl();
String defaultAlgorithm = Security.getProperty("ssl.KeyManagerFactory.algorithm");
try {
KeyManagerFactory kmf = KeyManagerFactory.getInstance(defaultAlgorithm);
char[] pass = "password".toCharArray();
kmf.init(null, pass);
KeyManager[] km = kmf.getKeyManagers();
defaultAlgorithm = Security.getProperty("ssl.TrustManagerFactory.algorithm");
TrustManagerFactory trustMF = TrustManagerFactory.getInstance(defaultAlgorithm);
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(null, null);
trustMF.init(ks);
TrustManager[] tm = trustMF.getTrustManagers();
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
ssl.engineInit(km, tm, sr);
} catch (Exception ex) {
fail(ex + " unexpected exception");
}
try {
assertNotNull("Subtest_01: Object is NULL", ssl.engineCreateSSLEngine());
SSLEngine sleng = ssl.engineCreateSSLEngine("localhost", 1080);
assertNotNull("Subtest_02: Object is NULL", sleng);
assertEquals(sleng.getPeerPort(), 1080);
assertEquals(sleng.getPeerHost(), "localhost");
assertNull("Subtest_03: Object not NULL", ssl.engineGetClientSessionContext());
assertNull("Subtest_04: Object not NULL", ssl.engineGetServerSessionContext());
assertNull("Subtest_05: Object not NULL", ssl.engineGetServerSocketFactory());
assertNull("Subtest_06: Object not NULL", ssl.engineGetSocketFactory());
} catch (Exception e) {
fail("Unexpected exception " + e);
}
}
Aggregations