1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-15 04:55:22 +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: * Contributors:
* David McKnight (IBM) - [225507][api][breaking] RSE dstore API leaks non-API types * 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; package org.eclipse.dstore.internal.core.util.ssl;
import java.security.KeyStore; import java.security.KeyStore;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManager;
@ -29,20 +31,35 @@ import org.eclipse.dstore.core.util.ssl.IDataStoreTrustManager;
public class DStoreSSLContext public class DStoreSSLContext
{ {
private static KeyManager[] _keyManagers;
public static void setKeyManager(KeyManager[] keyManagers)
{
_keyManagers = keyManagers;
}
public static SSLContext getServerSSLContext(String filePath, String password) public static SSLContext getServerSSLContext(String filePath, String password)
{ {
SSLContext serverContext = null; SSLContext serverContext = null;
try try
{ {
KeyStore ks = DStoreKeyStore.getKeyStore(filePath, password); if (_keyManagers == null)
String keymgrAlgorithm = KeyManagerFactory.getDefaultAlgorithm(); {
KeyManagerFactory kmf = KeyManagerFactory.getInstance(keymgrAlgorithm); KeyStore ks = DStoreKeyStore.getKeyStore(filePath, password);
kmf.init(ks, password.toCharArray()); String keymgrAlgorithm = KeyManagerFactory.getDefaultAlgorithm();
KeyManagerFactory kmf = KeyManagerFactory.getInstance(keymgrAlgorithm);
kmf.init(ks, password.toCharArray());
serverContext = SSLContext.getInstance("SSL"); //$NON-NLS-1$ serverContext = SSLContext.getInstance("SSL"); //$NON-NLS-1$
serverContext.init(kmf.getKeyManagers(), null, null); serverContext.init(kmf.getKeyManagers(), null, null);
}
else
{
serverContext = SSLContext.getInstance("SSL"); //$NON-NLS-1$
serverContext.init(_keyManagers, null, null);
}
} }
catch (Exception e) catch (Exception e)
{ {
@ -64,7 +81,7 @@ public class DStoreSSLContext
mgrs[0] = trustManager; mgrs[0] = trustManager;
clientContext.init(null, mgrs, null); clientContext.init(_keyManagers, mgrs, null);
} }
catch (Exception e) catch (Exception e)
{ {