SHOW Signed

net.rim.device.api.crypto.asn1
Class ASN1InputStream

java.lang.Object
  |
  +--net.rim.device.api.crypto.asn1.ASN1InputStream

public class ASN1InputStream
extends Object

A parser which parses bytes according to the ASN.1 Distinguished Encoding Rules (DER) and Basic Encoding Rules (BER) format specification.

Note: This is parses data in the same way that ASN1InputByteArray does. The difference is that ASN1InputByteArray class acts on byte arrays, rather than input streams, and is less object intensive. Hence, ASN1InputByteArray should be used instead of ASN1InputStream whenever possible. The only time you would want to use ASN1InputStream over ASN1InputByteArray is when you wish to be looking at multiple positions in the stream at once ( such as if you want to look at two sequences, within the same structure, at the same time.

Example Usage

The following example inputs a Test type sequence of DER-encoded bytes from a file, in the ASN.1 format:

Note that exception caching is omitted for clarity.

 Test   ::=   SEQUENCE {
      myNumber    INTEGER,
      myArray     OCTET_STRING 
 }
 

// Declarations of variables which will hold the values from the Test fields int myNumber; byte[] myArray; // Our input stream is an object which inherits from java.io.InputStream InputStream inputStream = ...; // Create an ASN.1 input stream (which uses DER encoding) ASN1InputStream asn1Input = ASN1InputStream(inputStream); // Read the beginning of an ASN.1 sequence ASN1InputStream testSequence = asn1Input.readSequence(); // Read an integer value from the input stream myNumber = testSequence.readInteger(); // Read the octet string myArray = testSequence.readOctetStringAsByteArray(); // The value of the ASN.1 type "Test" is now stored in myNumber and myArray

Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

Since:
JDE 3.6.0
See Also:
DERTags, ASN1InputByteArray, ASN1OutputStream

Constructor Summary
 Category: Signed ASN1InputStream(byte[] data)
          Creates an ASN1InputStream object based upon the data in the given byte array.
 Category: Signed ASN1InputStream(byte[] data, int offset, int length)
          Creates an ASN1InputStream based upon the data in the given byte array.
 Category: Signed ASN1InputStream(InputStream inputStream)
          Constructs an ASN1InputStream object which reads bytes from inputStream.
 
Method Summary
 Category: Signed  boolean endOfStream()
          Checks if we are at the end of this ASN1 stream, returning true if this is the case.
 Category: Signed  boolean isNextTagApplicationSpecific()
          Returns true if the next tag indicates application-specific.
 Category: Signed  boolean isNextTagContextSpecific()
          Returns true if the next tag indicates context-specific.
 Category: Signed  boolean isNextTagPrivate()
          Returns true if the next tag indicates private-use.
 Category: Signed  boolean isNextTagUniversal()
          Returns true if the next tag indicates Universal.
 Category: Signed  int peekNextTag()
          Returns the next tag value from the stream (without any flags).
 Category: Signed  ASN1BitSet readBitString()
          Reads a bit string in from the ASN1 input stream.
 Category: Signed  ASN1BitSet readBitString(int tagging, int tag)
          Reads a bit string in from the ASN1 input stream with tagging.
 Category: Signed  ASN1BitSet readBitString(int tagging, int tag, byte[] defaultValue)
          Reads a bit string in from the ASN1 input stream with tagging.
 Category: Signed  ASN1BitSet readBitString(int tagging, int tag, int clsFlags)
          Reads a bit string in from the ASN1 input stream with tagging.
 Category: Signed  ASN1BitSet readBitString(int tagging, int tag, int clsFlags, byte[] defaultValue)
          Reads a bit string in from the ASN1 input stream with tagging.
 Category: Signed  String readBMPString()
          Reads a BMP string in from the ASN1 input stream.
 Category: Signed  String readBMPString(int tagging, int tag)
          Reads a BMP string in from the ASN1 input stream with tagging.
 Category: Signed  String readBMPString(int tagging, int tag, int clsFlags)
          Reads a BMP string in from the ASN1 input stream with tagging.
 Category: Signed  String readBMPString(int tagging, int tag, int clsFlags, String defaultValue)
          Reads a BMP string in from the ASN1 input stream with tagging.
 Category: Signed  String readBMPString(int tagging, int tag, String defaultValue)
          Reads a BMP string in from the ASN1 input stream with tagging.
 Category: Signed  boolean readBoolean()
          Reads a boolean in from the ASN1 input stream.
 Category: Signed  boolean readBoolean(int tagging, int tag)
          Reads a boolean in from the ASN1 input stream with tagging.
 Category: Signed  boolean readBoolean(int tagging, int tag, boolean defaultValue)
          Reads a boolean in from the ASN1 input stream with tagging.
 Category: Signed  boolean readBoolean(int tagging, int tag, int clsFlags)
          Reads a boolean in from the ASN1 input stream with tagging.
 Category: Signed  boolean readBoolean(int tagging, int tag, int clsFlags, boolean defaultValue)
          Reads a boolean in from the ASN1 input stream with tagging.
 Category: Signed  int readEnumerated()
          Reads an enumerated value in from the ASN1 input stream.
 Category: Signed  int readEnumerated(int tagging, int tag)
          Reads an enumerated value in from the ASN1 input stream with tagging.
 Category: Signed  int readEnumerated(int tagging, int tag, int defaultValue)
          Reads an enumerated value in from the ASN1 input stream with tagging.
 Category: Signed  int readEnumerated(int tagging, int tag, int clsFlags, int defaultValue)
          Reads an enumerated value in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readFieldAsByteArray()
          Returns the current field as a byte array.
 Category: Signed  long readGeneralizedTime()
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readGeneralizedTime(int tagging, int tag)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readGeneralizedTime(int tagging, int tag, int clsFlags)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readGeneralizedTime(int tagging, int tag, int clsFlags, long defaultValue)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readGeneralizedTime(int tagging, int tag, long defaultValue)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  String readIA5String()
          Reads an IA5 string in from the ASN1 input stream.
 Category: Signed  String readIA5String(int tagging, int tag)
          Reads a IA5 string in from the ASN1 input stream with tagging.
 Category: Signed  String readIA5String(int tagging, int tag, int clsFlags)
          Reads a IA5 string in from the ASN1 input stream with tagging.
 Category: Signed  String readIA5String(int tagging, int tag, int clsFlags, String defaultValue)
          Reads a IA5 string in from the ASN1 input stream with tagging.
 Category: Signed  String readIA5String(int tagging, int tag, String defaultValue)
          Reads a IA5 string in from the ASN1 input stream with tagging.
 Category: Signed  int readInteger()
          Reads an integer in from the ASN1 input stream.
 Category: Signed  int readInteger(int tagging, int tag)
          Reads an integer in from the ASN1 input stream with tagging.
 Category: Signed  int readInteger(int tagging, int tag, int defaultValue)
          Reads an integer in from the ASN1 input stream with tagging.
 Category: Signed  int readInteger(int tagging, int tag, int clsFlags, int defaultValue)
          Reads an integer in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readIntegerAsByteArray()
          Reads an integer (as a byte array) in from the ASN1 input stream.
 Category: Signed  byte[] readIntegerAsByteArray(int tagging, int tag)
          Reads an integer (as a byte array) in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readIntegerAsByteArray(int tagging, int tag, byte[] defaultValue)
          Reads an integer (as a byte array) in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readIntegerAsByteArray(int tagging, int tag, int clsFlags)
          Reads an integer (as a byte array) in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readIntegerAsByteArray(int tagging, int tag, int clsFlags, byte[] defaultValue)
          Reads an integer (as a byte array) in from the ASN1 input stream with tagging.
 Category: Signed  boolean readNull()
          Reads a null in from the ASN1 input stream.
 Category: Signed  boolean readNull(int tagging, int tag)
          Reads a null in from the ASN1 input stream with tagging.
 Category: Signed  boolean readNull(int tagging, int tag, boolean defaultValue)
          Reads a null in from the ASN1 input stream with tagging.
 Category: Signed  boolean readNull(int tagging, int tag, int clsFlags)
          Reads a null in from the ASN1 input stream with tagging.
 Category: Signed  boolean readNull(int tagging, int tag, int clsFlags, boolean defaultValue)
          Reads a null in from the ASN1 input stream with tagging.
 Category: Signed  InputStream readOctetString()
          Reads an octet string in from the ASN1 input stream.
 Category: Signed  InputStream readOctetString(int tagging, int tag)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  InputStream readOctetString(int tagging, int tag, byte[] defaultValue)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  InputStream readOctetString(int tagging, int tag, int clsFlags)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  InputStream readOctetString(int tagging, int tag, int clsFlags, byte[] defaultValue)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readOctetStringAsByteArray()
          Reads an octet string in from the ASN1 input stream.
 Category: Signed  byte[] readOctetStringAsByteArray(int tagging, int tag)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readOctetStringAsByteArray(int tagging, int tag, byte[] defaultValue)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readOctetStringAsByteArray(int tagging, int tag, int clsFlags)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  byte[] readOctetStringAsByteArray(int tagging, int tag, int clsFlags, byte[] defaultValue)
          Reads an octet string in from the ASN1 input stream with tagging.
 Category: Signed  OID readOID()
          Returns an ASN.1 Object Identifier (OID) from the input.
 Category: Signed  OID readOID(int tagging, int tag)
          Returns an ASN.1 Object Identifier (OID) from the input with tagging.
 Category: Signed  OID readOID(int tagging, int tag, int clsFlags)
          Returns an ASN.1 Object Identifier (OID) from the input with tagging.
 Category: Signed  OID readOID(int tagging, int tag, int clsFlags, OID defaultValue)
          Returns an ASN.1 Object Identifier (OID) from the input with tagging.
 Category: Signed  OID readOID(int tagging, int tag, OID defaultValue)
          Returns an ASN.1 Object Identifier (OID) from the input with tagging.
 Category: Signed  String readPrintableString()
          Reads a PRINTABLE string in from the ASN1 input stream.
 Category: Signed  String readPrintableString(int tagging, int tag)
          Reads a PRINTABLE string in from the ASN1 input stream with tagging.
 Category: Signed  String readPrintableString(int tagging, int tag, int clsFlags)
          Reads a PRINTABLE string in from the ASN1 input stream with tagging.
 Category: Signed  String readPrintableString(int tagging, int tag, int clsFlags, String defaultValue)
          Reads a PRINTABLE string in from the ASN1 input stream with tagging.
 Category: Signed  String readPrintableString(int tagging, int tag, String defaultValue)
          Reads a PRINTABLE string in from the ASN1 input stream with tagging.
 Category: Signed  ASN1InputStream readSequence()
          Reads a sequence in from the ASN1 input stream.
 Category: Signed  ASN1InputStream readSequence(int tagging, int tag)
          Reads a sequence in from the ASN1 input stream with tagging.
 Category: Signed  ASN1InputStream readSequence(int tagging, int tag, int clsFlags)
          Reads a sequence in from the ASN1 input stream with tagging.
 Category: Signed  ASN1InputStream readSet()
          Reads a set in from the ASN1 input stream.
 Category: Signed  ASN1InputStream readSet(int tagging, int tag)
          Reads a set in from the ASN1 input stream with tagging.
 Category: Signed  ASN1InputStream readSet(int tagging, int tag, int clsFlags)
          Reads a set in from the ASN1 input stream with tagging.
 Category: Signed  InputStream readStreamWithTag(int tag)
          Reads a stream from the ASN1 input stream with tagging.
 Category: Signed  String readT61String()
          Reads a T61 string in from the ASN1 input stream.
 Category: Signed  String readT61String(int tagging, int tag)
          Reads a T61 string in from the ASN1 input stream with tagging.
 Category: Signed  String readT61String(int tagging, int tag, int clsFlags)
          Reads a T61 string in from the ASN1 input stream with tagging.
 Category: Signed  String readT61String(int tagging, int tag, int clsFlags, String defaultValue)
          Reads a T61 string in from the ASN1 input stream with tagging.
 Category: Signed  String readT61String(int tagging, int tag, String defaultValue)
          Reads a T61 string in from the ASN1 input stream with tagging.
 Category: Signed  long readUTCTime()
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readUTCTime(int tagging, int tag)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readUTCTime(int tagging, int tag, int clsFlags)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readUTCTime(int tagging, int tag, int clsFlags, long defaultValue)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  long readUTCTime(int tagging, int tag, long defaultValue)
          Returns an ASN.1 explicit time object from the input.
 Category: Signed  String readUTF8String()
          Reads a UTF8 string in from the ASN1 input stream.
 Category: Signed  String readUTF8String(int tagging, int tag)
          Reads a UTF8 string in from the ASN1 input stream with tagging.
 Category: Signed  String readUTF8String(int tagging, int tag, int clsFlags)
          Reads a UTF8 string in from the ASN1 input stream with tagging.
 Category: Signed  String readUTF8String(int tagging, int tag, int clsFlags, String defaultValue)
          Reads a UTF8 string in from the ASN1 input stream with tagging.
 Category: Signed  String readUTF8String(int tagging, int tag, String defaultValue)
          Reads a UTF8 string in from the ASN1 input stream with tagging.
 Category: Signed  void skipField()
          Skips the current field.
 Category: Signed  void skipField(int tag)
          Skips the current field.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ASN1InputStream

public ASN1InputStream(byte[] data)
Creates an ASN1InputStream object based upon the data in the given byte array.

Parameters:
data - The byte array containing the ASN1 data.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

ASN1InputStream

public ASN1InputStream(byte[] data,
                       int offset,
                       int length)
Creates an ASN1InputStream based upon the data in the given byte array.

Parameters:
data - The byte array containing the ASN1 data.
offset - The starting offset of the ASN1 data within the array.
length - The length of the ASN1 data.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

ASN1InputStream

public ASN1InputStream(InputStream inputStream)
Constructs an ASN1InputStream object which reads bytes from inputStream.

Parameters:
inputStream - The input stream containing the ASN1 data (must not be null).
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.
Method Detail

endOfStream

public boolean endOfStream()
                    throws IOException,
                           ASN1EncodingException
Checks if we are at the end of this ASN1 stream, returning true if this is the case.

Returns:
A boolean that indicates the end of the stream.
Throws:
IOException - Thrown if an I/O error occurs.
ASN1EncodingException - Thrown if the data encountered is not in the expected format.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

isNextTagApplicationSpecific

public boolean isNextTagApplicationSpecific()
                                     throws EOFException,
                                            IOException
Returns true if the next tag indicates application-specific.

Application-specific means that the assigned tag is specific to the scope of the current application.

Returns:
A boolean that determines if the next tag is application specific.
Throws:
EOFException - Thrown when the end of the stream is reached.
IOException - Thrown in the case of an I/O error.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

isNextTagContextSpecific

public boolean isNextTagContextSpecific()
                                 throws EOFException,
                                        IOException
Returns true if the next tag indicates context-specific.

Context-specific means that the assigned tag is specific to the constructed type you find it in.

Returns:
A boolean that determines if the next tag is context specific.
Throws:
EOFException - Thrown when the end of the stream is reached.
IOException - Thrown in the case of an I/O error.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

isNextTagPrivate

public boolean isNextTagPrivate()
                         throws EOFException,
                                IOException
Returns true if the next tag indicates private-use. Private-use means that the assigned tag is private.

Returns:
A boolean that represents the type of the next tag.
Throws:
EOFException - Thrown when the end of the stream is reached.
IOException - Thrown in the case of an I/O error.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

isNextTagUniversal

public boolean isNextTagUniversal()
                           throws EOFException,
                                  IOException
Returns true if the next tag indicates Universal.

Universal means that the assigned tag is recognized outside the scope of the current construction.

Returns:
A boolean that indicates the type of the next tag.
Throws:
EOFException - Thrown when the end of the stream is reached.
IOException - Thrown in the case of an I/O error.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

peekNextTag

public int peekNextTag()
                throws EOFException,
                       IOException
Returns the next tag value from the stream (without any flags). I.e. If the full byte was 0x82 then peekNextTag() will strip off the 0x80 ( the context specific flag ) and leave the 0x02 behind ( which indicates an integer ).

This call can be used for ASN.1 CHOICE or ANY types.

Returns:
An integer that represents the next tag value or -1 if the end of the stream is reached.
Throws:
EOFException - Thrown when the end of the stream is reached.
IOException - Thrown in the case of an I/O error.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBitString

public ASN1BitSet readBitString()
                         throws ASN1EncodingException,
                                EOFException,
                                IOException
Reads a bit string in from the ASN1 input stream.

Returns:
An ASN1BitSet.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBitString

public ASN1BitSet readBitString(int tagging,
                                int tag)
                         throws ASN1EncodingException,
                                EOFException,
                                IOException
Reads a bit string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
Returns:
An ASN1BitSet.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBitString

public ASN1BitSet readBitString(int tagging,
                                int tag,
                                byte[] defaultValue)
                         throws ASN1EncodingException,
                                EOFException,
                                IOException
Reads a bit string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
defaultValue - The value to return if the tag cannot be found.
Returns:
An ASN1BitSet.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBitString

public ASN1BitSet readBitString(int tagging,
                                int tag,
                                int clsFlags)
                         throws ASN1EncodingException,
                                EOFException,
                                IOException
Reads a bit string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
clsFlags - The class flag to check for ( either DERTags.UNIVERSAL_CLASS_FLAG, DERTags.APPLICATION_SPECIFIC_CLASS_FLAG, DERTags.CONTEXT_SPECIFIC_CLASS_FLAG or DERTags.PRIVATE_CLASS_FLAG )
Returns:
An ASN1BitSet.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBitString

public ASN1BitSet readBitString(int tagging,
                                int tag,
                                int clsFlags,
                                byte[] defaultValue)
                         throws ASN1EncodingException,
                                EOFException,
                                IOException
Reads a bit string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
clsFlags - The class flag to check for ( either DERTags.UNIVERSAL_CLASS_FLAG, DERTags.APPLICATION_SPECIFIC_CLASS_FLAG, DERTags.CONTEXT_SPECIFIC_CLASS_FLAG or DERTags.PRIVATE_CLASS_FLAG )
defaultValue - The value to return if the tag cannot be found.
Returns:
An ASN1BitSet.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBMPString

public String readBMPString()
                     throws ASN1EncodingException,
                            EOFException,
                            IOException
Reads a BMP string in from the ASN1 input stream.

Returns:
The String.
Throws:
ASN1EncodingException - Thrown if the string could not be found or was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBMPString

public String readBMPString(int tagging,
                            int tag)
                     throws ASN1EncodingException,
                            EOFException,
                            IOException
Reads a BMP string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
Returns:
The String value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the string was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBMPString

public String readBMPString(int tagging,
                            int tag,
                            int clsFlags)
                     throws ASN1EncodingException,
                            EOFException,
                            IOException
Reads a BMP string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
clsFlags - The class flag to check for ( either DERTags.UNIVERSAL_CLASS_FLAG, DERTags.APPLICATION_SPECIFIC_CLASS_FLAG, DERTags.CONTEXT_SPECIFIC_CLASS_FLAG or DERTags.PRIVATE_CLASS_FLAG )
Returns:
The String value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBMPString

public String readBMPString(int tagging,
                            int tag,
                            int clsFlags,
                            String defaultValue)
                     throws ASN1EncodingException,
                            EOFException,
                            IOException
Reads a BMP string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
clsFlags - The class flag to check for ( either DERTags.UNIVERSAL_CLASS_FLAG, DERTags.APPLICATION_SPECIFIC_CLASS_FLAG, DERTags.CONTEXT_SPECIFIC_CLASS_FLAG or DERTags.PRIVATE_CLASS_FLAG )
defaultValue - The value to return if the tag cannot be found.
Returns:
The String value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBMPString

public String readBMPString(int tagging,
                            int tag,
                            String defaultValue)
                     throws ASN1EncodingException,
                            EOFException,
                            IOException
Reads a BMP string in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
defaultValue - The value to return if the tag cannot be found.
Returns:
The String value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the String was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBoolean

public boolean readBoolean()
                    throws ASN1EncodingException,
                           EOFException,
                           IOException
Reads a boolean in from the ASN1 input stream.

Returns:
The boolean value.
Throws:
ASN1EncodingException - Thrown if the boolean could not be found or was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBoolean

public boolean readBoolean(int tagging,
                           int tag)
                    throws ASN1EncodingException,
                           EOFException,
                           IOException
Reads a boolean in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
Returns:
The boolean value.
Throws:
ASN1EncodingException - Thrown if the boolean was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBoolean

public boolean readBoolean(int tagging,
                           int tag,
                           boolean defaultValue)
                    throws ASN1EncodingException,
                           EOFException,
                           IOException
Reads a boolean in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
defaultValue - The value to return if the tag cannot be found.
Returns:
The boolean value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the boolean was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBoolean

public boolean readBoolean(int tagging,
                           int tag,
                           int clsFlags)
                    throws ASN1EncodingException,
                           EOFException,
                           IOException
Reads a boolean in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
clsFlags - The class flag to check for ( either DERTags.UNIVERSAL_CLASS_FLAG, DERTags.APPLICATION_SPECIFIC_CLASS_FLAG, DERTags.CONTEXT_SPECIFIC_CLASS_FLAG or DERTags.PRIVATE_CLASS_FLAG )
Returns:
The boolean value.
Throws:
ASN1EncodingException - Thrown if the boolean was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readBoolean

public boolean readBoolean(int tagging,
                           int tag,
                           int clsFlags,
                           boolean defaultValue)
                    throws ASN1EncodingException,
                           EOFException,
                           IOException
Reads a boolean in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
clsFlags - The class flag to check for ( either DERTags.UNIVERSAL_CLASS_FLAG, DERTags.APPLICATION_SPECIFIC_CLASS_FLAG, DERTags.CONTEXT_SPECIFIC_CLASS_FLAG or DERTags.PRIVATE_CLASS_FLAG )
defaultValue - The value to return if the tag cannot be found.
Returns:
The boolean value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the boolean was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readEnumerated

public int readEnumerated()
                   throws ASN1EncodingException,
                          EOFException,
                          IOException
Reads an enumerated value in from the ASN1 input stream.

Returns:
The enumerated integer value
Throws:
ASN1EncodingException - Thrown if the value was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readEnumerated

public int readEnumerated(int tagging,
                          int tag)
                   throws ASN1EncodingException,
                          EOFException,
                          IOException
Reads an enumerated value in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
Returns:
The enumerated integer value
Throws:
ASN1EncodingException - Thrown if the value was incorrectly formatted.
EOFException - Thrown f the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readEnumerated

public int readEnumerated(int tagging,
                          int tag,
                          int defaultValue)
                   throws ASN1EncodingException,
                          EOFException,
                          IOException
Reads an enumerated value in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
defaultValue - The value to return if the tag cannot be found.
Returns:
The enumerated integer value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the value was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readEnumerated

public int readEnumerated(int tagging,
                          int tag,
                          int clsFlags,
                          int defaultValue)
                   throws ASN1EncodingException,
                          EOFException,
                          IOException
Reads an enumerated value in from the ASN1 input stream with tagging.

Parameters:
tagging - The type of tagging to use (TAG_NONE, TAG_IMPLICIT, TAG_EXPLICIT).
tag - The tag value to look for (ignored if tagging is TAG_NONE).
clsFlags - The class flag to check for ( either DERTags.UNIVERSAL_CLASS_FLAG, DERTags.APPLICATION_SPECIFIC_CLASS_FLAG, DERTags.CONTEXT_SPECIFIC_CLASS_FLAG or DERTags.PRIVATE_CLASS_FLAG )
defaultValue - The value to return if the tag cannot be found.
Returns:
The enumerated integer value, or default value if the expected tag could not be found.
Throws:
ASN1EncodingException - Thrown if the value was incorrectly formatted.
EOFException - Thrown if the end of the stream was reached.
IOException - Thrown if an I/O error was encountered.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

readFieldAsByteArray

public byte[] readFieldAsByteArray()
                            throws IOException,
                                   ASN1EncodingException
Returns the current field as a byte array.

A field consists of a tag, length and data value. So calling this function on an octet string would return a byte array containing the tag of the octet string ( 0x04 ), the length of the octet string, and the contents of the octet string.

Returns:
A byte array containing the field.
Throws:
IOException - Thrown if an I/O error occurs.
ASN1EncodingException - Thrown if the data encountered is not in the expected format.
Since:
JDE 3.6.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the nec