Java Doc for X509CertSelector.java in  » 6.0-JDK-Core » security » java » security » cert » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Home
Java Source Code / Java Documentation
1.6.0 JDK Core
2.6.0 JDK Modules
3.6.0 JDK Modules com.sun
4.6.0 JDK Modules com.sun.java
5.6.0 JDK Modules sun
6.6.0 JDK Platform
7.Ajax
8.Apache Harmony Java SE
9.Aspect oriented
10.Authentication Authorization
11.Blogger System
12.Build
13.Byte Code
14.Cache
15.Chart
16.Chat
17.Code Analyzer
18.Collaboration
19.Content Management System
20.Database Client
21.Database DBMS
22.Database JDBC Connection Pool
23.Database ORM
24.Development
25.EJB Server
26.ERP CRM Financial
27.ESB
28.Forum
29.Game
30.GIS
31.Graphic 3D
32.Graphic Library
33.Groupware
34.HTML Parser
35.IDE
36.IDE Eclipse
37.IDE Netbeans
38.Installer
39.Internationalization Localization
40.Inversion of Control
41.Issue Tracking
42.J2EE
43.J2ME
44.JBoss
45.JMS
46.JMX
47.Library
48.Mail Clients
49.Music
50.Net
51.Parser
52.PDF
53.Portal
54.Profiler
55.Project Management
56.Report
57.RSS RDF
58.Rule Engine
59.Science
60.Scripting
61.Search Engine
62.Security
63.Sevlet Container
64.Source Control
65.Swing Library
66.Template Engine
67.Test Coverage
68.Testing
69.UML
70.Web Crawler
71.Web Framework
72.Web Mail
73.Web Server
74.Web Services
75.Web Services apache cxf 2.2.6
76.Web Services AXIS2
77.Wiki Engine
78.Workflow Engines
79.XML
80.XML UI
Java Source Code / Java Documentation » 6.0 JDK Core » security » java.security.cert 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   java.security.cert.X509CertSelector

X509CertSelector
public class X509CertSelector implements CertSelector(Code)
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 X509CertSelector.getBasicConstraintsgetBasicConstraints method). Therefore, the X509CertSelector.match match method would return true for any X509Certificate. Typically, several criteria are enabled (by calling X509CertSelector.setIssuer setIssuer or X509CertSelector.setKeyUsage setKeyUsage , for instance) and then the X509CertSelector is passed to CertStore.getCertificates CertStore.getCertificates or some similar method.

