com.rsa.certj.cert.extensions

Class OtherName

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

public class OtherName
extends Object
implements Cloneable, Serializable

This class is used in the GeneralName object.

The ASN.1 definition is as follows:

 OtherName ::= SEQUENCE {
   type-id     OBJECT IDENTIFIER,
   value       [0] EXPLICIT ANY DEFINED BY type-id }

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

See Also

Serialized Form

Constructor Summary

OtherName()

Constructs an empty OtherName object.

OtherName(byte[] typeId, int typeOffset, int typeLen, byte[] value, int valueOffset, int valueLen)

Creates an OtherName object and initializes it with the given values.

 

Method Summary

 void

addValues(byte[] typeId, int typeOffset, int typeLen, byte[] value, int valueOffset, int valueLen)

Sets the value of the OtherName object.

 Object

clone()

Overrides the default clone method to get a deeper clone.

 void

decodeValue(byte[] valueBER, int offset, int special)

Decodes the value.

 boolean

equals(Object obj)

Returns true if this object and obj contain the same OtherName; returns false otherwise.

 int

getDEREncoding(byte[] encoding, int offset, int special)

Places the DER encoding of the this object into encoding, beginning at offset.

 int

getDERLen(int special)

Returns the number of bytes that will be used by the DER encoding of this OtherName object.

static int

getNextBEROffset(byte[] nameBER, int offset)

Given nameBER, the BER encoding of an OtherName object, beginning at offset, finds the index to the next element in the encoding.

 byte[]

getTypeID()

Returns the TypeId value of the OtherName object.

 byte[]

getValue()

Returns the value of the OtherName object.

 String

toString()

Gets a String representation of the OtherName object.

 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OtherName

public OtherName()
Constructs an empty OtherName object.

OtherName

public OtherName(byte[] typeId,
                 int typeOffset,
                 int typeLen,
                 byte[] value,
                 int valueOffset,
                 int valueLen)
Creates an OtherName object and initializes it with the given values.

Parameters

         typeId  

The OtherName type.

         typeOffset  

The offset into the typeId array.

         typeLen  

The length of the data in the typeId array.

         value  

The OtherName value.

         valueOffset  

The offset into value array.

         valueLen  

The length of the data in the value array.

Method Detail

decodeValue

public void decodeValue(byte[] valueBER,
                        int offset,
                        int special)
                 throws NameException
Decodes the value. The input is the BER encoding.

Parameters

         valueBER  

The BER encoding of the object.

         offset  

The offset into valueBER where the encoding begins.

         special  

The special circumstances of the BER encoding, if there are any. See the class ASN1 for more information on special.

Throws

NameException - If the encoding is invalid for this object.

addValues

public void addValues(byte[] typeId,
                      int typeOffset,
                      int typeLen,
                      byte[] value,
                      int valueOffset,
                      int valueLen)
Sets the value of the OtherName object.

Creates an OtherName object and initializes it with the given values.

Parameters

         typeId  

The OtherName type.

         typeOffset  

The offset into the typeId array.

         typeLen  

The length of the data in the typeId array.

         value  

The OtherName value.

         valueOffset  

The offset into value array.

         valueLen  

The length of the data in the value array.


getTypeID

public byte[] getTypeID()
Returns the TypeId value of the OtherName object.

Returns

The TypeId value of the OtherName object.

getValue

public byte[] getValue()
Returns the value of the OtherName object.

Returns

The value of the OtherName object.

toString

public String toString()
Gets a String representation of the OtherName object.

Overrides

toString in class Object

Returns

A String that describes this OtherName object.

getNextBEROffset

public static int getNextBEROffset(byte[] nameBER,
                                   int offset)
                            throws NameException
Given nameBER, the BER encoding of an OtherName object, beginning at offset, finds the index to the next element in the encoding. In other words, gets the next offset after the name.

For example, if the offset is 120 and the length of the BER encoding of the ORAddress object is 1819 bytes, then this method will return 1939, the index immediately following the ORAddress object. That is, nameBER[120] is the first byte in the encoding of the ORAddress object, nameBER[1938] is the last byte in the encoding of the ORAddress object, and the next element begins at index 1939.

Parameters

         nameBER  

The BER encoding of an OtherName object.

         offset  

The offset into nameBER where the encoding begins.

Returns

The index to the next element in the BER encoding.

Throws

NameException - If the method cannot read the BER encoding.

getDERLen

public int getDERLen(int special)
              throws NameException
Returns the number of bytes that will be used by the DER encoding of this OtherName object. If this object is not set with values, this method returns zero.

Parameters

         special  

The special DER circumstances of the encoding, if there are any. See the class ASN1 for more information on special.

Returns

The number of bytes that will be used in the DER encoding of this object.

Throws

NameException - If this method cannot get the DER encoding.

getDEREncoding

public int getDEREncoding(byte[] encoding,
                          int offset,
                          int special)
                   throws NameException
Places the DER encoding of the this object into encoding, beginning at offset. To determine the length of the encoding, call getDERLen. If this object is not yet set with values, then this method places nothing into the array and returns zero. To indicate that the DER encoding should follow any special instructions, use the special argument.

For example, to indicate the following:

      value   [1] IMPLICIT OCTET STRING
 
Pass in the following:

      special = (ASN1.CONTEXT_IMPLICIT | 1);
 
If there are no special circumstances, pass in the following:

      special = 0
 
See the class ASN1 for more information on special.

Parameters

         encoding  

The byte array into which the result will be placed.

         offset  

The offset into encoding where writing begins.

         special  

The special circumstances of the DER encoding, if there are any. See the class ASN1 for more information on special.

Returns

The number of bytes actually placed into encoding.

Throws

NameException - If the method cannot create the DER encoding.

equals

public boolean equals(Object obj)
Returns true if this object and obj contain the same OtherName; returns false otherwise.

Overrides

equals in class Object

Parameters

         obj  

An instance of the OtherName object.

Returns

A boolean indicating whether these objects are equal.

clone

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

Returns

A new OtherName 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