Another update.
Ok. That hunch payed off... I replaced the SSLContextFactory with the
manual equivalent and it's working now....

My eyes are a bit weary at this point so I can't spot an obvious
difference. Hopefully I'll have a chance to go look at
SSLContextFactory and compare it with this code, there's got to be a
critical difference somewhere.

Anyway, here is the working init code to create the each SSLContext.
This is the only part I changed:

        KeyStore serverKeyStore = KeyStore.getInstance("PKCS12");
        serverKeyStore.load(loader.getResourceAsStream("ssl/server.p12"),
DEFAULT_KEY_PASS.toCharArray());

        KeyStore clientKeyStore = KeyStore.getInstance("PKCS12");
        clientKeyStore.load(loader.getResourceAsStream("ssl/client.p12"),
DEFAULT_KEY_PASS.toCharArray());

        KeyStore trustStore = KeyStore.getInstance("JKS");
        trustStore.load(loader.getResourceAsStream("ssl/trusted.jks"),
DEFAULT_KEY_PASS.toCharArray());

        KeyManagerFactory serverKeyManagerFactory =
KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        serverKeyManagerFactory.init(serverKeyStore,
DEFAULT_KEY_PASS.toCharArray());
        KeyManager[] serverKeyManagers =
serverKeyManagerFactory.getKeyManagers();

        KeyManagerFactory clientKeyManagerFactory =
KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        clientKeyManagerFactory.init(clientKeyStore,
DEFAULT_KEY_PASS.toCharArray());
        KeyManager clientKeyManagers[] =
clientKeyManagerFactory.getKeyManagers();

        TrustManagerFactory serverTrustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        serverTrustManagerFactory.init(trustStore);
        TrustManager[] serverTrustManagers =
serverTrustManagerFactory.getTrustManagers();

        TrustManagerFactory clientTrustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        clientTrustManagerFactory.init(trustStore);
        TrustManager[] clientTrustManagers =
clientTrustManagerFactory.getTrustManagers();

        SSLContext serverSSLContext = SSLContext.getInstance("TLS");
        serverSSLContext.init(serverKeyManagers, serverTrustManagers, null);

        SSLContext clientSSLContext = SSLContext.getInstance("TLS");
        clientSSLContext.init(clientKeyManagers, clientTrustManagers, null);

On Fri, Mar 7, 2008 at 12:07 PM, Mark Renouf <[EMAIL PROTECTED]> wrote:
> Nope, same failure using wantClientAuth, needClientAuth or neither
>
>  I seem to remember now the last time I know I had this code working I
>  was doing the configuration of the SSLContext directly
>  (KeyManagerFactory.getInstance(...), etc...) I'm going to replace that
>  and see what happens. Maybe there is a problem in our case using
>  SSLContextFactory? Or quite possibly, I'm just not using it properly
>  somehow...

Reply via email to