Several criteria can be enabled (by calling X509CertSelector.setIssuer setIssuer and X509CertSelector.setSerialNumber setSerialNumber , 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 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile 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.
See Also:   CertSelector
See Also:   X509Certificate
version:
   1.29, 05/05/07
since:
   1.4
author:
   Steve Hanna



Field Summary
final static  intNAME_ANY
    
final static  intNAME_DIRECTORY
    
final static  intNAME_DNS
    
final static  intNAME_EDI
    
final static  intNAME_IP
    
final static  intNAME_OID
    
final static  intNAME_RFC822
    
final static  intNAME_URI
    
final static  intNAME_X400
    

Constructor Summary
public  X509CertSelector()
     Creates an X509CertSelector.

Method Summary
public  voidaddPathToName(int type, String name)
     Adds a name to the pathToNames criterion.
public  voidaddPathToName(int type, byte[] name)
     Adds a name to the pathToNames criterion.
public  voidaddSubjectAlternativeName(int type, String name)
     Adds a name to the subjectAlternativeNames criterion.
public  voidaddSubjectAlternativeName(int type, byte[] name)
     Adds a name to the subjectAlternativeNames criterion.
public  Objectclone()
     Returns a copy of this object.
static  booleanequalNames(Collection object1, Collection object2)
     Compare for equality two objects of the form passed to setSubjectAlternativeNames (or X509CRLSelector.setIssuerNames).
public  byte[]getAuthorityKeyIdentifier()
     Returns the authorityKeyIdentifier criterion.
public  intgetBasicConstraints()
     Returns the basic constraints constraint.
public  X509CertificategetCertificate()
     Returns the certificateEquals criterion.
public  DategetCertificateValid()
     Returns the certificateValid criterion.
public  Set<String>getExtendedKeyUsage()
     Returns the extendedKeyUsage criterion.
public  X500PrincipalgetIssuer()
     Returns the issuer criterion as an X500Principal.
public  byte[]getIssuerAsBytes()
     Returns the issuer criterion as a byte array.
public  StringgetIssuerAsString()
     Denigrated, use or instead.
public  boolean[]getKeyUsage()
     Returns the keyUsage criterion.
public  booleangetMatchAllSubjectAltNames()
     Indicates if the X509Certificate must contain all or at least one of the subjectAlternativeNames specified in the X509CertSelector.setSubjectAlternativeNamessetSubjectAlternativeNames or X509CertSelector.addSubjectAlternativeNameaddSubjectAlternativeName methods.
public  byte[]getNameConstraints()
     Returns the name constraints criterion.
public  Collection<List<?>>getPathToNames()
     Returns a copy of the pathToNames criterion.
public  Set<String>getPolicy()
     Returns the policy criterion.
public  DategetPrivateKeyValid()
     Returns the privateKeyValid criterion.
public  BigIntegergetSerialNumber()
     Returns the serialNumber criterion.
public  X500PrincipalgetSubject()
     Returns the subject criterion as an X500Principal.
public  Collection<List<?>>getSubjectAlternativeNames()
     Returns a copy of the subjectAlternativeNames criterion. The X509Certificate must contain all or at least one of the specified subjectAlternativeNames, depending on the value of the matchAllNames flag (see X509CertSelector.getMatchAllSubjectAltNamesgetMatchAllSubjectAltNames ).
public  byte[]getSubjectAsBytes()
     Returns the subject criterion as a byte array.
public  StringgetSubjectAsString()
     Denigrated, use or instead.
public  byte[]getSubjectKeyIdentifier()
     Returns the subjectKeyIdentifier criterion.
public  PublicKeygetSubjectPublicKey()
     Returns the subjectPublicKey criterion.
public  StringgetSubjectPublicKeyAlgID()
     Returns the subjectPublicKeyAlgID criterion.
static  GeneralNameInterfacemakeGeneralNameInterface(int type, Object name)
     Make a GeneralNameInterface out of a name type (0-8) and an Object that may be a byte array holding the ASN.1 DER encoded name or a String form of the name.
public  booleanmatch(Certificate cert)
     Decides whether a Certificate should be selected.
public  voidsetAuthorityKeyIdentifier(byte[] authorityKeyID)
     Sets the authorityKeyIdentifier criterion.
public  voidsetBasicConstraints(int minMaxPathLen)
     Sets the basic constraints constraint.
public  voidsetCertificate(X509Certificate cert)
     Sets the certificateEquals criterion.
public  voidsetCertificateValid(Date certValid)
     Sets the certificateValid criterion.
public  voidsetExtendedKeyUsage(Set<String> keyPurposeSet)
     Sets the extendedKeyUsage criterion.
public  voidsetIssuer(X500Principal issuer)
     Sets the issuer criterion.
public  voidsetIssuer(String issuerDN)
     Denigrated, use or instead.
public  voidsetIssuer(byte[] issuerDN)
     Sets the issuer criterion.
public  voidsetKeyUsage(boolean[] keyUsage)
     Sets the keyUsage criterion.
public  voidsetMatchAllSubjectAltNames(boolean matchAllNames)
     Enables/disables matching all of the subjectAlternativeNames specified in the X509CertSelector.setSubjectAlternativeNamessetSubjectAlternativeNames or X509CertSelector.addSubjectAlternativeNameaddSubjectAlternativeName methods.
public  voidsetNameConstraints(byte[] bytes)
     Sets the name constraints criterion.
public  voidsetPathToNames(Collection<List<?>> names)
     Sets the pathToNames criterion.
 voidsetPathToNamesInternal(Set<GeneralNameInterface> names)
    
public  voidsetPolicy(Set<String> certPolicySet)
     Sets the policy constraint.
public  voidsetPrivateKeyValid(Date privateKeyValid)
     Sets the privateKeyValid criterion.
public  voidsetSerialNumber(BigInteger serial)
     Sets the serialNumber criterion.
public  voidsetSubject(X500Principal subject)
     Sets the subject criterion.
public  voidsetSubject(String subjectDN)
     Denigrated, use or instead.
public  voidsetSubject(byte[] subjectDN)
     Sets the subject criterion.
public  voidsetSubjectAlternativeNames(Collection<List<?>> names)
     Sets the subjectAlternativeNames criterion.
public  voidsetSubjectKeyIdentifier(byte[] subjectKeyID)
     Sets the subjectKeyIdentifier criterion.
public  voidsetSubjectPublicKey(PublicKey key)
     Sets the subjectPublicKey criterion.
public  voidsetSubjectPublicKey(byte[] key)
     Sets the subjectPublicKey criterion.
public  voidsetSubjectPublicKeyAlgID(String oid)
     Sets the subjectPublicKeyAlgID criterion.
public  StringtoString()
     Return a printable representation of the CertSelector.

Field Detail
NAME_ANY
final static int NAME_ANY(Code)



NAME_DIRECTORY
final static int NAME_DIRECTORY(Code)



NAME_DNS
final static int NAME_DNS(Code)



NAME_EDI
final static int NAME_EDI(Code)



NAME_IP
final static int NAME_IP(Code)



NAME_OID
final static int NAME_OID(Code)



NAME_RFC822
final static int NAME_RFC822(Code)



NAME_URI
final static int NAME_URI(Code)



NAME_X400
final static int NAME_X400(Code)




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




Method Detail
addPathToName
public void addPathToName(int type, String name) throws IOException(Code)
Adds a name to the pathToNames criterion. The X509Certificate must not include name constraints that would prohibit building a path to the specified name.

This method allows the caller to add a name to the set of names which the X509Certificates's name constraints must permit. The specified name is added to any previous value for the pathToNames criterion. If the name is a duplicate, it may be ignored.

The name is provided in string format. RFC 822, DNS, and URI names use the well-established string formats for those types (subject to the restrictions included in RFC 3280). IPv4 address names are supplied using dotted quad notation. OID address names are represented as a series of nonnegative integers separated by periods. And directory names (distinguished names) are supplied in RFC 2253 format. No standard string format is defined for otherNames, X.400 names, EDI party names, IPv6 address names, or any other type of names. They should be specified using the X509CertSelector.addPathToName(int type,byte[] name) addPathToName(int type, byte [] name) method.

Note: for distinguished names, use instead. This method should not be relied on as it can fail to match some certificates because of a loss of encoding information in the RFC 2253 String form of some distinguished names.
Parameters:
  type - the name type (0-8, as specified inRFC 3280, section 4.2.1.7)
Parameters:
  name - the name in string form
throws:
  IOException - if a parsing error occurs




addPathToName
public void addPathToName(int type, byte[] name) throws IOException(Code)
Adds a name to the pathToNames criterion. The X509Certificate must not include name constraints that would prohibit building a path to the specified name.

This method allows the caller to add a name to the set of names which the X509Certificates's name constraints must permit. The specified name is added to any previous value for the pathToNames criterion. If the name is a duplicate, it may be ignored.

The name is provided as a byte array. This byte array should contain the DER encoded name, as it would appear in the GeneralName structure defined in RFC 3280 and X.509. The ASN.1 definition of this structure appears in the documentation for X509CertSelector.addSubjectAlternativeName(int type,byte[] name) addSubjectAlternativeName(int type, byte [] name) .

Note that the byte array supplied here is cloned to protect against subsequent modifications.
Parameters:
  type - the name type (0-8, as specified inRFC 3280, section 4.2.1.7)
Parameters:
  name - a byte array containing the name in ASN.1 DER encoded form
throws:
  IOException - if a parsing error occurs




addSubjectAlternativeName
public void addSubjectAlternativeName(int type, String name) throws IOException(Code)
Adds a name to the subjectAlternativeNames criterion. The X509Certificate must contain all or at least one of the specified subjectAlternativeNames, depending on the value of the matchAllNames flag (see X509CertSelector.setMatchAllSubjectAltNamessetMatchAllSubjectAltNames ).

This method allows the caller to add a name to the set of subject alternative names. The specified name is added to any previous value for the subjectAlternativeNames criterion. If the specified name is a duplicate, it may be ignored.

The name is provided in string format. RFC 822, DNS, and URI names use the well-established string formats for those types (subject to the restrictions included in RFC 3280). IPv4 address names are supplied using dotted quad notation. OID address names are represented as a series of nonnegative integers separated by periods. And directory names (distinguished names) are supplied in RFC 2253 format. No standard string format is defined for otherNames, X.400 names, EDI party names, IPv6 address names, or any other type of names. They should be specified using the X509CertSelector.addSubjectAlternativeName(int type,byte[] name) addSubjectAlternativeName(int type, byte [] name) method.

Note: for distinguished names, use instead. This method should not be relied on as it can fail to match some certificates because of a loss of encoding information in the RFC 2253 String form of some distinguished names.
Parameters:
  type - the name type (0-8, as specified inRFC 3280, section 4.2.1.7)
Parameters:
  name - the name in string form (not null)
throws:
  IOException - if a parsing error occurs




addSubjectAlternativeName
public void addSubjectAlternativeName(int type, byte[] name) throws IOException(Code)
Adds a name to the subjectAlternativeNames criterion. The X509Certificate must contain all or at least one of the specified subjectAlternativeNames, depending on the value of the matchAllNames flag (see X509CertSelector.setMatchAllSubjectAltNamessetMatchAllSubjectAltNames ).

This method allows the caller to add a name to the set of subject alternative names. The specified name is added to any previous value for the subjectAlternativeNames criterion. If the specified name is a duplicate, it may be ignored.

The name is provided as a byte array. This byte array should contain the DER encoded name, as it would appear in the GeneralName structure defined in RFC 3280 and X.509. The encoded byte array should only contain the encoded value of the name, and should not include the tag associated with the name in the GeneralName structure. The ASN.1 definition of this structure appears below.


 GeneralName ::= CHOICE {
 otherName                       [0]     OtherName,
 rfc822Name                      [1]     IA5String,
 dNSName                         [2]     IA5String,
 x400Address                     [3]     ORAddress,
 directoryName                   [4]     Name,
 ediPartyName                    [5]     EDIPartyName,
 uniformResourceIdentifier       [6]     IA5String,
 iPAddress                       [7]     OCTET STRING,
 registeredID                    [8]     OBJECT IDENTIFIER}
 

Note that the byte array supplied here is cloned to protect against subsequent modifications.
Parameters:
  type - the name type (0-8, as listed above)
Parameters:
  name - a byte array containing the name in ASN.1 DER encoded form
throws:
  IOException - if a parsing error occurs




clone
public Object clone()(Code)
Returns a copy of this object. the copy



equalNames
static boolean equalNames(Collection object1, Collection object2)(Code)
Compare for equality two objects of the form passed to setSubjectAlternativeNames (or X509CRLSelector.setIssuerNames). Throw an IllegalArgumentException or a ClassCastException if one of the objects is malformed.
Parameters:
  object1 - a Collection containing the first object to compare
Parameters:
  object2 - a Collection containing the second object to compare true if the objects are equal, false otherwise



getAuthorityKeyIdentifier
public byte[] getAuthorityKeyIdentifier()(Code)
Returns the authorityKeyIdentifier criterion. The X509Certificate must contain a AuthorityKeyIdentifier extension with the specified value. If null, no authorityKeyIdentifier check will be done.

Note that the byte array returned is cloned to protect against subsequent modifications. the key identifier (or null)
See Also:   X509CertSelector.setAuthorityKeyIdentifier




getBasicConstraints
public int getBasicConstraints()(Code)
Returns the basic constraints constraint. If the value is greater than or equal to zero, the X509Certificates must include a basicConstraints extension with a pathLen of at least this value. If the value is -2, only end-entity certificates are accepted. If the value is -1, no basicConstraints check is done. the value for the basic constraints constraint
See Also:   X509CertSelector.setBasicConstraints



getCertificate
public X509Certificate getCertificate()(Code)
Returns the certificateEquals criterion. The specified X509Certificate must be equal to the X509Certificate passed to the match method. If null, this check is not applied. the X509Certificate to match (or null)
See Also:   X509CertSelector.setCertificate



getCertificateValid
public Date getCertificateValid()(Code)
Returns the certificateValid criterion. The specified date must fall within the certificate validity period for the X509Certificate. If null, no certificateValid check will be done.

Note that the Date returned is cloned to protect against subsequent modifications. the Date to check (or null)
See Also:   X509CertSelector.setCertificateValid




getExtendedKeyUsage
public Set<String> getExtendedKeyUsage()(Code)
Returns the extendedKeyUsage criterion. The X509Certificate must allow the specified key purposes in its extended key usage extension. If the keyPurposeSet returned is empty or null, no extendedKeyUsage check will be done. Note that an X509Certificate that has no extendedKeyUsage extension implicitly allows all key purposes. an immutable Set of key purpose OIDs in stringformat (or null)
See Also:   X509CertSelector.setExtendedKeyUsage



getIssuer
public X500Principal getIssuer()(Code)
Returns the issuer criterion as an X500Principal. This distinguished name must match the issuer distinguished name in the X509Certificate. If null, the issuer criterion is disabled and any issuer distinguished name will do. the required issuer distinguished name as X500Principal(or null)
since:
   1.5



getIssuerAsBytes
public byte[] getIssuerAsBytes() throws IOException(Code)
Returns the issuer criterion as a byte array. This distinguished name must match the issuer distinguished name in the X509Certificate. If null, the issuer criterion is disabled and any issuer distinguished name will do.

If the value returned is not null, it is a byte array containing a single DER encoded distinguished name, as defined in X.501. The ASN.1 notation for this structure is supplied in the documentation for X509CertSelector.setIssuer(byte[] issuerDN) setIssuer(byte [] issuerDN) .

Note that the byte array returned is cloned to protect against subsequent modifications. a byte array containing the required issuer distinguished namein ASN.1 DER format (or null)
throws:
  IOException - if an encoding error occurs




getIssuerAsString
public String getIssuerAsString()(Code)
Denigrated, use or instead. This method should not be relied on as it can fail to match some certificates because of a loss of encoding information in the RFC 2253 String form of some distinguished names.

Returns the issuer criterion as a String. This distinguished name must match the issuer distinguished name in the X509Certificate. If null, the issuer criterion is disabled and any issuer distinguished name will do.

If the value returned is not null, it is a distinguished name, in RFC 2253 format. the required issuer distinguished name in RFC 2253 format(or null)




getKeyUsage
public boolean[] getKeyUsage()(Code)
Returns the keyUsage criterion. The X509Certificate must allow the specified keyUsage values. If null, no keyUsage check will be done.

Note that the boolean array returned is cloned to protect against subsequent modifications. a boolean array in the same format as the booleanarray returned byX509Certificate.getKeyUsage X509Certificate.getKeyUsage().Or null.
See Also:   X509CertSelector.setKeyUsage




getMatchAllSubjectAltNames
public boolean getMatchAllSubjectAltNames()(Code)
Indicates if the X509Certificate must contain all or at least one of the subjectAlternativeNames specified in the X509CertSelector.setSubjectAlternativeNamessetSubjectAlternativeNames or X509CertSelector.addSubjectAlternativeNameaddSubjectAlternativeName methods. If true, the X509Certificate must contain all of the specified subject alternative names. If false, the X509Certificate must contain at least one of the specified subject alternative names. true if the flag is enabled;false if the flag is disabled. The flag istrue by default.
See Also:   X509CertSelector.setMatchAllSubjectAltNames



getNameConstraints
public byte[] getNameConstraints()(Code)
Returns the name constraints criterion. The X509Certificate must have subject and subject alternative names that meet the specified name constraints.

The name constraints are returned as a byte array. This byte array contains the DER encoded form of the name constraints, as they would appear in the NameConstraints structure defined in RFC 3280 and X.509. The ASN.1 notation for this structure is supplied in the documentation for X509CertSelector.setNameConstraints(byte[] bytes) setNameConstraints(byte [] bytes) .

Note that the byte array returned is cloned to protect against subsequent modifications. a byte array containing the ASN.1 DER encoding ofa NameConstraints extension used for checking name constraints.null if no name constraints check will be performed.
See Also:   X509CertSelector.setNameConstraints




getPathToNames
public Collection<List<?>> getPathToNames()(Code)
Returns a copy of the pathToNames criterion. The X509Certificate must not include name constraints that would prohibit building a path to the specified names. If the value returned is null, no pathToNames check will be performed.

If the value returned is not null, it is a Collection with one entry for each name to be included in the pathToNames criterion. Each entry is a List whose first entry is an Integer (the name type, 0-8) and whose second entry is a String or a byte array (the name, in string or ASN.1 DER encoded form, respectively). There can be multiple names of the same type. Note that the Collection returned may contain duplicate names (same name and name type).

Each name in the Collection may be specified either as a String or as an ASN.1 encoded byte array. For more details about the formats used, see X509CertSelector.addPathToName(int type,String name) addPathToName(int type, String name) and X509CertSelector.addPathToName(int type,byte[] name) addPathToName(int type, byte [] name) .

Note that a deep copy is performed on the Collection to protect against subsequent modifications. a Collection of names (or null)
See Also:   X509CertSelector.setPathToNames




getPolicy
public Set<String> getPolicy()(Code)
Returns the policy criterion. The X509Certificate must include at least one of the specified policies in its certificate policies extension. If the Set returned is empty, then the X509Certificate must include at least some specified policy in its certificate policies extension. If the Set returned is null, no policy check will be performed. an immutable Set of certificate policy OIDs instring format (or null)
See Also:   X509CertSelector.setPolicy



getPrivateKeyValid
public Date getPrivateKeyValid()(Code)
Returns the privateKeyValid criterion. The specified date must fall within the private key validity period for the X509Certificate. If null, no privateKeyValid check will be done.

Note that the Date returned is cloned to protect against subsequent modifications. the Date to check (or null)
See Also:   X509CertSelector.setPrivateKeyValid




getSerialNumber
public BigInteger getSerialNumber()(Code)
Returns the serialNumber criterion. The specified serial number must match the certificate serial number in the X509Certificate. If null, any certificate serial number will do. the certificate serial number to match(or null)
See Also:   X509CertSelector.setSerialNumber



getSubject
public X500Principal getSubject()(Code)
Returns the subject criterion as an X500Principal. This distinguished name must match the subject distinguished name in the X509Certificate. If null, the subject criterion is disabled and any subject distinguished name will do. the required subject distinguished name as X500Principal(or null)
since:
   1.5



getSubjectAlternativeNames
public Collection<List<?>> getSubjectAlternativeNames()(Code)
Returns a copy of the subjectAlternativeNames criterion. The X509Certificate must contain all or at least one of the specified subjectAlternativeNames, depending on the value of the matchAllNames flag (see X509CertSelector.getMatchAllSubjectAltNamesgetMatchAllSubjectAltNames ). If the value returned is null, no subjectAlternativeNames check will be performed.

If the value returned is not null, it is a Collection with one entry for each name to be included in the subject alternative name criterion. Each entry is a List whose first entry is an Integer (the name type, 0-8) and whose second entry is a String or a byte array (the name, in string or ASN.1 DER encoded form, respectively). There can be multiple names of the same type. Note that the Collection returned may contain duplicate names (same name and name type).

Each subject alternative name in the Collection may be specified either as a String or as an ASN.1 encoded byte array. For more details about the formats used, see X509CertSelector.addSubjectAlternativeName(int type,String name) addSubjectAlternativeName(int type, String name) and X509CertSelector.addSubjectAlternativeName(int type,byte[] name) addSubjectAlternativeName(int type, byte [] name) .

Note that a deep copy is performed on the Collection to protect against subsequent modifications. a Collection of names (or null)
See Also:   X509CertSelector.setSubjectAlternativeNames




getSubjectAsBytes
public byte[] getSubjectAsBytes() throws IOException(Code)
Returns the subject criterion as a byte array. This distinguished name must match the subject distinguished name in the X509Certificate. If null, the subject criterion is disabled and any subject distinguished name will do.

If the value returned is not null, it is a byte array containing a single DER encoded distinguished name, as defined in X.501. The ASN.1 notation for this structure is supplied in the documentation for X509CertSelector.setSubject(byte[] subjectDN) setSubject(byte [] subjectDN) .

Note that the byte array returned is cloned to protect against subsequent modifications. a byte array containing the required subject distinguished namein ASN.1 DER format (or null)
throws:
  IOException - if an encoding error occurs




getSubjectAsString
public String getSubjectAsString()(Code)
Denigrated, use or instead. This method should not be relied on as it can fail to match some certificates because of a loss of encoding information in the RFC 2253 String form of some distinguished names.

Returns the subject criterion as a String. This distinguished name must match the subject distinguished name in the X509Certificate. If null, the subject criterion is disabled and any subject distinguished name will do.

If the value returned is not null, it is a distinguished name, in RFC 2253 format. the required subject distinguished name in RFC 2253 format(or null)




getSubjectKeyIdentifier
public byte[] getSubjectKeyIdentifier()(Code)
Returns the subjectKeyIdentifier criterion. The X509Certificate must contain a SubjectKeyIdentifier extension with the specified value. If null, no subjectKeyIdentifier check will be done.

Note that the byte array returned is cloned to protect against subsequent modifications. the key identifier (or null)
See Also:   X509CertSelector.setSubjectKeyIdentifier




getSubjectPublicKey
public PublicKey getSubjectPublicKey()(Code)
Returns the subjectPublicKey criterion. The X509Certificate must contain the specified subject public key. If null, no subjectPublicKey check will be done. the subject public key to check for (or null)
See Also:   X509CertSelector.setSubjectPublicKey



getSubjectPublicKeyAlgID
public String getSubjectPublicKeyAlgID()(Code)
Returns the subjectPublicKeyAlgID criterion. The X509Certificate must contain a subject public key with the specified algorithm. If null, no subjectPublicKeyAlgID check will be done. the object identifier (OID) of the signature algorithm to checkfor (or null). An OID is represented by a set ofnonnegative integers separated by periods.
See Also:   X509CertSelector.setSubjectPublicKeyAlgID



makeGeneralNameInterface
static GeneralNameInterface makeGeneralNameInterface(int type, Object name) throws IOException(Code)
Make a GeneralNameInterface out of a name type (0-8) and an Object that may be a byte array holding the ASN.1 DER encoded name or a String form of the name. Except for X.509 Distinguished Names, the String form of the name must not be the result from calling toString on an existing GeneralNameInterface implementing class. The output of toString is not compatible with the String constructors for names other than Distinguished Names.
Parameters:
  type - name type (0-8)
Parameters:
  name - name as ASN.1 Der-encoded byte array or String a GeneralNameInterface name
throws:
  IOException - if a parsing error occurs



match
public boolean match(Certificate cert)(Code)
Decides whether a Certificate should be selected.
Parameters:
  cert - the Certificate to be checked true if the Certificate should beselected, false otherwise



setAuthorityKeyIdentifier
public void setAuthorityKeyIdentifier(byte[] authorityKeyID)(Code)
Sets the authorityKeyIdentifier criterion. The X509Certificate must contain an AuthorityKeyIdentifier extension for which the contents of the extension value matches the specified criterion value. If the criterion value is null, no authorityKeyIdentifier check will be done.

If authorityKeyID is not null, it should contain a single DER encoded value corresponding to the contents of the extension value (not including the object identifier, criticality setting, and encapsulating OCTET STRING) for an AuthorityKeyIdentifier extension. The ASN.1 notation for this structure follows.


 AuthorityKeyIdentifier ::= SEQUENCE {
 keyIdentifier             [0] KeyIdentifier           OPTIONAL,
 authorityCertIssuer       [1] GeneralNames            OPTIONAL,
 authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL  }
 KeyIdentifier ::= OCTET STRING
 

Authority key identifiers are not parsed by the X509CertSelector. Instead, the values are compared using a byte-by-byte comparison.

When the keyIdentifier field of AuthorityKeyIdentifier is populated, the value is usually taken from the SubjectKeyIdentifier extension in the issuer's certificate. Note, however, that the result of X509Certificate.getExtensionValue(<SubjectKeyIdentifier Object Identifier>) on the issuer's certificate may NOT be used directly as the input to setAuthorityKeyIdentifier. This is because the SubjectKeyIdentifier contains only a KeyIdentifier OCTET STRING, and not a SEQUENCE of KeyIdentifier, GeneralNames, and CertificateSerialNumber. In order to use the extension value of the issuer certificate's SubjectKeyIdentifier extension, it will be necessary to extract the value of the embedded KeyIdentifier OCTET STRING, then DER encode this OCTET STRING inside a SEQUENCE. For more details on SubjectKeyIdentifier, see X509CertSelector.setSubjectKeyIdentifier(byte[] subjectKeyID) .

Note also that the byte array supplied here is cloned to protect against subsequent modifications.
Parameters:
  authorityKeyID - the authority key identifier (or null)
See Also:   X509CertSelector.getAuthorityKeyIdentifier




setBasicConstraints
public void setBasicConstraints(int minMaxPathLen)(Code)
Sets the basic constraints constraint. If the value is greater than or equal to zero, X509Certificates must include a basicConstraints extension with a pathLen of at least this value. If the value is -2, only end-entity certificates are accepted. If the value is -1, no check is done.

This constraint is useful when building a certification path forward (from the target toward the trust anchor. If a partial path has been built, any candidate certificate must have a maxPathLen value greater than or equal to the number of certificates in the partial path.
Parameters:
  minMaxPathLen - the value for the basic constraints constraint
throws:
  IllegalArgumentException - if the value is less than -2
See Also:   X509CertSelector.getBasicConstraints




setCertificate
public void setCertificate(X509Certificate cert)(Code)
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:   X509CertSelector.getCertificate




setCertificateValid
public void setCertificateValid(Date certValid)(Code)
Sets the certificateValid criterion. The specified date must fall within the certificate validity period for the X509Certificate. If null, no certificateValid check will be done.

Note that the Date supplied here is cloned to protect against subsequent modifications.
Parameters:
  certValid - the Date to check (or null)
See Also:   X509CertSelector.getCertificateValid




setExtendedKeyUsage
public void setExtendedKeyUsage(Set<String> keyPurposeSet) throws IOException(Code)
Sets the extendedKeyUsage criterion. The X509Certificate must allow the specified key purposes in its extended key usage extension. If keyPurposeSet is empty or null, no extendedKeyUsage check will be done. Note that an X509Certificate that has no extendedKeyUsage extension implicitly allows all key purposes.

Note that the Set is cloned to protect against subsequent modifications.
Parameters:
  keyPurposeSet - a Set of key purpose OIDs in string format (or null). Each OID is represented by a set of nonnegative integers separated by periods.
throws:
  IOException - if the OID is invalid, such asthe first component being not 0, 1 or 2 or the second componentbeing greater than 39.
See Also:   X509CertSelector.getExtendedKeyUsage




setIssuer
public void setIssuer(X500Principal issuer)(Code)
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
public void setIssuer(String issuerDN) throws IOException(Code)
Denigrated, use or instead. This method should not be relied on as it can fail to match some certificates because of a loss of encoding information in the RFC 2253 String form of some distinguished names.

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.

If issuerDN is not null, it should contain a distinguished name, in RFC 2253 format.
Parameters:
  issuerDN - a distinguished name in RFC 2253 format(or null)
throws:
  IOException - if a parsing error occurs (incorrect form for DN)




setIssuer
public void setIssuer(byte[] issuerDN) throws IOException(Code)
Sets the issuer criterion. The specified distinguished name must match the issuer distinguished name in the X509Certificate. If null is specified, the issuer criterion is disabled and any issuer distinguished name will do.

If issuerDN is not null, it should contain a single DER encoded distinguished name, as defined in X.501. The ASN.1 notation for this structure is as follows.


 Name ::= CHOICE {
 RDNSequence }
 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
 RelativeDistinguishedName ::=
 SET SIZE (1 .. MAX) OF AttributeTypeAndValue
 AttributeTypeAndValue ::= SEQUENCE {
 type     AttributeType,
 value    AttributeValue }
 AttributeType ::= OBJECT IDENTIFIER
 AttributeValue ::= ANY DEFINED BY AttributeType
 ....
 DirectoryString ::= CHOICE {
 teletexString           TeletexString (SIZE (1..MAX)),
 printableString         PrintableString (SIZE (1..MAX)),
 universalString         UniversalString (SIZE (1..MAX)),
 utf8String              UTF8String (SIZE (1.. MAX)),
 bmpString               BMPString (SIZE (1..MAX)) }
 

Note that the byte array specified here is cloned to protect against subsequent modifications.
Parameters:
  issuerDN - a byte array containing the distinguished namein ASN.1 DER encoded form (or null)
throws:
  IOException - if an encoding error occurs (incorrect form for DN)




setKeyUsage
public void setKeyUsage(boolean[] keyUsage)(Code)
Sets the keyUsage criterion. The X509Certificate must allow the specified keyUsage values. If null, no keyUsage check will be done. Note that an X509Certificate that has no keyUsage extension implicitly allows all keyUsage values.

Note that the boolean array supplied here is cloned to protect against subsequent modifications.
Parameters:
  keyUsage - a boolean array in the same format as the booleanarray returned byX509Certificate.getKeyUsage X509Certificate.getKeyUsage().Or null.
See Also:   X509CertSelector.getKeyUsage




setMatchAllSubjectAltNames
public void setMatchAllSubjectAltNames(boolean matchAllNames)(Code)
Enables/disables matching all of the subjectAlternativeNames specified in the X509CertSelector.setSubjectAlternativeNamessetSubjectAlternativeNames or X509CertSelector.addSubjectAlternativeNameaddSubjectAlternativeName methods. If enabled, the X509Certificate must contain all of the specified subject alternative names. If disabled, the X509Certificate must contain at least one of the specified subject alternative names.

The matchAllNames flag is true by default.
Parameters:
  matchAllNames - if true, the flag is enabled;if false, the flag is disabled.
See Also:   X509CertSelector.getMatchAllSubjectAltNames




setNameConstraints
public void setNameConstraints(byte[] bytes) throws IOException(Code)
Sets the name constraints criterion. The X509Certificate must have subject and subject alternative names that meet the specified name constraints.

The name constraints are specified as a byte array. This byte array should contain the DER encoded form of the name constraints, as they would appear in the NameConstraints structure defined in RFC 3280 and X.509. The ASN.1 definition of this structure appears below.


 NameConstraints ::= SEQUENCE {
 permittedSubtrees       [0]     GeneralSubtrees OPTIONAL,
 excludedSubtrees        [1]     GeneralSubtrees OPTIONAL }
 GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
 GeneralSubtree ::= SEQUENCE {
 base                    GeneralName,
 minimum         [0]     BaseDistance DEFAULT 0,
 maximum         [1]     BaseDistance OPTIONAL }
 BaseDistance ::= INTEGER (0..MAX)
 GeneralName ::= CHOICE {
 otherName                       [0]     OtherName,
 rfc822Name                      [1]     IA5String,
 dNSName                         [2]     IA5String,
 x400Address                     [3]     ORAddress,
 directoryName                   [4]     Name,
 ediPartyName                    [5]     EDIPartyName,
 uniformResourceIdentifier       [6]     IA5String,
 iPAddress                       [7]     OCTET STRING,
 registeredID                    [8]     OBJECT IDENTIFIER}
 

Note that the byte array supplied here is cloned to protect against subsequent modifications.
Parameters:
  bytes - a byte array containing the ASN.1 DER encoding ofa NameConstraints extension to be used for checkingname constraints. Only the value of the extension isincluded, not the OID or criticality flag. Can benull,in which case no name constraints check will be performed.
throws:
  IOException - if a parsing error occurs
See Also:   X509CertSelector.getNameConstraints




setPathToNames
public void setPathToNames(Collection<List<?>> names) throws IOException(Code)
Sets the pathToNames criterion. The X509Certificate must not include name constraints that would prohibit building a path to the specified names.

This method allows the caller to specify, with a single method call, the complete set of names which the X509Certificates's name constraints must permit. The specified value replaces the previous value for the pathToNames criterion.

This constraint is useful when building a certification path forward (from the target toward the trust anchor. If a partial path has been built, any candidate certificate must not include name constraints that would prohibit building a path to any of the names in the partial path.

The names parameter (if not null) is a Collection with one entry for each name to be included in the pathToNames criterion. Each entry is a List whose first entry is an Integer (the name type, 0-8) and whose second entry is a String or a byte array (the name, in string or ASN.1 DER encoded form, respectively). There can be multiple names of the same type. If null is supplied as the value for this argument, no pathToNames check will be performed.

Each name in the Collection may be specified either as a String or as an ASN.1 encoded byte array. For more details about the formats used, see X509CertSelector.addPathToName(int type,String name) addPathToName(int type, String name) and X509CertSelector.addPathToName(int type,byte[] name) addPathToName(int type, byte [] name) .

Note: for distinguished names, specify the byte array form instead of the String form. See the note in X509CertSelector.addPathToName(int,String) for more information.

Note that the names parameter can contain duplicate names (same name and name type), but they may be removed from the Collection of names returned by the X509CertSelector.getPathToNames getPathToNames method.

Note that a deep copy is performed on the Collection to protect against subsequent modifications.
Parameters:
  names - a Collection with one entry per name(or null)
throws:
  IOException - if a parsing error occurs
See Also:   X509CertSelector.getPathToNames




setPathToNamesInternal
void setPathToNamesInternal(Set<GeneralNameInterface> names)(Code)



setPolicy
public void setPolicy(Set<String> certPolicySet) throws IOException(Code)
Sets the policy constraint. The X509Certificate must include at least one of the specified policies in its certificate policies extension. If certPolicySet is empty, then the X509Certificate must include at least some specified policy in its certificate policies extension. If certPolicySet is null, no policy check will be performed.

Note that the Set is cloned to protect against subsequent modifications.
Parameters:
  certPolicySet - a Set of certificate policy OIDs instring format (or null). Each OID is represented by a set of nonnegative integers separated by periods.
throws:
  IOException - if a parsing error occurs on the OID such asthe first component is not 0, 1 or 2 or the second component isgreater than 39.
See Also:   X509CertSelector.getPolicy




setPrivateKeyValid
public void setPrivateKeyValid(Date privateKeyValid)(Code)
Sets the privateKeyValid criterion. The specified date must fall within the private key validity period for the X509Certificate. If null, no privateKeyValid check will be done.

Note that the Date supplied here is cloned to protect against subsequent modifications.
Parameters:
  privateKeyValid - the Date to check (ornull)
See Also:   X509CertSelector.getPrivateKeyValid




setSerialNumber
public void setSerialNumber(BigInteger serial)(Code)
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:   X509CertSelector.getSerialNumber



setSubject
public void setSubject(X500Principal subject)(Code)
Sets the subject criterion. The specified distinguished name must match the subject distinguished name in the X509Certificate. If null, any subject distinguished name will do.
Parameters:
  subject - a distinguished name as X500Principal(or null)
since:
   1.5



setSubject
public void setSubject(String subjectDN) throws IOException(Code)
Denigrated, use or instead. This method should not be relied on as it can fail to match some certificates because of a loss of encoding information in the RFC 2253 String form of some distinguished names.

Sets the subject criterion. The specified distinguished name must match the subject distinguished name in the X509Certificate. If null, any subject distinguished name will do.

If subjectDN is not null, it should contain a distinguished name, in RFC 2253 format.
Parameters:
  subjectDN - a distinguished name in RFC 2253 format(or null)
throws:
  IOException - if a parsing error occurs (incorrect form for DN)




setSubject
public void setSubject(byte[] subjectDN) throws IOException(Code)
Sets the subject criterion. The specified distinguished name must match the subject distinguished name in the X509Certificate. If null, any subject distinguished name will do.

If subjectDN is not null, it should contain a single DER encoded distinguished name, as defined in X.501. For the ASN.1 notation for this structure, see X509CertSelector.setIssuer(byte[] issuerDN) setIssuer(byte [] issuerDN) .
Parameters:
  subjectDN - a byte array containing the distinguished name inASN.1 DER format (or null)
throws:
  IOException - if an encoding error occurs (incorrect form for DN)




setSubjectAlternativeNames
public void setSubjectAlternativeNames(Collection<List<?>> names) throws IOException(Code)
Sets the subjectAlternativeNames criterion. The X509Certificate must contain all or at least one of the specified subjectAlternativeNames, depending on the value of the matchAllNames flag (see X509CertSelector.setMatchAllSubjectAltNamessetMatchAllSubjectAltNames ).

This method allows the caller to specify, with a single method call, the complete set of subject alternative names for the subjectAlternativeNames criterion. The specified value replaces the previous value for the subjectAlternativeNames criterion.

The names parameter (if not null) is a Collection with one entry for each name to be included in the subject alternative name criterion. Each entry is a List whose first entry is an Integer (the name type, 0-8) and whose second entry is a String or a byte array (the name, in string or ASN.1 DER encoded form, respectively). There can be multiple names of the same type. If null is supplied as the value for this argument, no subjectAlternativeNames check will be performed.

Each subject alternative name in the Collection may be specified either as a String or as an ASN.1 encoded byte array. For more details about the formats used, see X509CertSelector.addSubjectAlternativeName(int type,String name) addSubjectAlternativeName(int type, String name) and X509CertSelector.addSubjectAlternativeName(int type,byte[] name) addSubjectAlternativeName(int type, byte [] name) .

Note: for distinguished names, specify the byte array form instead of the String form. See the note in X509CertSelector.addSubjectAlternativeName(int,String) for more information.

Note that the names parameter can contain duplicate names (same name and name type), but they may be removed from the Collection of names returned by the X509CertSelector.getSubjectAlternativeNames getSubjectAlternativeNames method.

Note that a deep copy is performed on the Collection to protect against subsequent modifications.
Parameters:
  names - a Collection of names (or null)
throws:
  IOException - if a parsing error occurs
See Also:   X509CertSelector.getSubjectAlternativeNames




setSubjectKeyIdentifier
public void setSubjectKeyIdentifier(byte[] subjectKeyID)(Code)
Sets the subjectKeyIdentifier criterion. The X509Certificate must contain a SubjectKeyIdentifier extension for which the contents of the extension matches the specified criterion value. If the criterion value is null, no subjectKeyIdentifier check will be done.

If subjectKeyID is not null, it should contain a single DER encoded value corresponding to the contents of the extension value (not including the object identifier, criticality setting, and encapsulating OCTET STRING) for a SubjectKeyIdentifier extension. The ASN.1 notation for this structure follows.


 SubjectKeyIdentifier ::= KeyIdentifier
 KeyIdentifier ::= OCTET STRING
 

Since the format of subject key identifiers is not mandated by any standard, subject key identifiers are not parsed by the X509CertSelector. Instead, the values are compared using a byte-by-byte comparison.

Note that the byte array supplied here is cloned to protect against subsequent modifications.
Parameters:
  subjectKeyID - the subject key identifier (or null)
See Also:   X509CertSelector.getSubjectKeyIdentifier




setSubjectPublicKey
public void setSubjectPublicKey(PublicKey key)(Code)
Sets the subjectPublicKey criterion. The X509Certificate must contain the specified subject public key. If null, no subjectPublicKey check will be done.
Parameters:
  key - the subject public key to check for (or null)
See Also:   X509CertSelector.getSubjectPublicKey



setSubjectPublicKey
public void setSubjectPublicKey(byte[] key) throws IOException(Code)
Sets the subjectPublicKey criterion. The X509Certificate must contain the specified subject public key. If null, no subjectPublicKey check will be done.

Because this method allows the public key to be specified as a byte array, it may be used for unknown key types.

If key is not null, it should contain a single DER encoded SubjectPublicKeyInfo structure, as defined in X.509. The ASN.1 notation for this structure is as follows.


 SubjectPublicKeyInfo  ::=  SEQUENCE  {
 algorithm            AlgorithmIdentifier,
 subjectPublicKey     BIT STRING  }
 AlgorithmIdentifier  ::=  SEQUENCE  {
 algorithm               OBJECT IDENTIFIER,
 parameters              ANY DEFINED BY algorithm OPTIONAL  }
 -- contains a value of the type
 -- registered for use with the
 -- algorithm object identifier value
 

Note that the byte array supplied here is cloned to protect against subsequent modifications.
Parameters:
  key - a byte array containing the subject public key in ASN.1 DERform (or null)
throws:
  IOException - if an encoding error occurs (incorrect form for subject public key)
See Also:   X509CertSelector.getSubjectPublicKey




setSubjectPublicKeyAlgID
public void setSubjectPublicKeyAlgID(String oid) throws IOException(Code)
Sets the subjectPublicKeyAlgID criterion. The X509Certificate must contain a subject public key with the specified algorithm. If null, no subjectPublicKeyAlgID check will be done.
Parameters:
  oid - The object identifier (OID) of the algorithm to checkfor (or null). An OID is represented by aset of nonnegative integers separated by periods.
throws:
  IOException - if the OID is invalid, such asthe first component being not 0, 1 or 2 or the second componentbeing greater than 39.
See Also:   X509CertSelector.getSubjectPublicKeyAlgID



toString
public String toString()(Code)
Return a printable representation of the CertSelector. a String describing the contents of theCertSelector



Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.