com.rsa.certj.cert.extensions

Class SubjectDirectoryAttributes

java.lang.Object
  |
  +--com.rsa.certj.cert.extensions.X509V3Extension
        |
        +--com.rsa.certj.cert.extensions.SubjectDirectoryAttributes
All Implemented Interfaces:
CertExtension, Cloneable, Serializable

public class SubjectDirectoryAttributes
extends X509V3Extension
implements Cloneable, Serializable, CertExtension

This class builds and holds the SubjectDirectoryAttributes extension. It conveys any desired directory attribute values for the subject of the certificate. A certificate user might need to obtain, in a secure manner, certain identifying information about a subject to have confidence that the subject is indeed the person or thing intended. This information could include postal address, position in a corporation, or a picture image. Such information may be conveniently represented as directory attributes, but these attributes are not necessarily part of the distinguished name. This field is therefore needed for conveying additional directory attributes beyond those in the distinguished name.

The X.509 definition is as follows:

 subjectDirectoryAttributes EXTENSION ::= {
	SYNTAX	AttributesSyntax
	IDENTIFIED BY id-ce-subjectDirectoryAttributes }

 AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
 
 Attribute  ::=  SEQUENCE {
       type    AttributeType,
       values  SET OF AttributeValue }

 AttributeType  ::=   OBJECT IDENTIFIER

 AttributeValue ::=   ANY
This extension is always non-critical.

Copyright © RSA Security Inc., 1999-2001. All rights reserved.

See Also

Serialized Form

Fields inherited from class com.rsa.certj.cert.extensions.X509V3Extension
ARCHIVE_CUTOFF, ARCHIVE_CUTOFF_OID, AUTHORITY_INFO_ACCESS, AUTHORITY_INFO_OID, AUTHORITY_KEY_ID, BASIC_CONSTRAINTS, BIO_INFO, BIO_INFO_OID, CERT_POLICIES, CERTIFICATE_ISSUER, CRL_DISTRIBUTION_POINTS, CRL_NUMBER, CRL_REFERENCE, CRL_REFERENCE_OID, DELTA_CRL_INDICATOR, EXTENDED_KEY_USAGE, HOLD_INSTRUCTION_CODE, INHIBIT_ANY_POLICY, INVALIDITY_DATE, ISSUER_ALT_NAME, ISSUING_DISTRIBUTION_POINT, KEY_USAGE, NAME_CONSTRAINTS, NETSCAPE_BASE_URL, NETSCAPE_BASE_URL_OID, NETSCAPE_CA_POLICY_URL, NETSCAPE_CA_POLICY_URL_OID, NETSCAPE_CA_REVOCATION_URL, NETSCAPE_CA_REVOCATION_URL_OID, NETSCAPE_CERT_RENEWAL_URL, NETSCAPE_CERT_RENEWAL_URL_OID, NETSCAPE_CERT_TYPE, NETSCAPE_CERT_TYPE_OID, NETSCAPE_COMMENT, NETSCAPE_COMMENT_OID, NETSCAPE_REVOCATION_URL, NETSCAPE_REVOCATION_URL_OID, NETSCAPE_SSL_SERVER_NAME, NETSCAPE_SSL_SERVER_NAME_OID, NON_STANDARD_EXTENSION, OCSP_ACCEPTABLE_RESPONSES, OCSP_ACCEPTABLE_RESPONSES_OID, OCSP_NOCHECK, OCSP_NOCHECK_OID, OCSP_NONCE, OCSP_NONCE_OID, OCSP_SERVICE_LOCATOR, OCSP_SERVICE_LOCATOR_OID, POLICY_CONSTRAINTS, POLICY_MAPPINGS, PRIVATE_KEY_USAGE_PERIOD, QC_STATEMENTS, QC_STATEMENTS_OID, REASON_CODE, SUBJECT_ALT_NAME, SUBJECT_DIRECTORY_ATTRIBUTES, SUBJECT_KEY_ID, VERISIGN_CZAG, VERISIGN_CZAG_OID, VERISIGN_FIDELITY_ID, VERISIGN_FIDELITY_ID_OID, VERISIGN_JURISDICTION_HASH, VERISIGN_JURISDICTION_HASH_OID, VERISIGN_NETSCAPE_INBOX_V1, VERISIGN_NETSCAPE_INBOX_V1_OID, VERISIGN_NETSCAPE_INBOX_V2, VERISIGN_NETSCAPE_INBOX_V2_OID, VERISIGN_NON_VERIFIED, VERISIGN_NON_VERIFIED_OID, VERISIGN_SERIAL_NUMBER, VERISIGN_SERIAL_NUMBER_OID, VERISIGN_TOKEN_TYPE, VERISIGN_TOKEN_TYPE_OID
 

