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:
parent
f7c9ff507f
commit
c6ef422d99
1 changed files with 24 additions and 7 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue