java.security.cert
Class X509CertSelector

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.security.cert.X509CertSelector
All Implemented Interfaces:
Cloneable sample code for java.lang.Cloneable definition code for java.lang.Cloneable , CertSelector sample code for java.security.cert.CertSelector definition code for java.security.cert.CertSelector

public class X509CertSelector
extends Object sample code for java.lang.Object definition code for java.lang.Object
implements CertSelector sample code for java.security.cert.CertSelector definition code for java.security.cert.CertSelector

A CertSelector that selects X509Certificates that match all specified criteria. This class is particularly useful when selecting certificates from a CertStore to build a PKIX-compliant certification path.

When first constructed, an X509CertSelector has no criteria enabled and each of the get methods return a default value (null, or -1 for the getBasicConstraints sample code for java.security.cert.X509CertSelector.getBasicConstraints() definition code for java.security.cert.X509CertSelector.getBasicConstraints() method). Therefore, the match sample code for java.security.cert.X509CertSelector.match(java.security.cert.Certificate) definition code for java.security.cert.X509CertSelector.match(java.security.cert.Certificate) method would return true for any X509Certificate. Typically, several criteria are enabled (by calling setIssuer sample code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) or setKeyUsage sample code for java.security.cert.X509CertSelector.setKeyUsage(boolean[]) definition code for java.security.cert.X509CertSelector.setKeyUsage(boolean[]) , for instance) and then the X509CertSelector is passed to CertStore.getCertificates sample code for java.security.cert.CertStore.getCertificates(java.security.cert.CertSelector) definition code for java.security.cert.CertStore.getCertificates(java.security.cert.CertSelector) or some similar method.

Several criteria can be enabled (by calling setIssuer sample code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) and setSerialNumber sample code for java.security.cert.X509CertSelector.setSerialNumber(java.math.BigInteger) definition code for java.security.cert.X509CertSelector.setSerialNumber(java.math.BigInteger) , for example) such that the match method usually uniquely matches a single X509Certificate. We say usually, since it is possible for two issuing CAs to have the same distinguished name and each issue a certificate with the same serial number. Other unique combinations include the issuer, subject, subjectKeyIdentifier and/or the subjectPublicKey criteria.

Please refer to RFC 2459 for definitions of the X.509 certificate extensions mentioned below.

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:
CertSelector sample code for java.security.cert.CertSelector definition code for java.security.cert.CertSelector , X509Certificate sample code for java.security.cert.X509Certificate definition code for java.security.cert.X509Certificate

Constructor Summary
X509CertSelector sample code for java.security.cert.X509CertSelector.X509CertSelector() definition code for java.security.cert.X509CertSelector.X509CertSelector() ()
          Creates an X509CertSelector.
 
