Commit 25c09adb authored by Guus der Kinderen's avatar Guus der Kinderen

OF-946: Setting Provider explicitly to pass unit est.

parent 4ca263d0
package org.jivesoftware.openfire.keystore; package org.jivesoftware.openfire.keystore;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.jivesoftware.openfire.net.SSLConfig; import org.jivesoftware.openfire.net.SSLConfig;
import org.jivesoftware.util.CertificateEventListener; import org.jivesoftware.util.CertificateEventListener;
import org.jivesoftware.util.JiveGlobals; import org.jivesoftware.util.JiveGlobals;
...@@ -12,9 +13,7 @@ import java.io.FileOutputStream; ...@@ -12,9 +13,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.security.KeyStore; import java.security.*;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.Certificate; import java.security.cert.Certificate;
import java.security.cert.CertificateException; import java.security.cert.CertificateException;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
...@@ -39,6 +38,14 @@ public abstract class CertificateStoreConfig ...@@ -39,6 +38,14 @@ public abstract class CertificateStoreConfig
{ {
private static final Logger Log = LoggerFactory.getLogger( CertificateStoreConfig.class ); private static final Logger Log = LoggerFactory.getLogger( CertificateStoreConfig.class );
protected static final Provider PROVIDER = new BouncyCastleProvider();
static
{
// Add the BC provider to the list of security providers
Security.addProvider( PROVIDER );
}
protected final KeyStore store; protected final KeyStore store;
protected final char[] password; protected final char[] password;
protected final String canonicalPath; protected final String canonicalPath;
......
...@@ -41,14 +41,6 @@ public class IdentityStoreConfig extends CertificateStoreConfig ...@@ -41,14 +41,6 @@ public class IdentityStoreConfig extends CertificateStoreConfig
{ {
private static final Logger Log = LoggerFactory.getLogger( IdentityStoreConfig.class ); private static final Logger Log = LoggerFactory.getLogger( IdentityStoreConfig.class );
private static final Provider PROVIDER = new BouncyCastleProvider();
static
{
// Add the BC provider to the list of security providers
Security.addProvider( PROVIDER );
}
protected final KeyManagerFactory keyFactory; protected final KeyManagerFactory keyFactory;
public IdentityStoreConfig( String path, String password, String type, boolean createIfAbsent ) throws CertificateStoreConfigException public IdentityStoreConfig( String path, String password, String type, boolean createIfAbsent ) throws CertificateStoreConfigException
...@@ -57,7 +49,7 @@ public class IdentityStoreConfig extends CertificateStoreConfig ...@@ -57,7 +49,7 @@ public class IdentityStoreConfig extends CertificateStoreConfig
try try
{ {
keyFactory = KeyManagerFactory.getInstance( KeyManagerFactory.getDefaultAlgorithm() ); keyFactory = KeyManagerFactory.getInstance( KeyManagerFactory.getDefaultAlgorithm(), PROVIDER );
keyFactory.init( store, password.toCharArray() ); keyFactory.init( store, password.toCharArray() );
} }
catch ( UnrecoverableKeyException | NoSuchAlgorithmException | KeyStoreException ex ) catch ( UnrecoverableKeyException | NoSuchAlgorithmException | KeyStoreException ex )
......
package org.jivesoftware.openfire.keystore; package org.jivesoftware.openfire.keystore;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.jivesoftware.util.CertificateManager; import org.jivesoftware.util.CertificateManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -9,6 +10,7 @@ import javax.net.ssl.TrustManagerFactory; ...@@ -9,6 +10,7 @@ import javax.net.ssl.TrustManagerFactory;
import java.io.IOException; import java.io.IOException;
import java.security.KeyStoreException; import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.security.Provider;
import java.security.cert.*; import java.security.cert.*;
import java.util.*; import java.util.*;
...@@ -36,8 +38,8 @@ public class TrustStoreConfig extends CertificateStoreConfig ...@@ -36,8 +38,8 @@ public class TrustStoreConfig extends CertificateStoreConfig
try try
{ {
certPathValidator = CertPathValidator.getInstance( "PKIX" ); certPathValidator = CertPathValidator.getInstance( "PKIX", PROVIDER );
certificateFactory = CertificateFactory.getInstance( "X.509" ); certificateFactory = CertificateFactory.getInstance( "X.509", PROVIDER );
trustFactory = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm() ); trustFactory = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm() );
trustFactory.init( store ); trustFactory.init( store );
} }
......
...@@ -122,7 +122,7 @@ public class TrustStoreConfigTest ...@@ -122,7 +122,7 @@ public class TrustStoreConfigTest
// Setup fixture. // Setup fixture.
// Execute system under test. // Execute system under test.
final Set<X509Certificate> result = trustStoreConfig.getAllCertificates(); final Map<String, X509Certificate> result = trustStoreConfig.getAllCertificates();
// Verify results. // Verify results.
Assert.assertEquals( 2, result.size() ); Assert.assertEquals( 2, result.size() );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment