com.ibm.security.pkcs9
Class UnstructuredAddress

java.lang.Object
  |
  +--com.ibm.security.pkcsutil.PKCSDerObject
        |
        +--com.ibm.security.pkcs9.PKCS9DerObject
              |
              +--com.ibm.security.pkcs9.UnstructuredAddress

public final class UnstructuredAddress
extends PKCS9DerObject
implements Cloneable

Implements the ASN.1 UnstructuredAddress attribute type.

An UnstructuredAddress attribute can have multiple attribute values.

UnstructuredAddress ::= CHOICE { PrintableString, T61String }

UnstructuredAddress objects are immutable; they cannot be changed once created.


Fields inherited from class com.ibm.security.pkcsutil.PKCSDerObject
provider
 
Constructor Summary
UnstructuredAddress(byte[] der)
          Create an UnstructuredAddress object with a DER byte array.
UnstructuredAddress(byte[] der, String provider)
          Create an UnstructuredAddress object with a DER byte array.
UnstructuredAddress(String[] addresses, byte type)
          Create a UnstructuredAddress object with a String array and a type to indicate if the String array should be encoded as PrintableString or T61String.
UnstructuredAddress(String[] addresses, byte type, String provider)
          Create a UnstructuredAddress object with a String array and a type to indicate if the String array should be encoded as PrintableString or T61String.
UnstructuredAddress(String filename, boolean base64)
          Create an UnstructuredAddress with the filename of the DER-encoded or BASE64-encoded object.
UnstructuredAddress(String filename, boolean base64, String provider)
          Create an UnstructuredAddress with the filename of the DER-encoded or BASE64-encoded object.
 
Method Summary
 Object clone()
          Creates a clone of this UnstructuredAddress object.
protected  void decode(com.ibm.security.pkcs9.DerValue encoding)
          Initializes a UnstructuredAddress object from a DerValue.
 void encode(OutputStream os)
          Encodes this object to an OutputStream.
 boolean equals(Object obj)
          Determines if this UnstructuredAddress object is equivalent to the input object.
 String getAttributeName()
          Returns a String indicating the name of the attribute.
 ObjectIdentifier getObjectIdentifier()
          Returns the ObjectIdentifer for the UnstructuredAddress attribute.
 byte getType()
          Returns the type attribute to indicate how the unstructured addresses should be encoded.
 String[] getUnstructuredAddresses()
          Returns a copy of the array of unstructured addresses for this UnstructuredAddress object.
 Object getValue()
          Calls the getUnstructuredAddresses method.
 boolean isSingleValued()
          Returns false.
 boolean isTagValid(byte tag)
          Returns a boolean indicating if the tag is valid for this object.
 String toString()
          Returns a string representation of this UnstructuredAddress object.
 
Methods inherited from class com.ibm.security.pkcs9.PKCS9DerObject
getName, getOID, getPKCSAttribute
 
Methods inherited from class com.ibm.security.pkcsutil.PKCSDerObject
decode, decode, encode, hashCode, read, readBASE64, write, write, writeBASE64
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UnstructuredAddress

public UnstructuredAddress(byte[] der)
                    throws IOException
Create an UnstructuredAddress object with a DER byte array.
Parameters:
der - a DER byte array of a UnstructuredAddress object.
Throws:
IOException - on decoding errors.

UnstructuredAddress

public UnstructuredAddress(byte[] der,
                           String provider)
                    throws IOException
Create an UnstructuredAddress object with a DER byte array.
Parameters:
der - a DER byte array of a UnstructuredAddress object.
provider - the provider to be used.
Throws:
IOException - on decoding errors.

UnstructuredAddress

public UnstructuredAddress(String[] addresses,
                           byte type)
Create a UnstructuredAddress object with a String array and a type to indicate if the String array should be encoded as PrintableString or T61String.
Parameters:
addresses - String array
type - PrintableString or tag_T61String.

UnstructuredAddress

