core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/keystore/impl/BaseKeystoreManager.java [90:131]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            if (keyInstance.isKeystoreLocked()) {
                throw new KeystoreIsLocked("Keystore '" + keyStore
                                + "' is locked; please use the keystore page in the admin console to unlock it");
            }
            if (keyInstance.isKeyLocked(keyAlias)) {
                throw new KeystoreIsLocked("Key '" + keyAlias + "' in keystore '" + keyStore
                                + "' is locked; please use the keystore page in the admin console to unlock it");
            }
        }
        KeystoreInstance trustInstance = trustStore == null ? null : getKeystore(trustStore);
        if (trustInstance != null && trustInstance.isKeystoreLocked()) {
            throw new KeystoreIsLocked("Keystore '" + trustStore
                            + "' is locked; please use the keystore page in the admin console to unlock it");
        }

        // OMG this hurts, but it causes ClassCastExceptions elsewhere unless
        // done this way!
        try {
            /*
            Class cls = loader.loadClass("javax.net.ssl.SSLContext");
            Object ctx = cls.getMethod("getInstance", new Class[] { String.class }).invoke(null,
                            new Object[] { protocol });
            Class kmc = loader.loadClass("[Ljavax.net.ssl.KeyManager;");
            Class tmc = loader.loadClass("[Ljavax.net.ssl.TrustManager;");
            Class src = loader.loadClass("java.security.SecureRandom");
            cls.getMethod("init", new Class[] { kmc, tmc, src }).invoke(
                            ctx,
                            new Object[] { keyInstance == null ? null : keyInstance.getKeyManager(algorithm, keyAlias),
                                            trustInstance == null ? null : trustInstance.getTrustManager(algorithm),
                                            new java.security.SecureRandom() });
            Object result = cls.getMethod("getSocketFactory", new Class[0]).invoke(ctx, new Object[0]);
            return (SSLSocketFactory) result;
            */
            SSLContext context;
            if (provider == null) {
                context = SSLContext.getInstance(protocol);
            } else {
                context = SSLContext.getInstance(protocol, provider);
            }
            context.init(keyInstance == null ? null : keyInstance.getKeyManager(algorithm, keyAlias), 
                         trustInstance == null ? null : trustInstance.getTrustManager(algorithm), 
                                         new SecureRandom());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



core/servicemix-core/src/main/java/org/apache/servicemix/jbi/security/keystore/impl/BaseKeystoreManager.java [169:209]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if (keyInstance.isKeystoreLocked()) {
            throw new KeystoreIsLocked("Keystore '" + keyStore
                            + "' is locked; please use the keystore page in the admin console to unlock it");
        }
        if (keyInstance.isKeyLocked(keyAlias)) {
            throw new KeystoreIsLocked("Key '" + keyAlias + "' in keystore '" + keyStore
                            + "' is locked; please use the keystore page in the admin console to unlock it");
        }
        KeystoreInstance trustInstance = trustStore == null ? null : getKeystore(trustStore);
        if (trustInstance != null && trustInstance.isKeystoreLocked()) {
            throw new KeystoreIsLocked("Keystore '" + trustStore
                            + "' is locked; please use the keystore page in the admin console to unlock it");
        }

        // OMG this hurts, but it causes ClassCastExceptions elsewhere unless
        // done this way!
        try {
            /*
            Class cls = loader.loadClass("javax.net.ssl.SSLContext");
            Object ctx = cls.getMethod("getInstance", new Class[] { String.class }).invoke(null,
                            new Object[] { protocol });
            Class kmc = loader.loadClass("[Ljavax.net.ssl.KeyManager;");
            Class tmc = loader.loadClass("[Ljavax.net.ssl.TrustManager;");
            Class src = loader.loadClass("java.security.SecureRandom");
            cls.getMethod("init", new Class[] { kmc, tmc, src }).invoke(
                            ctx,
                            new Object[] { keyInstance.getKeyManager(algorithm, keyAlias),
                                            trustInstance == null ? null : trustInstance.getTrustManager(algorithm),
                                            new java.security.SecureRandom() });
            Object result = cls.getMethod("getServerSocketFactory", new Class[0]).invoke(ctx, new Object[0]);
            return (SSLServerSocketFactory) result;
            */
            SSLContext context;
            if (provider == null) {
                context = SSLContext.getInstance(protocol);
            } else {
                context = SSLContext.getInstance(protocol, provider);
            }
            context.init(keyInstance == null ? null : keyInstance.getKeyManager(algorithm, keyAlias), 
                         trustInstance == null ? null : trustInstance.getTrustManager(algorithm), 
                                         new SecureRandom());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



