Home / Class/ SimpleKeyManagerFactorySpi Class — netty Architecture

SimpleKeyManagerFactorySpi Class — netty Architecture

Architecture documentation for the SimpleKeyManagerFactorySpi class in SimpleKeyManagerFactory.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  34674136_0ff0_b4f7_08cd_547cf324bc5f["SimpleKeyManagerFactorySpi"]
  1188aec6_2cdc_b81c_6b3c_72e2066903b3["SimpleKeyManagerFactory.java"]
  34674136_0ff0_b4f7_08cd_547cf324bc5f -->|defined in| 1188aec6_2cdc_b81c_6b3c_72e2066903b3
  622be1ba_5d78_aa42_3e34_7867c4299568["init()"]
  34674136_0ff0_b4f7_08cd_547cf324bc5f -->|method| 622be1ba_5d78_aa42_3e34_7867c4299568
  665ea37e_aeef_3d5e_64b4_6170a8521538["engineInit()"]
  34674136_0ff0_b4f7_08cd_547cf324bc5f -->|method| 665ea37e_aeef_3d5e_64b4_6170a8521538
  0c390dac_1113_d718_0c73_80456077c757["engineGetKeyManagers()"]
  34674136_0ff0_b4f7_08cd_547cf324bc5f -->|method| 0c390dac_1113_d718_0c73_80456077c757
  bee45766_2cfa_2e58_9a80_47fa156c9f51["wrapIfNeeded()"]
  34674136_0ff0_b4f7_08cd_547cf324bc5f -->|method| bee45766_2cfa_2e58_9a80_47fa156c9f51

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/util/SimpleKeyManagerFactory.java lines 98–149

    private static final class SimpleKeyManagerFactorySpi extends KeyManagerFactorySpi {

        private SimpleKeyManagerFactory parent;
        private volatile KeyManager[] keyManagers;

        void init(SimpleKeyManagerFactory parent) {
            this.parent = parent;
        }

        @Override
        protected void engineInit(KeyStore keyStore, char[] pwd) throws KeyStoreException {
            try {
                parent.engineInit(keyStore, pwd);
            } catch (KeyStoreException e) {
                throw e;
            } catch (Exception e) {
                throw new KeyStoreException(e);
            }
        }

        @Override
        protected void engineInit(
                ManagerFactoryParameters managerFactoryParameters) throws InvalidAlgorithmParameterException {
            try {
                parent.engineInit(managerFactoryParameters);
            } catch (InvalidAlgorithmParameterException e) {
                throw e;
            } catch (Exception e) {
                throw new InvalidAlgorithmParameterException(e);
            }
        }

        @Override
        protected KeyManager[] engineGetKeyManagers() {
            KeyManager[] keyManagers = this.keyManagers;
            if (keyManagers == null) {
                keyManagers = parent.engineGetKeyManagers();
                wrapIfNeeded(keyManagers);
                this.keyManagers = keyManagers;
            }
            return keyManagers.clone();
        }

        private static void wrapIfNeeded(KeyManager[] keyManagers) {
            for (int i = 0; i < keyManagers.length; i++) {
                final KeyManager tm = keyManagers[i];
                if (tm instanceof X509KeyManager && !(tm instanceof X509ExtendedKeyManager)) {
                    keyManagers[i] = new X509KeyManagerWrapper((X509KeyManager) tm);
                }
            }
        }
    }

Frequently Asked Questions

What is the SimpleKeyManagerFactorySpi class?
SimpleKeyManagerFactorySpi is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/util/SimpleKeyManagerFactory.java.
Where is SimpleKeyManagerFactorySpi defined?
SimpleKeyManagerFactorySpi is defined in handler/src/main/java/io/netty/handler/ssl/util/SimpleKeyManagerFactory.java at line 98.

Analyze Your Own Codebase

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

Try Supermodel Free