public UnstructuredAddress(String[] addresses,
                           byte type,
                           String provider)
Create a UnstructuredAddress object with a String array and a type to indicate if the String array should be encoded as PrintableString or T61String.
Parameters:
addresses - String array
type - PrintableString or tag_T61String.
provider - the provider to be used.

UnstructuredAddress

public UnstructuredAddress(String filename,
                           boolean base64)
                    throws IOException
Create an UnstructuredAddress with the filename of the DER-encoded or BASE64-encoded object.
Parameters:
filename - name of the DER-encoded or base64-encoded object
base64 - true if BASE64-encoded, false if DER-encoded
Throws:
IOException - on decoding errors.

UnstructuredAddress

public UnstructuredAddress(String filename,
                           boolean base64,
                           String provider)
                    throws IOException
Create an UnstructuredAddress with the filename of the DER-encoded or BASE64-encoded object.
Parameters:
filename - name of the DER-encoded or base64-encoded object
base64 - true if BASE64-encoded, false if DER-encoded
provider - the provider to be used
Throws:
IOException - on decoding errors.
Method Detail

clone

public Object clone()
Creates a clone of this UnstructuredAddress object.
Overrides:
clone in class Object
Returns:
clone of this UnstructuredAddress object.

equals

public boolean equals(Object obj)
Determines if this UnstructuredAddress object is equivalent to the input object.
Overrides:
equals in class PKCSDerObject
Parameters:
other - the object to compare this one to.
Returns:
true, if the two objects are equivalent, false otherwise.

getObjectIdentifier

public ObjectIdentifier getObjectIdentifier()
Returns the ObjectIdentifer for the UnstructuredAddress attribute.
Overrides:
getObjectIdentifier in class PKCSDerObject
Returns:
the ObjectIdentifer for the UnstructuredAddress attribute.

encode

public void encode(OutputStream os)
            throws IOException
Encodes this object to an OutputStream. The UnstructuredAddress object is encoded as a PrintableString or T61String depending upon the type attribute value.
Overrides:
encode in class PKCSDerObject
Parameters:
os - the OutputStream to write the encoded data to.
Throws:
IOException - on encoding errors.

getUnstructuredAddresses

public String[] getUnstructuredAddresses()
Returns a copy of the array of unstructured addresses for this UnstructuredAddress object.
Returns:
String array of unstructured address.

getType

public byte getType()
Returns the type attribute to indicate how the unstructured addresses should be encoded. The type is an immutable object.
Returns:
PrintableString or T61String.

getValue

public Object getValue()
Calls the getUnstructuredAddresses method. Standard method to access the value of the PKCS #9 object.
Overrides:
getValue in class PKCS9DerObject

isTagValid

public boolean isTagValid(byte tag)
Returns a boolean indicating if the tag is valid for this object.
Overrides:
isTagValid in class PKCS9DerObject
Returns:
true if PrintableString or T61String, false otherwise.

isSingleValued

public boolean isSingleValued()
Returns false. UnstructuredAddress allows multiple attribute values.
Overrides:
isSingleValued in class PKCS9DerObject
Returns:
false

getAttributeName

public String getAttributeName()
Returns a String indicating the name of the attribute.
Overrides:
getAttributeName in class PKCS9DerObject
Returns:
name of the UnstructuredAddress attribute.

toString

public String toString()
Returns a string representation of this UnstructuredAddress object.
Overrides:
toString in class PKCSDerObject
Returns:
a string representation of this object.

decode

protected void decode(com.ibm.security.pkcs9.DerValue encoding)
               throws IOException
Initializes a UnstructuredAddress object from a DerValue. The DER encoding * must be in the format specified by the UnstructuredAddress ASN.1 notation. * The type attribute on the UnstructuredAddress object is set according to the DER encoding tag.
Overrides:
decode in class PKCS9DerObject
Parameters:
encoding - a DER-encoded UnstructuredAddress object.
Throws:
IOException - on parsing error.