Home / Class/ SniX509KeyManagerFactory Class — netty Architecture

SniX509KeyManagerFactory Class — netty Architecture

Architecture documentation for the SniX509KeyManagerFactory class in SniClientJava8TestUtil.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  a72d3a33_546a_77c0_628c_f56e0af014b1["SniX509KeyManagerFactory"]
  b26d2292_889b_aec4_10cf_88501f539099["SniClientJava8TestUtil.java"]
  a72d3a33_546a_77c0_628c_f56e0af014b1 -->|defined in| b26d2292_889b_aec4_10cf_88501f539099
  f882bf99_3cd9_9a35_c5f8_5874c37a2048["SniX509KeyManagerFactory()"]
  a72d3a33_546a_77c0_628c_f56e0af014b1 -->|method| f882bf99_3cd9_9a35_c5f8_5874c37a2048

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/SniClientJava8TestUtil.java lines 268–346

    private static final class SniX509KeyManagerFactory extends KeyManagerFactory {

        SniX509KeyManagerFactory(final SNIServerName name, final KeyManagerFactory factory) {
            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() {
                    List<KeyManager> managers = new ArrayList<KeyManager>();
                    for (final KeyManager km: factory.getKeyManagers()) {
                        if (km instanceof X509ExtendedKeyManager) {
                            managers.add(new X509ExtendedKeyManager() {
                                @Override
                                public String[] getClientAliases(String s, Principal[] principals) {
                                    return ((X509ExtendedKeyManager) km).getClientAliases(s, principals);
                                }

                                @Override
                                public String chooseClientAlias(String[] strings, Principal[] principals,
                                                                Socket socket) {
                                    return ((X509ExtendedKeyManager) km).chooseClientAlias(strings, principals, socket);
                                }

                                @Override
                                public String[] getServerAliases(String s, Principal[] principals) {
                                    return ((X509ExtendedKeyManager) km).getServerAliases(s, principals);
                                }

                                @Override
                                public String chooseServerAlias(String s, Principal[] principals, Socket socket) {
                                    return ((X509ExtendedKeyManager) km).chooseServerAlias(s, principals, socket);
                                }

                                @Override
                                public X509Certificate[] getCertificateChain(String s) {
                                    return ((X509ExtendedKeyManager) km).getCertificateChain(s);
                                }

                                @Override
                                public PrivateKey getPrivateKey(String s) {
                                    return ((X509ExtendedKeyManager) km).getPrivateKey(s);
                                }

                                @Override
                                public String chooseEngineClientAlias(String[] strings, Principal[] principals,
                                                                      SSLEngine sslEngine) {
                                    return ((X509ExtendedKeyManager) km)
                                            .chooseEngineClientAlias(strings, principals, sslEngine);
                                }

                                @Override
                                public String chooseEngineServerAlias(String s, Principal[] principals,
                                                                      SSLEngine sslEngine) {

                                    SSLSession session = sslEngine.getHandshakeSession();
                                    assertSSLSession(sslEngine.getUseClientMode(), session, name);
                                    return ((X509ExtendedKeyManager) km)
                                            .chooseEngineServerAlias(s, principals, sslEngine);
                                }
                            });
                        } else {
                            managers.add(km);
                        }
                    }
                    return managers.toArray(new KeyManager[0]);
                }
            }, factory.getProvider(), factory.getAlgorithm());
        }
    }

Frequently Asked Questions

What is the SniX509KeyManagerFactory class?
SniX509KeyManagerFactory is a class in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/SniClientJava8TestUtil.java.
Where is SniX509KeyManagerFactory defined?
SniX509KeyManagerFactory is defined in handler/src/test/java/io/netty/handler/ssl/SniClientJava8TestUtil.java at line 268.

Analyze Your Own Codebase

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

Try Supermodel Free