Home / Class/ OpenSslCachingX509KeyManagerFactory Class — netty Architecture

OpenSslCachingX509KeyManagerFactory Class — netty Architecture

Architecture documentation for the OpenSslCachingX509KeyManagerFactory class in OpenSslCachingX509KeyManagerFactory.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  039deddc_7ae5_913f_4f5b_c27030ff8c4c["OpenSslCachingX509KeyManagerFactory"]
  822d6e65_9f06_e9fc_a125_0de8ba55c421["OpenSslCachingX509KeyManagerFactory.java"]
  039deddc_7ae5_913f_4f5b_c27030ff8c4c -->|defined in| 822d6e65_9f06_e9fc_a125_0de8ba55c421
  7b84a469_d17e_6474_ca22_57d9af3a2227["OpenSslCachingX509KeyManagerFactory()"]
  039deddc_7ae5_913f_4f5b_c27030ff8c4c -->|method| 7b84a469_d17e_6474_ca22_57d9af3a2227
  e6004222_6f94_4ba9_d3c3_ae8743c3860f["OpenSslKeyMaterialProvider()"]
  039deddc_7ae5_913f_4f5b_c27030ff8c4c -->|method| e6004222_6f94_4ba9_d3c3_ae8743c3860f

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/OpenSslCachingX509KeyManagerFactory.java lines 40–80

public final class OpenSslCachingX509KeyManagerFactory extends KeyManagerFactory {

    private final int maxCachedEntries;

    public OpenSslCachingX509KeyManagerFactory(final KeyManagerFactory factory) {
        this(factory, 1024);
    }

    public OpenSslCachingX509KeyManagerFactory(final KeyManagerFactory factory, int maxCachedEntries) {
        super(new KeyManagerFactorySpi() {
            @Override
            protected void engineInit(KeyStore keyStore, char[] chars)
                    throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
                factory.init(keyStore, chars);
            }

            @Override
            protected void engineInit(ManagerFactoryParameters managerFactoryParameters)
                    throws InvalidAlgorithmParameterException {
                factory.init(managerFactoryParameters);
            }

            @Override
            protected KeyManager[] engineGetKeyManagers() {
                return factory.getKeyManagers();
            }
        }, factory.getProvider(), factory.getAlgorithm());
        this.maxCachedEntries = ObjectUtil.checkPositive(maxCachedEntries, "maxCachedEntries");
    }

    OpenSslKeyMaterialProvider newProvider(String password) {
        X509KeyManager keyManager = ReferenceCountedOpenSslContext.chooseX509KeyManager(getKeyManagers());
        if ("sun.security.ssl.X509KeyManagerImpl".equals(keyManager.getClass().getName())) {
            // Don't do caching if X509KeyManagerImpl is used as the returned aliases are not stable and will change
            // between invocations.
            return new OpenSslKeyMaterialProvider(keyManager, password);
        }
        return new OpenSslCachingKeyMaterialProvider(
                ReferenceCountedOpenSslContext.chooseX509KeyManager(getKeyManagers()), password, maxCachedEntries);
    }
}

Frequently Asked Questions

What is the OpenSslCachingX509KeyManagerFactory class?
OpenSslCachingX509KeyManagerFactory is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/OpenSslCachingX509KeyManagerFactory.java.
Where is OpenSslCachingX509KeyManagerFactory defined?
OpenSslCachingX509KeyManagerFactory is defined in handler/src/main/java/io/netty/handler/ssl/OpenSslCachingX509KeyManagerFactory.java at line 40.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free