Constructor Summary

SubjectDirectoryAttributes()

Constructs an empty SubjectDirectoryAttributes object.

SubjectDirectoryAttributes(X501Attribute attribute, boolean criticality)

Creates a SubjectDirectoryAttributes object and initializes it with the given values.

 

Method Summary

 void

addAttribute(X501Attribute attribute)

Adds a directory attribute to this extension.

 Object

clone()

Overrides the default clone method to get a deeper clone.

 void

decodeValue(byte[] valueBER, int offset)

Decode the value.

 int

derEncodeValue(byte[] encoding, int offset)

Place the encoding of the value into encoding, beginning at offset.

 int

derEncodeValueInit()

Initialize for encoding the value.

 X501Attribute

getAttributes(int index)

Gets the directory attribute from this extension at the specified index.

 int

getAttributesCount()

Gets the directory attribute count.

 
Methods inherited from class com.rsa.certj.cert.extensions.X509V3Extension
extend, getCriticality, getDEREncoding, getDERLen, getExtensionType, getExtensionTypeString, getInstance, getNextBEROffset, isExtensionType, setCriticality, setEncoding, setSpecialOID, setStandardOID
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SubjectDirectoryAttributes

public SubjectDirectoryAttributes()
Constructs an empty SubjectDirectoryAttributes object.

SubjectDirectoryAttributes

public SubjectDirectoryAttributes(X501Attribute attribute,
                                  boolean criticality)
Creates a SubjectDirectoryAttributes object and initializes it with the given values.

Parameters

         attribute  

A directory attribute value for the subject of the certificate.

         criticality  

The user-specified criticality.

Method Detail

addAttribute

public void addAttribute(X501Attribute attribute)
Adds a directory attribute to this extension.

Parameters

         attribute  

The X501 attribute object to add.


getAttributes

public X501Attribute getAttributes(int index)
                            throws CertificateException
Gets the directory attribute from this extension at the specified index.

Parameters

         index  

The index to the directory attribute to return.

Returns

The directory attribute, a X501Attribute object.

Throws

CertificateException - If the specified index is invalid.

getAttributesCount

public int getAttributesCount()
Gets the directory attribute count.

Returns

The number of directory attributes in this extension.

decodeValue

public void decodeValue(byte[] valueBER,
                        int offset)
                 throws CertificateException
Decode the value. The input is the BER encoding that was wrapped in the OCTET STRING.

Overrides

decodeValue in class X509V3Extension

Parameters

         valueBER  

The BER encoding of the extension's value.

         offset  

The offset into valueBER where the encoding begins.

Throws

CertificateException - If the encoding is invalid for this extension.

derEncodeValueInit

public int derEncodeValueInit()
Initialize for encoding the value.

Overrides

derEncodeValueInit in class X509V3Extension

Returns

How many bytes the encoding will be.

derEncodeValue

public int derEncodeValue(byte[] encoding,
                          int offset)
Place the encoding of the value into encoding, beginning at offset. This is the actual contents that are wrapped in the OCTET STRING (not the surrounding OCTET STRING tag and length).

Overrides

derEncodeValue in class X509V3Extension

Parameters

         encoding  

The byte array into which the result will be placed.

         offset  

The offest into encoding where the writing is to begin.

Returns

The number of bytes actually placed into encoding.

clone

public Object clone()
             throws CloneNotSupportedException
Overrides the default clone method to get a deeper clone.

Overrides

clone in class X509V3Extension

Returns

A new SubjectDirectoryAttributes object, a copy of this object.

Throws

CloneNotSupportedException - If the cloning operation is not successful.


RSA BSAFE ® Cert-J 2.1.1 001-047007-211-001-000