FileDocCategorySizeDatePackage
KeyManagerFactory.javaAPI DocAndroid 1.5 API9026Wed May 06 22:41:06 BST 2009javax.net.ssl

KeyManagerFactory

public class KeyManagerFactory extends Object
The public API for {@code KeyManagerFactory} implementations.
since
Android 1.0

Fields Summary
private static final String
SERVICE
private static org.apache.harmony.security.fortress.Engine
engine
private static final String
PROPERTY_NAME
private final Provider
provider
private final KeyManagerFactorySpi
spiImpl
private final String
algorithm
Constructors Summary
protected KeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)
Creates a new {@code KeyManagerFactory}.

param
factorySpi the implementation delegate.
param
provider the provider.
param
algorithm the key management algorithm name.
since
Android 1.0


                                                                   
      
                
        this.provider = provider;
        this.algorithm = algorithm;
        this.spiImpl = factorySpi;
    
Methods Summary
public final java.lang.StringgetAlgorithm()
Returns the name of the key management algorithm.

return
the name of the key management algorithm.
since
Android 1.0

        return algorithm;
    
public static final java.lang.StringgetDefaultAlgorithm()
Returns the default key manager factory algorithm name.

The default algorithm name is specified by the security property: {@code 'ssl.KeyManagerFactory.algorithm'}.

return
the default algorithm name.
since
Android 1.0

        return AccessController
                .doPrivileged(new java.security.PrivilegedAction<String>() {
                    public String run() {
                        return Security.getProperty(PROPERTY_NAME);
                    }
                });
    
public static final javax.net.ssl.KeyManagerFactorygetInstance(java.lang.String algorithm)
Creates a new {@code KeyManagerFactory} instance for the specified key management algorithm.

param
algorithm the name of the requested key management algorithm.
return
a key manager factory for the requested algorithm.
throws
NoSuchAlgorithmException if no installed provider can provide the requested algorithm.
throws
NullPointerException if {@code algorithm} is {@code null} (instead of NoSuchAlgorithmException as in 1.4 release)
since
Android 1.0

        if (algorithm == null) {
            throw new NullPointerException("algorith is null");
        }
        synchronized (engine) {
            engine.getInstance(algorithm, null);
            return new KeyManagerFactory((KeyManagerFactorySpi) engine.spi,
                    engine.provider, algorithm);
        }
    
public static final javax.net.ssl.KeyManagerFactorygetInstance(java.lang.String algorithm, java.lang.String provider)
Creates a new {@code KeyManagerFactory} instance for the specified key management algorithm from the specified provider.

param
algorithm the name of the requested key management algorithm name.
param
provider the name of the provider that provides the requested algorithm.
return
a key manager factory for the requested algorithm.
throws
NoSuchAlgorithmException if the specified provider cannot provide the requested algorithm.
throws
NoSuchProviderException if the specified provider does not exist.
throws
NullPointerException if {@code algorithm} is {@code null} (instead of NoSuchAlgorithmException as in 1.4 release)
since
Android 1.0

        if ((provider == null) || (provider.length() == 0)) {
            throw new IllegalArgumentException("Provider is null or empty");
        }
        Provider impProvider = Security.getProvider(provider);
        if (impProvider == null) {
            throw new NoSuchProviderException(provider);
        }
        return getInstance(algorithm, impProvider);
    
public static final javax.net.ssl.KeyManagerFactorygetInstance(java.lang.String algorithm, java.security.Provider provider)
Creates a new {@code KeyManagerFactory} instance for the specified key management algorithm from the specified provider.

param
algorithm the name of the requested key management algorithm name.
param
provider the provider that provides the requested algorithm.
return
a key manager factory for the requested algorithm.
throws
NoSuchAlgorithmException if the specified provider cannot provide the requested algorithm.
throws
NullPointerException if {@code algorithm} is {@code null} (instead of NoSuchAlgorithmException as in 1.4 release)
since
Android 1.0

        if (provider == null) {
            throw new IllegalArgumentException("Provider is null");
        }
        if (algorithm == null) {
            throw new NullPointerException("algorith is null");
        }
        synchronized (engine) {
            engine.getInstance(algorithm, provider, null);
            return new KeyManagerFactory((KeyManagerFactorySpi) engine.spi,
                    provider, algorithm);
        }
    
public final javax.net.ssl.KeyManager[]getKeyManagers()
Returns a list of key managers, one instance for each type of key in the key store.

return
a list of key managers.
since
Android 1.0

        return spiImpl.engineGetKeyManagers();
    
public final java.security.ProvidergetProvider()
Returns the provider for this {@code KeyManagerFactory} instance.

return
the provider for this {@code KeyManagerFactory} instance.
since
Android 1.0

        return provider;
    
public final voidinit(java.security.KeyStore ks, char[] password)
Initializes this instance with the specified key store and password.

param
ks the key store or {@code null} to use the default key store.
param
password the password for the specified key store or {@code null} if no key store is provided.
throws
KeyStoreException if initializing this key manager factory fails.
throws
NoSuchAlgorithmException if a required algorithm is not available.
throws
UnrecoverableKeyException if a key cannot be recovered.
since
Android 1.0

        spiImpl.engineInit(ks, password);
    
public final voidinit(javax.net.ssl.ManagerFactoryParameters spec)
Initializes this instance with the specified factory parameters.

param
spec the factory parameters.
throws
InvalidAlgorithmParameterException if an error occurs.
since
Android 1.0

        spiImpl.engineInit(spec);