jp.bitmeister.asn1.codec.ber
Class BerDecoder

java.lang.Object
  extended by jp.bitmeister.asn1.codec.ber.BerDecoder
All Implemented Interfaces:
ASN1Decoder, ASN1Visitor<java.lang.Void,ASN1DecodingException>

public class BerDecoder
extends java.lang.Object
implements ASN1Decoder, ASN1Visitor<java.lang.Void,ASN1DecodingException>

BER (Basic Encoding Rules) decoder.

BerDecoder is an implementation of ASN1Decoder. It reads a number of bytes from an InputStream that is specified when a decoder is instantiated, and decodes them to an ASN.1 data with Basic Encoding Rules (BER).

Author:
WATANABE, Jun.
See Also:
ASN1Decoder, DerEncoder

Constructor Summary
BerDecoder(java.lang.Class<? extends ASN1Module> module, java.io.InputStream in)
          Instantiates a BerDecoder.
BerDecoder(java.io.InputStream in)
          Instantiates a BerDecoder.
 
Method Summary
 int count()
          Returns how many bytes were read from the InputStream.
 ASN1Type decode()
          Decodes source data to an ASN.1 data.
<T extends ASN1Type>
T
decode(java.lang.Class<T> type)
          Decodes source data and sets these decoded values to an instance of the ASN.1 type.
 java.lang.Void visit(ANY data)
          Visits the ANY data.
 java.lang.Void visit(BIT_STRING data)
          Visits the BIT_STRING data.
 java.lang.Void visit(BOOLEAN data)
          Visits the BOOLEAN data.
 java.lang.Void visit(CHOICE data)
          Visits the CHOICE data.
 java.lang.Void visit(ENUMERATED data)
          Visits the ENUMERATED data.
 java.lang.Void visit(INTEGER data)
          Visits the INTEGER data.
 java.lang.Void visit(NULL data)
          Visits the NULL data.
 java.lang.Void visit(OBJECT_IDENTIFIER data)
          Visits the OBJECT_IDENTIFIER data.
 java.lang.Void visit(OCTET_STRING data)
          Visits the OCTET_STRING data.
 java.lang.Void visit(REAL data)
          Visits the REAL data.
 java.lang.Void visit(RELATIVE_OID data)
          Visits the RELATIVE_OID data.
 java.lang.Void visit(SEQUENCE_OF<? extends ASN1Type> data)
          Visits the SEQUENCE_OF data.
 java.lang.Void visit(SEQUENCE data)
          Visits the SEQUENCE data.
 java.lang.Void visit(SET_OF<? extends ASN1Type> data)
          Visits the SET_OF data.
 java.lang.Void visit(SET data)
          Visits the SET data.
 java.lang.Void visit(StringType data)
          Visits the StringType data.
 java.lang.Void visit(TimeType data)
          Visits the TimeType data.
 java.lang.Void visit(UnknownType data)
          Visits the UnknownType data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BerDecoder

public BerDecoder(java.io.InputStream in)
Instantiates a BerDecoder.

Parameters:
in - The InputStream to be read.

BerDecoder

public BerDecoder(java.lang.Class<? extends ASN1Module> module,
                  java.io.InputStream in)
Instantiates a BerDecoder.

Parameters:
module - The ASN.1 module used for decoding.
in - The InputStream to be read.
Method Detail

decode

public ASN1Type decode()
                throws ASN1DecodingException
Description copied from interface: ASN1Decoder
Decodes source data to an ASN.1 data. The type of the data will be specified by type indicator (for example ASN.1 tag) included in the source data.

Specified by:
decode in interface ASN1Decoder
Returns:
Decoded ASN.1 data.
Throws:
ASN1DecodingException - Thrown when an error occurred while the decoding process.

decode

public <T extends ASN1Type> T decode(java.lang.Class<T> type)
                          throws ASN1DecodingException
Description copied from interface: ASN1Decoder
Decodes source data and sets these decoded values to an instance of the ASN.1 type.

Specified by:
decode in interface ASN1Decoder
Type Parameters:
T - Indicates the ASN.1 type.
Parameters:
type - The class object of the ASN.1 type.
Returns:
An instance of the ASN.1 type.
Throws:
ASN1DecodingException - Thrown when an error occurred while the decoding process.

count

public int count()
Returns how many bytes were read from the InputStream.

Returns:
size of read bytes.

visit

public java.lang.Void visit(BOOLEAN data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the BOOLEAN data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(INTEGER data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the INTEGER data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(ENUMERATED data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the ENUMERATED data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(REAL data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the REAL data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(BIT_STRING data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the BIT_STRING data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(OCTET_STRING data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the OCTET_STRING data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(NULL data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the NULL data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(SEQUENCE data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the SEQUENCE data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(SEQUENCE_OF<? extends ASN1Type> data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the SEQUENCE_OF data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(SET data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the SET data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(SET_OF<? extends ASN1Type> data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the SET_OF data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(CHOICE data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the CHOICE data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(OBJECT_IDENTIFIER data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the OBJECT_IDENTIFIER data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(RELATIVE_OID data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the RELATIVE_OID data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(StringType data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the StringType data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(TimeType data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the TimeType data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(ANY data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the ANY data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException

visit

public java.lang.Void visit(UnknownType data)
                     throws ASN1DecodingException
Description copied from interface: ASN1Visitor
Visits the UnknownType data.

Specified by:
visit in interface ASN1Visitor<java.lang.Void,ASN1DecodingException>
Parameters:
data - The data to be visited.
Returns:
Result.
Throws:
ASN1DecodingException