Class PKIXBuilderParameters
- All Implemented Interfaces:
Cloneable, CertPathParameters
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.
- Since:
- 1.4
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionPKIXBuilderParameters(KeyStore keystore, CertSelector targetConstraints) Creates an instance ofPKIXBuilderParametersthat populates the set of most-trusted CAs from the trusted certificate entries contained in the specifiedKeyStore.PKIXBuilderParameters(Set<TrustAnchor> trustAnchors, CertSelector targetConstraints) Creates an instance ofPKIXBuilderParameterswith the specifiedSetof most-trusted CAs. -
Method Summary
Modifier and TypeMethodDescriptionintReturns the value of the maximum number of intermediate non-self-issued certificates that may exist in a certification path.voidsetMaxPathLength(int maxPathLength) Sets the value of the maximum number of non-self-issued intermediate certificates that may exist in a certification path.toString()Returns a formatted string describing the parameters.Methods declared in class PKIXParameters
addCertPathChecker, addCertStore, clone, getCertPathCheckers, getCertStores, getDate, getInitialPolicies, getPolicyQualifiersRejected, getSigProvider, getTargetCertConstraints, getTrustAnchors, isAnyPolicyInhibited, isExplicitPolicyRequired, isPolicyMappingInhibited, isRevocationEnabled, setAnyPolicyInhibited, setCertPathCheckers, setCertStores, setDate, setExplicitPolicyRequired, setInitialPolicies, setPolicyMappingInhibited, setPolicyQualifiersRejected, setRevocationEnabled, setSigProvider, setTargetCertConstraints, setTrustAnchorsModifier and TypeMethodDescriptionvoidaddCertPathChecker(PKIXCertPathChecker checker) Adds aPKIXCertPathCheckerto the list of certification path checkers.voidaddCertStore(CertStore store) Adds aCertStoreto the end of the list ofCertStores used in finding certificates and CRLs.clone()Makes a copy of thisPKIXParametersobject.Returns theListof certification path checkers.Returns an immutableListofCertStores that are used to find certificates and CRLs.getDate()Returns the time for which the validity of the certification path should be determined.Returns an immutableSetof initial policy identifiers (OID strings), indicating that any one of these policies would be acceptable to the certificate user for the purposes of certification path processing.booleanGets the PolicyQualifiersRejected flag.Returns the signature provider's name, ornullif not set.Returns the required constraints on the target certificate.Returns an immutableSetof the most-trusted CAs.booleanChecks whether the any policy OID should be processed if it is included in a certificate.booleanChecks if explicit policy is required.booleanChecks if policy mapping is inhibited.booleanChecks the RevocationEnabled flag.voidsetAnyPolicyInhibited(boolean val) Sets state to determine if the any policy OID should be processed if it is included in a certificate.voidsetCertPathCheckers(List<PKIXCertPathChecker> checkers) Sets aListof additional certification path checkers.voidsetCertStores(List<CertStore> stores) Sets the list ofCertStores to be used in finding certificates and CRLs.voidSets the time for which the validity of the certification path should be determined.voidsetExplicitPolicyRequired(boolean val) Sets the ExplicitPolicyRequired flag.voidsetInitialPolicies(Set<String> initialPolicies) Sets theSetof initial policy identifiers (OID strings), indicating that any one of these policies would be acceptable to the certificate user for the purposes of certification path processing.voidsetPolicyMappingInhibited(boolean val) Sets the PolicyMappingInhibited flag.voidsetPolicyQualifiersRejected(boolean qualifiersRejected) Sets the PolicyQualifiersRejected flag.voidsetRevocationEnabled(boolean val) Sets the RevocationEnabled flag.voidsetSigProvider(String sigProvider) Sets the signature provider's name.voidsetTargetCertConstraints(CertSelector selector) Sets the required constraints on the target certificate.voidsetTrustAnchors(Set<TrustAnchor> trustAnchors) Sets theSetof most-trusted CAs.Methods declared in class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitModifier and TypeMethodDescriptionbooleanIndicates whether some other object is "equal to" this one.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class<?> getClass()Returns the runtime class of thisObject.inthashCode()Returns a hash code value for this object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final voidwait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Constructor Details
-
PKIXBuilderParameters
public PKIXBuilderParameters(Set<TrustAnchor> trustAnchors, CertSelector targetConstraints) throws InvalidAlgorithmParameterException Creates an instance ofPKIXBuilderParameterswith the specifiedSetof most-trusted CAs. Each element of the set is aTrustAnchor.Note that the
Setis copied to protect against subsequent modifications.- Parameters:
trustAnchors- aSetofTrustAnchorstargetConstraints- aCertSelectorspecifying the constraints on the target certificate- Throws:
InvalidAlgorithmParameterException- iftrustAnchorsis empty(trustAnchors.isEmpty() == true)NullPointerException- iftrustAnchorsisnullClassCastException- if any of the elements oftrustAnchorsare not of typejava.security.cert.TrustAnchor
-
PKIXBuilderParameters
public PKIXBuilderParameters(KeyStore keystore, CertSelector targetConstraints) throws KeyStoreException, InvalidAlgorithmParameterException Creates an instance ofPKIXBuilderParametersthat populates the set of most-trusted CAs from the trusted certificate entries contained in the specifiedKeyStore. Only keystore entries that contain trustedX509Certificates are considered; all other certificate types are ignored.- Parameters:
keystore- aKeyStorefrom which the set of most-trusted CAs will be populatedtargetConstraints- aCertSelectorspecifying the constraints on the target certificate- Throws:
KeyStoreException- ifkeystorehas not been initializedInvalidAlgorithmParameterException- ifkeystoredoes not contain at least one trusted certificate entryNullPointerException- ifkeystoreisnull
-
-
Method Details
-
setMaxPathLength
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 PKIXCertPathBuilderinstance 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 thepathLenConstraintfield of the extension overrides the maximum path length parameter whenever the result is a certification path of smaller length.- Parameters:
maxPathLength- the maximum number of non-self-issued intermediate certificates that may exist in a certification path- Throws:
InvalidParameterException- ifmaxPathLengthis set to a value less than -1- See Also:
-
getMaxPathLength
public int getMaxPathLength()Returns the value of the maximum number of intermediate non-self-issued certificates that may exist in a certification path. See thesetMaxPathLength(int)method for more details.- Returns:
- 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:
-
toString
Returns a formatted string describing the parameters.- Overrides:
toStringin classPKIXParameters- Returns:
- a formatted string describing the parameters
-