Asn1PerEncoder Interface Reference

Common interface for PER encoding methods, implemented by Asn1PerEncodeBuffer and Asn1PerOutputStream.

Inheritance diagram for Asn1PerEncoder:
Asn1PerEncodeBuffer

List of all members.

Public Member Functions

void EncodeBit (bool val, System.String ident)
void EncodeBit (bool val)
void EncodeBits (byte[] val, int offset, int nbits, System.String ident)
void EncodeBits (byte[] val, int offset, int nbits)
void EncodeBits (byte val, int nbits)
void EncodeCharString (System.String val, int nchars, int offset, int abpc, int ubpc, Asn1CharSet charSet)
void EncodeConsWholeNumber (long adjustedValue, long rangeValue)
void EncodeConsWholeNumber (long adjustedValue, long rangeValue, System.String ident)
void EncodeInt (long val, bool encodeLen, bool signExtend)
void EncodeInt (long val, bool encodeLen, bool signExtend, System.String ident)
void EncodeInt (long val, int nbits)
void EncodeInt (long val, int nbits, System.String ident)
void EncodeLength (long val, long lower, long upper)
long EncodeLength (long val)
void EncodeLengthEOM (long val)
void EncodeOctetString (byte[] val, int offset, int nbytes)
void EncodeOIDLengthAndValue (int[] val)
void EncodeOpenType (byte[] val, int offset, int nbytes)
void EncodeRelOIDLengthAndValue (int[] val)
void EncodeSmallNonNegWholeNumber (int val)

Member Function Documentation

void EncodeBit ( bool  val,
System.String  ident 
)

This method encodes a single bit value.

Parameters:
val Boolean value of bit to be encoded.
ident Bit field identifier name for tracing.

Implemented in Asn1PerEncodeBuffer.

void EncodeBit ( bool  val  ) 

This method encodes a single bit value.

Parameters:
val Boolean value of bit to be encoded.

Implemented in Asn1PerEncodeBuffer.

void EncodeBits ( byte[]  val,
int  offset,
int  nbits,
System.String  ident 
)

This method encodes bit values from an array of octets.

Parameters:
val Octet array containing bits to be encoded
offset Starting byte offset in value
nbits Number of bits to encode
ident Bit field identifier name for tracing.

Implemented in Asn1PerEncodeBuffer.

void EncodeBits ( byte[]  val,
int  offset,
int  nbits 
)

This method encodes bit values from an array of octets.

Parameters:
val Octet array containing bits to be encoded
offset Starting byte offset in value
nbits Number of bits to encode

Implemented in Asn1PerEncodeBuffer.

void EncodeBits ( byte  val,
int  nbits 
)

This method encodes bit values from an octet.

The most significant bits from the octet are encoded.

Parameters:
val Octet containing bits to be encoded
nbits Number of bits to encode

Implemented in Asn1PerEncodeBuffer.

void EncodeCharString ( System.String  val,
int  nchars,
int  offset,
int  abpc,
int  ubpc,
Asn1CharSet  charSet 
)

This method encodes the contents of a known-multiplier character string type.

This version assumes a permitted alphabet constraint was specified.

Parameters:
val String containing characters to encode
nchars Number of characters from string to encode
offset Offset to first char in string to encode
abpc Number of bits per character (aligned)
ubpc Number of bits per character (unaligned)
charSet Object representing permitted alphabet constraint character set (optional)

Implemented in Asn1PerEncodeBuffer.

void EncodeConsWholeNumber ( long  adjustedValue,
long  rangeValue 
)

This method implements the rules to encode a constrained whole number as specified in section 10.5 of the X.691 standard.

Parameters:
adjustedValue Adjusted value to be encoded = value - lower range endpoint value
rangeValue lower - upper + 1

Implemented in Asn1PerEncodeBuffer.

void EncodeConsWholeNumber ( long  adjustedValue,
long  rangeValue,
System.String  ident 
)

This method implements the rules to encode a constrained whole number as specified in section 10.5 of the X.691 standard.

