Home / Function/ SniX509KeyManagerFactory() — netty Function Reference

SniX509KeyManagerFactory() — netty Function Reference

Architecture documentation for the SniX509KeyManagerFactory() function in SniClientJava8TestUtil.java from the netty codebase.

Function java Buffer Allocators calls 2 called by 1

Entity Profile

Dependency Diagram

graph TD
  f882bf99_3cd9_9a35_c5f8_5874c37a2048["SniX509KeyManagerFactory()"]
  a72d3a33_546a_77c0_628c_f56e0af014b1["SniX509KeyManagerFactory"]
  f882bf99_3cd9_9a35_c5f8_5874c37a2048 -->|defined in| a72d3a33_546a_77c0_628c_f56e0af014b1
  86227cee_7e5a_5a57_a651_a59222fa026e["KeyManagerFactory()"]
  86227cee_7e5a_5a57_a651_a59222fa026e -->|calls| f882bf99_3cd9_9a35_c5f8_5874c37a2048
  e3ee0985_f02a_54e3_64f8_e4ac6b7f7881["engineInit()"]
  f882bf99_3cd9_9a35_c5f8_5874c37a2048 -->|calls| e3ee0985_f02a_54e3_64f8_e4ac6b7f7881
  9ca4cda7_1660_5ecb_777f_e15c90a21b7f["assertSSLSession()"]
  f882bf99_3cd9_9a35_c5f8_5874c37a2048 -->|calls| 9ca4cda7_1660_5ecb_777f_e15c90a21b7f
  style f882bf99_3cd9_9a35_c5f8_5874c37a2048 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/SniClientJava8TestUtil.java lines 270–345

        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());
        }

Domain

Subdomains

Frequently Asked Questions

What does SniX509KeyManagerFactory() do?
SniX509KeyManagerFactory() is a function 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 270.
What does SniX509KeyManagerFactory() call?
SniX509KeyManagerFactory() calls 2 function(s): assertSSLSession, engineInit.
What calls SniX509KeyManagerFactory()?
SniX509KeyManagerFactory() is called by 1 function(s): KeyManagerFactory.

Analyze Your Own Codebase

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

Try Supermodel Free