FileDocCategorySizeDatePackage
CertPathBuilder.javaAPI DocAndroid 1.5 API8117Wed May 06 22:41:06 BST 2009java.security.cert

CertPathBuilder

public class CertPathBuilder extends Object
This class implements the functionality of a builder for an unverified Certification Paths from a specified certificate to a trust anchor.
since
Android 1.0

Fields Summary
private static final String
SERVICE
private static org.apache.harmony.security.fortress.Engine
engine
private static final String
PROPERTYNAME
private static final String
DEFAULTPROPERTY
private final Provider
provider
private CertPathBuilderSpi
spiImpl
private final String
algorithm
Constructors Summary
protected CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
Creates a new {@code CertPathBuilder}.

param
builderSpi the implementation delegate.
param
provider the provider.
param
algorithm the desired algorithm available at the provider.
since
Android 1.0


                                                                     
        
              
        this.provider = provider;
        this.algorithm = algorithm;
        this.spiImpl = builderSpi;
    
Methods Summary
public final java.security.cert.CertPathBuilderResultbuild(java.security.cert.CertPathParameters params)
Builds a certification path with the specified algorithm parameters.

param
params the algorithm parameters.
return
the built certification path.
throws
CertPathBuilderException if the build fails.
throws
InvalidAlgorithmParameterException if the specified parameters cannot be used to build with this builder.
see
CertPathBuilderResult
since
Android 1.0

        return spiImpl.engineBuild(params);
    
public final java.lang.StringgetAlgorithm()
Returns the algorithm name of this instance.

return
the algorithm name of this instance.
since
Android 1.0

        return algorithm;
    
public static final java.lang.StringgetDefaultType()
Returns the default {@code CertPathBuilder} type from the Security Properties.

return
the default {@code CertPathBuilder} type from the Security Properties, or the string "{@code PKIX}" if it cannot be determined.
since
Android 1.0

        String defaultType = AccessController
                .doPrivileged(new java.security.PrivilegedAction<String>() {
                    public String run() {
                        return Security.getProperty(PROPERTYNAME);
                    }
                });
        return (defaultType != null ? defaultType : DEFAULTPROPERTY);
    
public static java.security.cert.CertPathBuildergetInstance(java.lang.String algorithm)
Creates a new {@code CertPathBuilder} instance with the specified algorithm.

param
algorithm the name of the algorithm.
return
a builder for the requested algorithm.
throws
NullPointerException if the algorithm is {@code null}.
throws
NoSuchAlgorithmException if no installed provider can provide the algorithm.
since
Android 1.0

        if (algorithm == null) {
            throw new NullPointerException(Messages.getString("security.01")); //$NON-NLS-1$
        }
        synchronized (engine) {
            engine.getInstance(algorithm, null);
            return new CertPathBuilder((CertPathBuilderSpi) engine.spi,
                    engine.provider, algorithm);
        }
    
public static java.security.cert.CertPathBuildergetInstance(java.lang.String algorithm, java.lang.String provider)
Creates a new {@code CertPathBuilder} instance from the specified provider providing the specified algorithm.

param
algorithm the name of the algorithm.
param
provider the name of the provider.
return
a builder for the requested algorithm.
throws
NoSuchAlgorithmException if the specified provider cannot provide the algorithm.
throws
NoSuchProviderException if no provider with the specified name can be found.
throws
NullPointerException if algorithm is {@code null}.
throws
IllegalArgumentException if provider is {@code null} or empty.
since
Android 1.0

        if ((provider == null) || (provider.length() == 0)) {
            throw new IllegalArgumentException(Messages.getString("security.02")); //$NON-NLS-1$
        }
        Provider impProvider = Security.getProvider(provider);
        if (impProvider == null) {
            throw new NoSuchProviderException(provider);
        }
        return getInstance(algorithm, impProvider);

    
public static java.security.cert.CertPathBuildergetInstance(java.lang.String algorithm, java.security.Provider provider)
Creates a new {@code CertPathBuilder} instance from the specified provider providing the specified algorithm.

param
algorithm the name of the algorithm.
param
provider the provider.
return
a builder for the requested algorithm
throws
NoSuchAlgorithmException if the specified provider cannot provide the algorithm.
throws
IllegalArgumentException if provider is {@code null}.
throws
NullPointerException if algorithm is {@code null}.
since
Android 1.0

        if (provider == null) {
            throw new IllegalArgumentException(Messages.getString("security.04")); //$NON-NLS-1$
        }
        if (algorithm == null) {
            throw new NullPointerException(Messages.getString("security.01")); //$NON-NLS-1$
        }
        synchronized (engine) {
            engine.getInstance(algorithm, provider, null);
            return new CertPathBuilder((CertPathBuilderSpi) engine.spi, provider,
                    algorithm);
        }
    
public final java.security.ProvidergetProvider()
Returns the provider of this instance.

return
the provider of this instance.
since
Android 1.0

        return provider;