Parameters:
adjustedValue Adjusted value to be encoded = value - lower range endpoint value
rangeValue lower - upper + 1
ident Bit field identifier name for tracing.

Implemented in Asn1PerEncodeBuffer.

void EncodeInt ( long  val,
bool  encodeLen,
bool  signExtend 
)

This method implements the rules to encode either a non-negative binary integer as specified in section 10.3 or a two's complement binary integer as specified in section 10.4 of the X.691 standard.

Parameters:
val Integer value to be encoded
encodeLen Flag indicating length determinant should be encoded before encoding integer value.
signExtend Flag indicating if sign extension should be performed.

Implemented in Asn1PerEncodeBuffer.

void EncodeInt ( long  val,
bool  encodeLen,
bool  signExtend,
System.String  ident 
)

This method implements the rules to encode either a non-negative binary integer as specified in section 10.3 or a two's complement binary integer as specified in section 10.4 of the X.691 standard.

Parameters:
val Integer value to be encoded
encodeLen Flag indicating length determinant should be encoded before encoding integer value.
signExtend Flag indicating if sign extension should be performed.
ident Bit field identifier name for tracing.

Implemented in Asn1PerEncodeBuffer.

void EncodeInt ( long  val,
int  nbits 
)

This method encodes bit values from an integer value.

The least significant bits from the integer are encoded.

Parameters:
val Integer containing bits to be encoded
nbits Number of bits to encode

Implemented in Asn1PerEncodeBuffer.

void EncodeInt ( long  val,
int  nbits,
System.String  ident 
)

This method encodes bit values from an integer value.

The least significant bits from the integer are encoded.

Parameters:
val Integer containing bits to be encoded
nbits Number of bits to encode
ident Bit field identifier name for tracing.

Implemented in Asn1PerEncodeBuffer.

void EncodeLength ( long  val,
long  lower,
long  upper 
)

This method encodes a constrained length determinant value.

Parameters:
val Length value to be encoded
lower Lower bound (inclusive) of length value range
upper Upper bound (inclusive) of length value range

Implemented in Asn1PerEncodeBuffer.

long EncodeLength ( long  val  ) 

This method encodes a general (unconstrained) length determinant value as described in section 10.9 or the X.691 standard.

Parameters:
val Length value to be encoded
Returns:
Value that was actually encoded. This may be less than the value that was passed in if fragementation was done (i.e the value was >= 16k).

Implemented in Asn1PerEncodeBuffer.

void EncodeLengthEOM ( long  val  ) 

This method checks to see if a zero byte needs to be added after a fragmented length has been encoded.

It will add it to the byte stream if necessary.

Parameters:
val Original length value that was encoded.

Implemented in Asn1PerEncodeBuffer.

void EncodeOctetString ( byte[]  val,
int  offset,
int  nbytes 
)

This method encodes the given array of bytes as an unconstrained octet string value.

Parameters:
val Byte array containing data to encode. This is assumed to contain a previously encoded PER component.
offset Starting offset in byte array value
nbytes Number of bytes to encode

Implemented in Asn1PerEncodeBuffer.

void EncodeOIDLengthAndValue ( int[]  val  ) 

This method encodes the length and contents of an object identifier value.

Parameters:
val Integer array containing arcs to encode

Implemented in Asn1PerEncodeBuffer.

void EncodeOpenType ( byte[]  val,
int  offset,
int  nbytes 
)

This method encodes the given array of bytes as an open type.

Parameters:
val Byte array containing data to encode. This is assumed to contain a previously encoded PER component.
offset Starting offset in byte array value
nbytes Number of bytes to encode

Implemented in Asn1PerEncodeBuffer.

void EncodeRelOIDLengthAndValue ( int[]  val  ) 

This method encodes the length and contents of a relative object identifier value.

Parameters:
val Integer array containing arcs to encode

Implemented in Asn1PerEncodeBuffer.

void EncodeSmallNonNegWholeNumber ( int  val  ) 

This method implements the rules to encode a small non-negative whole number as specified in section 10.6 of the X.691 standard.

Parameters:
val Value to be encoded

Implemented in Asn1PerEncodeBuffer.