Method Summary
 void addPathToName sample code for java.security.cert.X509CertSelector.addPathToName(int, byte[]) definition code for java.security.cert.X509CertSelector.addPathToName(int, byte[]) (int type, byte[] name)
          Adds a name to the pathToNames criterion.
 void addPathToName sample code for java.security.cert.X509CertSelector.addPathToName(int, java.lang.String) definition code for java.security.cert.X509CertSelector.addPathToName(int, java.lang.String) (int type, String sample code for java.lang.String definition code for java.lang.String  name)
          Adds a name to the pathToNames criterion.
 void addSubjectAlternativeName sample code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, byte[]) definition code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, byte[]) (int type, byte[] name)
          Adds a name to the subjectAlternativeNames criterion.
 void addSubjectAlternativeName sample code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, java.lang.String) definition code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, java.lang.String) (int type, String sample code for java.lang.String definition code for java.lang.String  name)
          Adds a name to the subjectAlternativeNames criterion.
 Object sample code for java.lang.Object definition code for java.lang.Object clone sample code for java.security.cert.X509CertSelector.clone() definition code for java.security.cert.X509CertSelector.clone() ()
          Returns a copy of this object.
 byte[] getAuthorityKeyIdentifier sample code for java.security.cert.X509CertSelector.getAuthorityKeyIdentifier() definition code for java.security.cert.X509CertSelector.getAuthorityKeyIdentifier() ()
          Returns the authorityKeyIdentifier criterion.
 int getBasicConstraints sample code for java.security.cert.X509CertSelector.getBasicConstraints() definition code for java.security.cert.X509CertSelector.getBasicConstraints() ()
          Returns the basic constraints constraint.
 X509Certificate sample code for java.security.cert.X509Certificate definition code for java.security.cert.X509Certificate getCertificate sample code for java.security.cert.X509CertSelector.getCertificate() definition code for java.security.cert.X509CertSelector.getCertificate() ()
          Returns the certificateEquals criterion.
 Date sample code for java.util.Date definition code for java.util.Date getCertificateValid sample code for java.security.cert.X509CertSelector.getCertificateValid() definition code for java.security.cert.X509CertSelector.getCertificateValid() ()
          Returns the certificateValid criterion.
 Set sample code for java.util.Set definition code for java.util.Set <String sample code for java.lang.String definition code for java.lang.String > getExtendedKeyUsage sample code for java.security.cert.X509CertSelector.getExtendedKeyUsage() definition code for java.security.cert.X509CertSelector.getExtendedKeyUsage() ()
          Returns the extendedKeyUsage criterion.
 X500Principal sample code for javax.security.auth.x500.X500Principal definition code for javax.security.auth.x500.X500Principal getIssuer sample code for java.security.cert.X509CertSelector.getIssuer() definition code for java.security.cert.X509CertSelector.getIssuer() ()
          Returns the issuer criterion as an X500Principal.
 byte[] getIssuerAsBytes sample code for java.security.cert.X509CertSelector.getIssuerAsBytes() definition code for java.security.cert.X509CertSelector.getIssuerAsBytes() ()
          Returns the issuer criterion as a byte array.
 String sample code for java.lang.String definition code for java.lang.String getIssuerAsString sample code for java.security.cert.X509CertSelector.getIssuerAsString() definition code for java.security.cert.X509CertSelector.getIssuerAsString() ()
          Denigrated, use getIssuer() sample code for java.security.cert.X509CertSelector.getIssuer() definition code for java.security.cert.X509CertSelector.getIssuer() or getIssuerAsBytes() sample code for java.security.cert.X509CertSelector.getIssuerAsBytes() definition code for java.security.cert.X509CertSelector.getIssuerAsBytes() instead.
 boolean[] getKeyUsage sample code for java.security.cert.X509CertSelector.getKeyUsage() definition code for java.security.cert.X509CertSelector.getKeyUsage() ()
          Returns the keyUsage criterion.
 boolean getMatchAllSubjectAltNames sample code for java.security.cert.X509CertSelector.getMatchAllSubjectAltNames() definition code for java.security.cert.X509CertSelector.getMatchAllSubjectAltNames() ()
          Indicates if the X509Certificate must contain all or at least one of the subjectAlternativeNames specified in the setSubjectAlternativeNames sample code for java.security.cert.X509CertSelector.setSubjectAlternativeNames(java.util.Collection) definition code for java.security.cert.X509CertSelector.setSubjectAlternativeNames(java.util.Collection) or addSubjectAlternativeName sample code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, java.lang.String) definition code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, java.lang.String) methods.
 byte[] getNameConstraints sample code for java.security.cert.X509CertSelector.getNameConstraints() definition code for java.security.cert.X509CertSelector.getNameConstraints() ()
          Returns the name constraints criterion.
 Collection sample code for java.util.Collection definition code for java.util.Collection <List sample code for java.util.List definition code for java.util.List <?>> getPathToNames sample code for java.security.cert.X509CertSelector.getPathToNames() definition code for java.security.cert.X509CertSelector.getPathToNames() ()
          Returns a copy of the pathToNames criterion.
 Set sample code for java.util.Set definition code for java.util.Set <String sample code for java.lang.String definition code for java.lang.String > getPolicy sample code for java.security.cert.X509CertSelector.getPolicy() definition code for java.security.cert.X509CertSelector.getPolicy() ()
          Returns the policy criterion.
 Date sample code for java.util.Date definition code for java.util.Date getPrivateKeyValid sample code for java.security.cert.X509CertSelector.getPrivateKeyValid() definition code for java.security.cert.X509CertSelector.getPrivateKeyValid() ()
          Returns the privateKeyValid criterion.
 BigInteger sample code for java.math.BigInteger definition code for java.math.BigInteger getSerialNumber sample code for java.security.cert.X509CertSelector.getSerialNumber() definition code for java.security.cert.X509CertSelector.getSerialNumber() ()
          Returns the serialNumber criterion.
 X500Principal sample code for javax.security.auth.x500.X500Principal definition code for javax.security.auth.x500.X500Principal getSubject sample code for java.security.cert.X509CertSelector.getSubject() definition code for java.security.cert.X509CertSelector.getSubject() ()
          Returns the subject criterion as an X500Principal.
 Collection sample code for java.util.Collection definition code for java.util.Collection <List sample code for java.util.List definition code for java.util.List <?>> getSubjectAlternativeNames sample code for java.security.cert.X509CertSelector.getSubjectAlternativeNames() definition code for java.security.cert.X509CertSelector.getSubjectAlternativeNames() ()
          Returns a copy of the subjectAlternativeNames criterion.
 byte[] getSubjectAsBytes sample code for java.security.cert.X509CertSelector.getSubjectAsBytes() definition code for java.security.cert.X509CertSelector.getSubjectAsBytes() ()
          Returns the subject criterion as a byte array.
 String sample code for java.lang.String definition code for java.lang.String getSubjectAsString sample code for java.security.cert.X509CertSelector.getSubjectAsString() definition code for java.security.cert.X509CertSelector.getSubjectAsString() ()
          Denigrated, use getSubject() sample code for java.security.cert.X509CertSelector.getSubject() definition code for java.security.cert.X509CertSelector.getSubject() or getSubjectAsBytes() sample code for java.security.cert.X509CertSelector.getSubjectAsBytes() definition code for java.security.cert.X509CertSelector.getSubjectAsBytes() instead.
 byte[] getSubjectKeyIdentifier sample code for java.security.cert.X509CertSelector.getSubjectKeyIdentifier() definition code for java.security.cert.X509CertSelector.getSubjectKeyIdentifier() ()
          Returns the subjectKeyIdentifier criterion.
 PublicKey sample code for java.security.PublicKey definition code for java.security.PublicKey getSubjectPublicKey sample code for java.security.cert.X509CertSelector.getSubjectPublicKey() definition code for java.security.cert.X509CertSelector.getSubjectPublicKey() ()
          Returns the subjectPublicKey criterion.
 String sample code for java.lang.String definition code for java.lang.String getSubjectPublicKeyAlgID sample code for java.security.cert.X509CertSelector.getSubjectPublicKeyAlgID() definition code for java.security.cert.X509CertSelector.getSubjectPublicKeyAlgID() ()
          Returns the subjectPublicKeyAlgID criterion.
 boolean match sample code for java.security.cert.X509CertSelector.match(java.security.cert.Certificate) definition code for java.security.cert.X509CertSelector.match(java.security.cert.Certificate) (Certificate sample code for java.security.cert.Certificate definition code for java.security.cert.Certificate  cert)
          Decides whether a Certificate should be selected.
 void setAuthorityKeyIdentifier sample code for java.security.cert.X509CertSelector.setAuthorityKeyIdentifier(byte[]) definition code for java.security.cert.X509CertSelector.setAuthorityKeyIdentifier(byte[]) (byte[] authorityKeyID)
          Sets the authorityKeyIdentifier criterion.
 void setBasicConstraints sample code for java.security.cert.X509CertSelector.setBasicConstraints(int) definition code for java.security.cert.X509CertSelector.setBasicConstraints(int) (int minMaxPathLen)
          Sets the basic constraints constraint.
 void setCertificate sample code for java.security.cert.X509CertSelector.setCertificate(java.security.cert.X509Certificate) definition code for java.security.cert.X509CertSelector.setCertificate(java.security.cert.X509Certificate) (X509Certificate sample code for java.security.cert.X509Certificate definition code for java.security.cert.X509Certificate  cert)
          Sets the certificateEquals criterion.
 void setCertificateValid sample code for java.security.cert.X509CertSelector.setCertificateValid(java.util.Date) definition code for java.security.cert.X509CertSelector.setCertificateValid(java.util.Date) (Date sample code for java.util.Date definition code for java.util.Date  certValid)
          Sets the certificateValid criterion.
 void setExtendedKeyUsage sample code for java.security.cert.X509CertSelector.setExtendedKeyUsage(java.util.Set) definition code for java.security.cert.X509CertSelector.setExtendedKeyUsage(java.util.Set) (Set sample code for java.util.Set definition code for java.util.Set <String sample code for java.lang.String definition code for java.lang.String > keyPurposeSet)
          Sets the extendedKeyUsage criterion.
 void setIssuer sample code for java.security.cert.X509CertSelector.setIssuer(byte[]) definition code for java.security.cert.X509CertSelector.setIssuer(byte[]) (byte[] issuerDN)
          Sets the issuer criterion.
 void setIssuer sample code for java.security.cert.X509CertSelector.setIssuer(java.lang.String) definition code for java.security.cert.X509CertSelector.setIssuer(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  issuerDN)
          Denigrated, use setIssuer(X500Principal) sample code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) or setIssuer(byte[]) sample code for java.security.cert.X509CertSelector.setIssuer(byte[]) definition code for java.security.cert.X509CertSelector.setIssuer(byte[]) instead.
 void setIssuer sample code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) (X500Principal sample code for javax.security.auth.x500.X500Principal definition code for javax.security.auth.x500.X500Principal  issuer)
          Sets the issuer criterion.
 void setKeyUsage sample code for java.security.cert.X509CertSelector.setKeyUsage(boolean[]) definition code for java.security.cert.X509CertSelector.setKeyUsage(boolean[]) (boolean[] keyUsage)
          Sets the keyUsage criterion.
 void setMatchAllSubjectAltNames sample code for java.security.cert.X509CertSelector.setMatchAllSubjectAltNames(boolean) definition code for java.security.cert.X509CertSelector.setMatchAllSubjectAltNames(boolean) (boolean matchAllNames)
          Enables/disables matching all of the subjectAlternativeNames specified in the setSubjectAlternativeNames sample code for java.security.cert.X509CertSelector.setSubjectAlternativeNames(java.util.Collection) definition code for java.security.cert.X509CertSelector.setSubjectAlternativeNames(java.util.Collection) or addSubjectAlternativeName sample code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, java.lang.String) definition code for java.security.cert.X509CertSelector.addSubjectAlternativeName(int, java.lang.String) methods.
 void setNameConstraints sample code for java.security.cert.X509CertSelector.setNameConstraints(byte[]) definition code for java.security.cert.X509CertSelector.setNameConstraints(byte[]) (byte[] bytes)
          Sets the name constraints criterion.
 void setPathToNames sample code for java.security.cert.X509CertSelector.setPathToNames(java.util.Collection) definition code for java.security.cert.X509CertSelector.setPathToNames(java.util.Collection) (Collection sample code for java.util.Collection definition code for java.util.Collection <List sample code for java.util.List definition code for java.util.List <?>> names)
          Sets the pathToNames criterion.
 void setPolicy sample code for java.security.cert.X509CertSelector.setPolicy(java.util.Set) definition code for java.security.cert.X509CertSelector.setPolicy(java.util.Set) (Set sample code for java.util.Set definition code for java.util.Set <String sample code for java.lang.String definition code for java.lang.String > certPolicySet)
          Sets the policy constraint.
 void setPrivateKeyValid sample code for java.security.cert.X509CertSelector.setPrivateKeyValid(java.util.Date) definition code for java.security.cert.X509CertSelector.setPrivateKeyValid(java.util.Date) (Date sample code for java.util.Date definition code for java.util.Date  privateKeyValid)
          Sets the privateKeyValid criterion.
 void setSerialNumber sample code for java.security.cert.X509CertSelector.setSerialNumber(java.math.BigInteger) definition code for java.security.cert.X509CertSelector.setSerialNumber(java.math.BigInteger) (BigInteger sample code for java.math.BigInteger definition code for java.math.BigInteger  serial)
          Sets the serialNumber criterion.
 void setSubject sample code for java.security.cert.X509CertSelector.setSubject(byte[]) definition code for java.security.cert.X509CertSelector.setSubject(byte[]) (byte[] subjectDN)
          Sets the subject criterion.
 void setSubject sample code for java.security.cert.X509CertSelector.setSubject(java.lang.String) definition code for java.security.cert.X509CertSelector.setSubject(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  subjectDN)
          Denigrated, use setSubject(X500Principal) sample code for java.security.cert.X509CertSelector.setSubject(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setSubject(javax.security.auth.x500.X500Principal) or setSubject(byte[]) sample code for java.security.cert.X509CertSelector.setSubject(byte[]) definition code for java.security.cert.X509CertSelector.setSubject(byte[]) instead.
 void setSubject sample code for java.security.cert.X509CertSelector.setSubject(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setSubject(javax.security.auth.x500.X500Principal) (X500Principal sample code for javax.security.auth.x500.X500Principal definition code for javax.security.auth.x500.X500Principal  subject)
          Sets the subject criterion.
 void setSubjectAlternativeNames sample code for java.security.cert.X509CertSelector.setSubjectAlternativeNames(java.util.Collection) definition code for java.security.cert.X509CertSelector.setSubjectAlternativeNames(java.util.Collection) (Collection sample code for java.util.Collection definition code for java.util.Collection <List sample code for java.util.List definition code for java.util.List <?>> names)
          Sets the subjectAlternativeNames criterion.
 void setSubjectKeyIdentifier sample code for java.security.cert.X509CertSelector.setSubjectKeyIdentifier(byte[]) definition code for java.security.cert.X509CertSelector.setSubjectKeyIdentifier(byte[]) (byte[] subjectKeyID)
          Sets the subjectKeyIdentifier criterion.
 void setSubjectPublicKey sample code for java.security.cert.X509CertSelector.setSubjectPublicKey(byte[]) definition code for java.security.cert.X509CertSelector.setSubjectPublicKey(byte[]) (byte[] key)
          Sets the subjectPublicKey criterion.
 void setSubjectPublicKey sample code for java.security.cert.X509CertSelector.setSubjectPublicKey(java.security.PublicKey) definition code for java.security.cert.X509CertSelector.setSubjectPublicKey(java.security.PublicKey) (PublicKey sample code for java.security.PublicKey definition code for java.security.PublicKey  key)
          Sets the subjectPublicKey criterion.
 void setSubjectPublicKeyAlgID sample code for java.security.cert.X509CertSelector.setSubjectPublicKeyAlgID(java.lang.String) definition code for java.security.cert.X509CertSelector.setSubjectPublicKeyAlgID(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  oid)
          Sets the subjectPublicKeyAlgID criterion.
 String sample code for java.lang.String definition code for java.lang.String toString sample code for java.security.cert.X509CertSelector.toString() definition code for java.security.cert.X509CertSelector.toString() ()
          Return a printable representation of the CertSelector.
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 

Constructor Detail

X509CertSelector sample code for java.security.cert.X509CertSelector() definition code for java.security.cert.X509CertSelector()

public X509CertSelector()
Creates an X509CertSelector. Initially, no criteria are set so any X509Certificate will match.

Method Detail

setCertificate sample code for java.security.cert.X509CertSelector.setCertificate(java.security.cert.X509Certificate) definition code for java.security.cert.X509CertSelector.setCertificate(java.security.cert.X509Certificate)

public void setCertificate(X509Certificate sample code for java.security.cert.X509Certificate definition code for java.security.cert.X509Certificate  cert)
Sets the certificateEquals criterion. The specified X509Certificate must be equal to the X509Certificate passed to the match method. If null, then this check is not applied.

This method is particularly useful when it is necessary to match a single certificate. Although other criteria can be specified in conjunction with the certificateEquals criterion, it is usually not practical or necessary.

Parameters:
cert - the X509Certificate to match (or null)
See Also:
getCertificate() sample code for java.security.cert.X509CertSelector.getCertificate() definition code for java.security.cert.X509CertSelector.getCertificate()

setSerialNumber sample code for java.security.cert.X509CertSelector.setSerialNumber(java.math.BigInteger) definition code for java.security.cert.X509CertSelector.setSerialNumber(java.math.BigInteger)

public void setSerialNumber(BigInteger sample code for java.math.BigInteger definition code for java.math.BigInteger  serial)
Sets the serialNumber criterion. The specified serial number must match the certificate serial number in the X509Certificate. If null, any certificate serial number will do.

Parameters:
serial - the certificate serial number to match (or null)
See Also:
getSerialNumber() sample code for java.security.cert.X509CertSelector.getSerialNumber() definition code for java.security.cert.X509CertSelector.getSerialNumber()

setIssuer sample code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal)

public void setIssuer(X500Principal sample code for javax.security.auth.x500.X500Principal definition code for javax.security.auth.x500.X500Principal  issuer)
Sets the issuer criterion. The specified distinguished name must match the issuer distinguished name in the X509Certificate. If null, any issuer distinguished name will do.

Parameters:
issuer - a distinguished name as X500Principal (or null)
Since:
1.5

setIssuer sample code for java.security.cert.X509CertSelector.setIssuer(java.lang.String) definition code for java.security.cert.X509CertSelector.setIssuer(java.lang.String)

public void setIssuer(String sample code for java.lang.String definition code for java.lang.String  issuerDN)
               throws IOException sample code for java.io.IOException definition code for java.io.IOException 
Denigrated, use setIssuer(X500Principal) sample code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) definition code for java.security.cert.X509CertSelector.setIssuer(javax.security.auth.x500.X500Principal) or