下面列出了怎么用javax.net.ssl.KeyManagerFactorySpi的API类实例代码及写法,或者点击链接到github查看源代码。
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());
}
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());
}