1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-03 07:05:24 +02:00

[259905][api] Provide a facility to use its own keystore

This commit is contained in:
David McKnight 2009-01-05 15:26:36 +00:00
parent f7c9ff507f
commit c6ef422d99

View file

@ -13,12 +13,14 @@
*
* Contributors:
* David McKnight (IBM) - [225507][api][breaking] RSE dstore API leaks non-API types
* Noriaki Takatsu (IBM) - [259905][api] Provide a facility to use its own keystore
*******************************************************************************/
package org.eclipse.dstore.internal.core.util.ssl;
import java.security.KeyStore;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
@ -29,20 +31,35 @@ import org.eclipse.dstore.core.util.ssl.IDataStoreTrustManager;
public class DStoreSSLContext
{
private static KeyManager[] _keyManagers;
public static void setKeyManager(KeyManager[] keyManagers)
{
_keyManagers = keyManagers;
}
public static SSLContext getServerSSLContext(String filePath, String password)
{
SSLContext serverContext = null;
try
{
KeyStore ks = DStoreKeyStore.getKeyStore(filePath, password);
String keymgrAlgorithm = KeyManagerFactory.getDefaultAlgorithm();
KeyManagerFactory kmf = KeyManagerFactory.getInstance(keymgrAlgorithm);
kmf.init(ks, password.toCharArray());
if (_keyManagers == null)
{
KeyStore ks = DStoreKeyStore.getKeyStore(filePath, password);
String keymgrAlgorithm = KeyManagerFactory.getDefaultAlgorithm();
KeyManagerFactory kmf = KeyManagerFactory.getInstance(keymgrAlgorithm);
kmf.init(ks, password.toCharArray());
serverContext = SSLContext.getInstance("SSL"); //$NON-NLS-1$
serverContext.init(kmf.getKeyManagers(), null, null);
serverContext = SSLContext.getInstance("SSL"); //$NON-NLS-1$
serverContext.init(kmf.getKeyManagers(), null, null);
}
else
{
serverContext = SSLContext.getInstance("SSL"); //$NON-NLS-1$
serverContext.init(_keyManagers, null, null);
}
}
catch (Exception e)
{
@ -64,7 +81,7 @@ public class DStoreSSLContext
mgrs[0] = trustManager;
clientContext.init(null, mgrs, null);
clientContext.init(_keyManagers, mgrs, null);
}
catch (Exception e)
{