类javax.net.ssl.KeyManagerFactorySpi源码实例Demo

下面列出了怎么用javax.net.ssl.KeyManagerFactorySpi的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: armeria   文件: CustomAliasKeyManagerFactory.java
CustomAliasKeyManagerFactory(KeyManagerFactory delegate, String alias) {
    super(new KeyManagerFactorySpi() {
        @Override
        protected void engineInit(KeyStore ks, char[] password)
                throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
            delegate.init(ks, password);
        }

        @Override
        protected void engineInit(ManagerFactoryParameters spec) throws InvalidAlgorithmParameterException {
            delegate.init(spec);
        }

        @Override
        protected KeyManager[] engineGetKeyManagers() {
            final KeyManager[] keyManagers = delegate.getKeyManagers().clone();
            for (int i = 0; i < keyManagers.length; i++) {
                if (keyManagers[i] instanceof X509ExtendedKeyManager) {
                    final X509ExtendedKeyManager keyManager = (X509ExtendedKeyManager) keyManagers[i];
                    keyManagers[i] = new CustomAliasX509ExtendedKeyManager(keyManager, alias);
                }
            }
            return keyManagers;
        }
    }, delegate.getProvider(), delegate.getAlgorithm());
}
 
KeySelectingKeyManagerFactory(KeyManagerFactory factory, KeyConfiguration keyConfiguration) {
	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() {

			KeyManager[] keyManagers = factory.getKeyManagers();

			if (keyManagers.length == 1 && keyManagers[0] instanceof X509ExtendedKeyManager) {

				return new KeyManager[] { new KeySelectingX509KeyManager(
						(X509ExtendedKeyManager) keyManagers[0], keyConfiguration) };
			}

			return keyManagers;
		}
	}, factory.getProvider(), factory.getAlgorithm());
}
 
源代码3 项目: armeria   文件: CustomAliasKeyManagerFactory.java
CustomAliasKeyManagerFactory(KeyManagerFactory delegate, String alias) {
    super(new KeyManagerFactorySpi() {
        @Override
        protected void engineInit(KeyStore ks, char[] password)
                throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
            delegate.init(ks, password);
        }

        @Override
        protected void engineInit(ManagerFactoryParameters spec) throws
                                                                 InvalidAlgorithmParameterException {
            delegate.init(spec);
        }

        @Override
        protected KeyManager[] engineGetKeyManagers() {
            final KeyManager[] keyManagers = delegate.getKeyManagers().clone();
            for (int i = 0; i < keyManagers.length; i++) {
                if (keyManagers[i] instanceof X509ExtendedKeyManager) {
                    final X509ExtendedKeyManager keyManager = (X509ExtendedKeyManager) keyManagers[i];
                    keyManagers[i] = new CustomAliasX509ExtendedKeyManager(keyManager, alias);
                }
            }
            return keyManagers;
        }
    }, delegate.getProvider(), delegate.getAlgorithm());
}