APIdia Launch Partner
Top Description Fields Constructors Methods
java.security.cert

public Class PKIXBuilderParameters

extends PKIXParameters
Class Inheritance
Known Direct Subclasses
sun.security.provider.certpath.PKIXExtendedParameters
Imports
java.security.KeyStore, .KeyStoreException, .InvalidAlgorithmParameterException, .InvalidParameterException, java.util.Set

Parameters used as input for the PKIX CertPathBuilder algorithm.

A PKIX CertPathBuilder uses these parameters to build a CertPath which has been validated according to the PKIX certification path validation algorithm.

To instantiate a PKIXBuilderParameters object, an application must specify one or more most-trusted CAs as defined by the PKIX certification path validation algorithm. The most-trusted CA can be specified using one of two constructors. An application can call PKIXBuilderParameters(Set, CertSelector), specifying a Set of TrustAnchor objects, each of which identifies a most-trusted CA. Alternatively, an application can call PKIXBuilderParameters(KeyStore, CertSelector), specifying a KeyStore instance containing trusted certificate entries, each of which will be considered as a most-trusted CA.

In addition, an application must specify constraints on the target certificate that the CertPathBuilder will attempt to build a path to. The constraints are specified as a CertSelector object. These constraints should provide the CertPathBuilder with enough search criteria to find the target certificate. Minimal criteria for an X509Certificate usually include the subject name and/or one or more subject alternative names. If enough criteria is not specified, the CertPathBuilder may throw a CertPathBuilderException.

Concurrent Access

Unless otherwise specified, the methods defined in this class are not thread-safe. Multiple threads that need to access a single object concurrently should synchronize amongst themselves and provide the necessary locking. Multiple threads each manipulating separate objects need not synchronize.

Author
Sean Mullan
Since
1.4
See Also
CertPathBuilder

Field Summary

Modifier and TypeField and Description
private int

Constructor Summary

AccessConstructor and Description
public
PKIXBuilderParameters(Set<TrustAnchor>
a Set of TrustAnchors
trustAnchors
,
CertSelector
a CertSelector specifying the constraints on the target certificate
targetConstraints
)

Creates an instance of PKIXBuilderParameters with the specified Set of most-trusted CAs.

public
PKIXBuilderParameters(KeyStore
a KeyStore from which the set of most-trusted CAs will be populated
keystore
,
CertSelector
a CertSelector specifying the constraints on the target certificate
targetConstraints
)

Creates an instance of PKIXBuilderParameters that populates the set of most-trusted CAs from the trusted certificate entries contained in the specified KeyStore.

Method Summary

Modifier and TypeMethod and Description
public int

Returns:

the maximum number of non-self-issued intermediate certificates that may exist in a certification path, or -1 if there is no limit
getMaxPathLength
()

Returns the value of the maximum number of intermediate non-self-issued certificates that may exist in a certification path.

public void
setMaxPathLength(int
the maximum number of non-self-issued intermediate certificates that may exist in a certification path
maxPathLength
)

Sets the value of the maximum number of non-self-issued intermediate certificates that may exist in a certification path.

public String

Returns:

a formatted string describing the parameters
toString
()

Overrides java.security.cert.PKIXParameters.toString.

Returns a formatted string describing the parameters.

Inherited from java.security.cert.PKIXParameters:
addCertPathCheckeraddCertStoreclonegetCertPathCheckersgetCertStoresgetDategetInitialPoliciesgetPolicyQualifiersRejectedgetSigProvidergetTargetCertConstraintsgetTrustAnchorsisAnyPolicyInhibitedisExplicitPolicyRequiredisPolicyMappingInhibitedisRevocationEnabledsetAnyPolicyInhibitedsetCertPathCheckerssetCertStoressetDatesetExplicitPolicyRequiredsetInitialPoliciessetPolicyMappingInhibitedsetPolicyQualifiersRejectedsetRevocationEnabledsetSigProvidersetTargetCertConstraintssetTrustAnchors

Field Detail

maxPathLengthback to summary
private int maxPathLength

Constructor Detail

PKIXBuilderParametersback to summary
public PKIXBuilderParameters(Set<TrustAnchor> trustAnchors, CertSelector targetConstraints) throws InvalidAlgorithmParameterException

Creates an instance of PKIXBuilderParameters with the specified Set of most-trusted CAs. Each element of the set is a TrustAnchor.

Note that the Set is copied to protect against subsequent modifications.

Parameters
trustAnchors:Set<TrustAnchor>

a Set of TrustAnchors

targetConstraints:CertSelector

a CertSelector specifying the constraints on the target certificate

Annotations
@SuppressWarnings:this-escape
Exceptions
InvalidAlgorithmParameterException:
if trustAnchors is empty (trustAnchors.isEmpty() == true)
NullPointerException:
if trustAnchors is null
ClassCastException:
if any of the elements of trustAnchors are not of type java.security.cert.TrustAnchor
PKIXBuilderParametersback to summary
public PKIXBuilderParameters(KeyStore keystore, CertSelector targetConstraints) throws KeyStoreException, InvalidAlgorithmParameterException

Creates an instance of PKIXBuilderParameters that populates the set of most-trusted CAs from the trusted certificate entries contained in the specified KeyStore. Only keystore entries that contain trusted X509Certificates are considered; all other certificate types are ignored.

Parameters
keystore:KeyStore

a KeyStore from which the set of most-trusted CAs will be populated

targetConstraints:CertSelector

a CertSelector specifying the constraints on the target certificate

Annotations
@SuppressWarnings:this-escape
Exceptions
KeyStoreException:
if keystore has not been initialized
InvalidAlgorithmParameterException:
if keystore does not contain at least one trusted certificate entry
NullPointerException:
if keystore is null

Method Detail

getMaxPathLengthback to summary
public int getMaxPathLength()

Returns the value of the maximum number of intermediate non-self-issued certificates that may exist in a certification path. See the setMaxPathLength method for more details.

Returns:int

the maximum number of non-self-issued intermediate certificates that may exist in a certification path, or -1 if there is no limit

See Also
setMaxPathLength
setMaxPathLengthback to summary
public void setMaxPathLength(int maxPathLength)

Sets the value of the maximum number of non-self-issued intermediate certificates that may exist in a certification path. A certificate is self-issued if the DNs that appear in the subject and issuer fields are identical and are not empty. Note that the last certificate in a certification path is not an intermediate certificate, and is not included in this limit. Usually the last certificate is an end entity certificate, but it can be a CA certificate. A PKIX CertPathBuilder instance must not build paths longer than the length specified.

A value of 0 implies that the path can only contain a single certificate. A value of -1 implies that the path length is unconstrained (i.e. there is no maximum). The default maximum path length, if not specified, is 5. Setting a value less than -1 will cause an exception to be thrown.

If any of the CA certificates contain the BasicConstraintsExtension, the value of the pathLenConstraint field of the extension overrides the maximum path length parameter whenever the result is a certification path of smaller length.

Parameters
maxPathLength:int

the maximum number of non-self-issued intermediate certificates that may exist in a certification path

Exceptions
InvalidParameterException:
if maxPathLength is set to a value less than -1
See Also
getMaxPathLength
toStringback to summary
public String toString()

Overrides java.security.cert.PKIXParameters.toString.

Returns a formatted string describing the parameters.

Returns:String

a formatted string describing the parameters