Objective Systems, Inc.  
Home
About ASN.1
Products
Free Software
Open Source
Documents
Services
Resources
Resellers
Customers
Careers
About Us
Contact Us
 

Google


Objective Systems, Inc.

Asn1BerDecodeBuffer Class Reference

Inheritance diagram for Asn1BerDecodeBuffer:

Asn1DecodeBuffer Asn1MessageBuffer Asn1BerInputStream Asn1DerDecodeBuffer Asn1CerInputStream Asn1DerInputStream List of all members.

Detailed Description

This class handles the decoding of ASN.1 messages as specified in the Basic Encoding Rules (BER) as documented in the ITU-T X.690 standard.


Public Member Functions

 Asn1BerDecodeBuffer (System.IO.Stream istream)
 Asn1BerDecodeBuffer (byte[] msgdata)
virtual int DecodeLength ()
virtual byte[] DecodeOpenType (bool saveData)
virtual byte[] DecodeOpenType ()
virtual void DecodeTag (Asn1Tag tag)
virtual int DecodeTagAndLength (Asn1Tag tag)
virtual bool MatchTag (Asn1Tag tag)
virtual bool MatchTag (Asn1Tag tag, Asn1Tag parsedTag, IntHolder parsedLen)
virtual bool MatchTag (short tagClass, short tagForm, int tagIDCode, Asn1Tag parsedTag, IntHolder parsedLen)
virtual void Parse (Asn1TaggedEventHandler handler)
virtual Asn1Tag PeekTag ()
virtual void PeekTag (Asn1Tag parsedTag)
override int ReadByte ()

Static Public Member Functions

static int CalcIndefLen (byte[] data, int offset, int len)

Protected Member Functions

internal void MovePastEOC (bool saveData)

Properties

virtual Asn1Tag LastTag


Constructor & Destructor Documentation

Asn1BerDecodeBuffer byte[]  msgdata  ) 
 

This constructor creates a BER Decode buffer object that references an encoded ASN.1 message.

Parameters:
msgdata Byte array containing an encoded ASN.1 message.

Asn1BerDecodeBuffer System.IO.Stream  istream  ) 
 

This constructor creates a BER Decode buffer object that references an encoded ASN.1 message. In this case, the message is passed in using an System.IO.Stream object.

Parameters:
istream Input stream containing an encoded ASN.1 message.


Member Function Documentation

static int CalcIndefLen byte[]  data,
int  offset,
int  len
[static]
 

This function calculates the actual length of an indefinite length message component.

Parameters:
data Buffer with the indefinite length message component.
offset The start offset in the array
len Length of the buffer (begining from the offset)
Returns:
calculated length

virtual int DecodeLength  )  [virtual]
 

This method decodes a length value.

Returns:
Decoded length value

virtual byte [] DecodeOpenType bool  saveData  )  [virtual]
 

This method decodes an ASN.1 BER open type value. This is a fully encoded message component of any type. This version of the method allows the option of saving or discarding the open type data.

Parameters:
saveData True if data should be captured and returned
Returns:
Reference to byte array containing component.

virtual byte [] DecodeOpenType  )  [virtual]
 

This method decodes an ASN.1 BER open type value. This is a fully encoded message component of any type. The component is captured in the Decode capture buffer and a reference to a byte array is returned containing the component.

Returns:
Reference to byte array containing component.

virtual void DecodeTag Asn1Tag  tag  )  [virtual]
 

This method decodes a tag value.

Parameters:
tag Tag object to receive decoded tag fields.
Returns:
status value (see Asn1Status.java)

virtual int DecodeTagAndLength Asn1Tag  tag  )  [virtual]
 

This method decodes a tag and length value.

Parameters:
tag Tag object to receive decoded tag fields.
Returns:
Decoded length value.

virtual bool MatchTag Asn1Tag  tag  )  [virtual]
 

This overloaded version of MatchTag will just test for a match and not return parsed tag and length values

Parameters:
tag Tag value to be matched.
Returns:
True if given tag matches tag at Decode cursor

virtual bool MatchTag Asn1Tag  tag,
Asn1Tag  parsedTag,
IntHolder  parsedLen
[virtual]
 

This overloaded version of MatchTag allows the tag value to be matched to be passed using an Asn1Tag object.

Parameters:
tag Tag value to be matched.
parsedTag Holder object to receive parsed tag value
parsedLen Holder object to receive parsed length value
Returns:
True if given tag matches tag at Decode cursor

virtual bool MatchTag short  tagClass,
short  tagForm,
int  tagIDCode,
Asn1Tag  parsedTag,
IntHolder  parsedLen
[virtual]
 

This method decodes the next tag value and checks for a match with the given tag value. If the match is successful, the Decode cursor will be psoitioned at the contents field; otherwise, it will be reset to point to the start of the tag field.

Parameters:
tagClass Class value of tag to match
tagForm Form value of tag to match
tagIDCode ID code of tag to match
parsedTag Holder object to receive parsed tag value
parsedLen Holder object to receive parsed length value
Returns:
True if given tag matches tag at Decode cursor

internal void MovePastEOC bool  saveData  )  [protected]
 

This method skips or saves the data/bytes of the current tag in this DecodeBuffer. If current tag has indefinite length, than index will moved to end of the indifinite length. If tag has definite length, than that many bytes are moved.

Parameters:
saveData True if data should be captured

virtual void Parse Asn1TaggedEventHandler  handler  )  [virtual]
 

This method parses the complete message and invokes the event handler callback methods as various items are encountered.

Parameters:
handler Object implementing the Asn1EventHandler interface.
Returns:
Status value

virtual Asn1Tag PeekTag  )  [virtual]
 

This overloaded version of the PeekTag method will return a reference to a newly created tag object.

Returns:
Parsed tag object value reference

virtual void PeekTag Asn1Tag  parsedTag  )  [virtual]
 

This method will Parse and return the next tag in the Decode stream without advancing the Decode cursor.

Parameters:
parsedTag Holder object to receive parsed tag value

override int ReadByte  )  [virtual]
 

This method returns the next available 8-bit value from the input stream. It is implemented differently for BER/DER and PER to take into account odd alignments in PER.

Returns:
Next 8-bit byte value from input stream

Implements Asn1DecodeBuffer.


Property Documentation

virtual Asn1Tag LastTag [get]
 

Gets the last tag parsed within this decode buffer object.

Value: Last parsed tag object reference


Copyright © 1997-2005 Objective Systems,Inc.
All Rights Reserved.
This document may be distributed in any form, electronic
or otherwise, provided that it is distributed in its entirety
and that the copyright and this notice are included.

This file was last modified on 18 Nov 2005.
ASN1C C# Runtime Library, 5.8