Asn1OctetString Class Reference

Inheritance diagram for Asn1OctetString:
Asn1Type Asn1TypeIF Asn1Base64BinaryString Asn1OpenType Asn1ChoiceExt Asn1XerOpenType

List of all members.

Public Member Functions

 Asn1OctetString (System.String value)
 Asn1OctetString (byte[] data, int offset, int nbytes)
 Asn1OctetString (byte[] data)
 Asn1OctetString ()
virtual int CompareTo (System.Object octstr)
virtual void Decode (Asn1JsonDecodeBuffer buffer)
void Decode (Asn1MderDecodeBuffer buffer, int constrainedLength)
override void Decode (Asn1MderDecodeBuffer buffer)
override void Decode (Asn1OerDecodeBuffer buffer)
virtual void Decode (Asn1PerDecodeBuffer buffer, long lower, long upper)
override void Decode (Asn1PerDecodeBuffer buffer)
override void Decode (Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength)
void DecodeContent (Asn1OerDecodeBuffer buffer, int numOctets)
virtual void DecodeXER (System.String buffer, System.String attrs, bool base64)
override void DecodeXML (System.String buffer, System.String attrs)
virtual void Encode (Asn1PerOutputStream outs, long lower, long upper)
override void Encode (Asn1PerOutputStream outs)
override void Encode (Asn1BerOutputStream outs, bool explicitTagging)
virtual void Encode (Asn1JsonOutputStream outstream)
virtual void Encode (Asn1XmlEncoder buffer, System.String elemName, System.String nsPrefix, bool base64)
override void Encode (Asn1XmlEncoder buffer, System.String elemName, System.String nsPrefix)
override void Encode (Asn1XerEncoder buffer, System.String elemName)
void Encode (Asn1MderOutputStream outs, int constrainedLength)
override void Encode (Asn1MderOutputStream outs)
override void Encode (Asn1OerEncodeBuffer buffer)
virtual void Encode (Asn1PerEncodeBuffer buffer, long lower, long upper)
override void Encode (Asn1PerEncodeBuffer buffer)
override int Encode (Asn1BerEncodeBuffer buffer, bool explicitTagging)
override void EncodeAttribute (Asn1XmlEncoder buffer, System.String attrName)
void EncodeContent (Asn1OerEncodeBuffer buffer)
override bool Equals (System.Object value)
bool Equals (String s)
bool Equals (byte[] value)
override int GetHashCode ()
int GetMderLength ()
virtual System.IO.Stream toInputStream ()
override System.String ToString ()

Static Public Member Functions

static System.String EncodeBase64Binary (byte[] data)

Public Attributes

byte[] mValue

Static Public Attributes

static new readonly Asn1Tag _TAG

Properties

override int Length [get]

Detailed Description

This is a container class for holding the components of an ASN.1 octet string value.


Constructor & Destructor Documentation

Asn1OctetString (  ) 

This constructor creates an empty octet string that can be used in a Decode method call to receive an octet string value.

Asn1OctetString ( byte[]  data  ) 

This constructor initializes an octet string from the given byte array.

Parameters:
data Byte array containing an octet string in binary form.
Asn1OctetString ( byte[]  data,
int  offset,
int  nbytes 
)

This constructor initializes an octet string from a portion of the given byte array. A new byte array is created starting at the given offset and consisting of the given number of bytes.

Parameters:
data Byte array containing an octet string in binary form.
offset The offset in array at which to begin copy.
nbytes Number of bytes to copy from target array
Asn1OctetString ( System.String  value  ) 

This constructor parses the given ASN.1 value text (either a binary or hex data string) and assigns the values to the internal bit string.

Examples of valid value formats are as follows:

Binary string: '11010010111001'B

Hex string: '0fa56920014abc'H

Char string: 'abcdefg'

Parameters:
value The ASN.1 value specification text

Member Function Documentation

virtual int CompareTo ( System.Object  octstr  )  [virtual]

This method compares two Asn1OctetString objects for equality. The OCTET STRING's are equal if a) all octets are equal, and b) the lengths are the same.

This method is required to implement the Comparable interface used for sorting.

Parameters:
octstr Asn1OctetString to compare
Returns:
0 if equal, 1 if this string is greater than supplied string, -1 if this string is less than supplied string.
virtual void Decode ( Asn1JsonDecodeBuffer  buffer  )  [virtual]

Decode ASN.1 octet string from JSON.

Reimplemented in Asn1OpenType.

void Decode ( Asn1MderDecodeBuffer  buffer,
int  constrainedLength 
)

Decode an octet string from the MDER encoding into this object.

Parameters:
constrainedLength The constrained length of the type being encoded. Pass -1 if the type is unconstrained. For a constrained length octet string, exactly that many octets will be read.
override void Decode ( Asn1MderDecodeBuffer  buffer  )  [virtual]

Decode an unconstrained octet string from the MDER encoding into this object.

Reimplemented from Asn1Type.

override void Decode ( Asn1OerDecodeBuffer  buffer  )  [virtual]

This method decodes an ASN.1 octet string using the Octet Encoding Rules (OER).

This implementation expects a length determinant in the encoding. This method may be overridden for ASN.1 types that have a fixed length to invoke DecodeContent with the predetermined length.

Reimplemented from Asn1Type.

Reimplemented in Asn1OpenType.

virtual void Decode ( Asn1PerDecodeBuffer  buffer,
long  lower,
long  upper 
) [virtual]

This method decodes a sized ASN.1 octet string value using the packed encoding rules (PER).

Parameters:
buffer Decode message buffer object
lower Lower bound (inclusive) of size constraint
upper Upper bound (inclusive) of size constraint
override void Decode ( Asn1PerDecodeBuffer  buffer  )  [virtual]

This method decodes an ASN.1 octet string value using the packed encoding rules (PER). The string is assumed to not contain a size constraint.

Parameters:
buffer Decode message buffer object

Reimplemented from Asn1Type.

Reimplemented in Asn1ChoiceExt, and Asn1OpenType.

override void Decode ( Asn1BerDecodeBuffer  buffer,
bool  explicitTagging,
int  implicitLength 
) [virtual]

This method decodes an ASN.1 octet string value including the UNIVERSAL tag value and length if explicit tagging is specified.

Parameters:
buffer Decode message buffer object
explicitTagging Flag indicating element is explicitly tagged
implicitLength Length of contents if implicit

Reimplemented from Asn1Type.

Reimplemented in Asn1ChoiceExt, and Asn1OpenType.

void DecodeContent ( Asn1OerDecodeBuffer  buffer,
int  numOctets 
)

This method decodes an ASN.1 OCTET STRING's content that was encoded according to OER, given the total number of octets. This does not decode a length determinant.

Parameters:
buffer Decode message buffer object
numOctets Total number of octets encoding the content.
virtual void DecodeXER ( System.String  buffer,
System.String  attrs,
bool  base64 
) [virtual]

This method decodes ASN.1 octet string type using the XML encoding rules (XER). Extended-XER is supported by the base64

Parameters:
buffer String containing data to be decoded
attrs Attributes string from element tag
base64 pass true if encoding is base64 (extended-XER only)
override void DecodeXML ( System.String  buffer,
System.String  attrs 
)

This method decodes an ASN.1 octet string type using the XML schema encoding rules(asn2xsd).

Parameters:
buffer String containing data to be decoded
attrs Attributes string from element tag
virtual void Encode ( Asn1PerOutputStream  outs,
long  lower,
long  upper 
) [virtual]

This method encodes a size-constrained ASN.1 octet string value using the packed encoding rules (PER). The value to be encoded is stored in the 'mValue' public member variable within this class.

Also throws any exception thrown by the underlying Asn1PerOutputStream.

Parameters:
outs PER Output Stream object
lower Lower bound (inclusive) of size constraint
upper Upper bound (inclusive) of size constraint
Exceptions:
Asn1Exception Thrown, if operation is failed.
override void Encode ( Asn1PerOutputStream  outs  )  [virtual]

This method encodes an unconstrained ASN.1 octet string value using the packed encoding rules (PER). The value to be encoded is stored in the 'mValue' public member variable within this class.

Also throws any exception thrown by the underlying Asn1PerOutputStream.

Parameters:
outs PER Output Stream object
Exceptions:
Asn1Exception Thrown, if operation is failed.

Reimplemented from Asn1Type.

Reimplemented in Asn1ChoiceExt, and Asn1OpenType.

override void Encode ( Asn1BerOutputStream  outs,
bool  explicitTagging 
) [virtual]

This method encodes and writes to the stream an ASN.1 octet string value including the UNIVERSAL tag value and length if explicit tagging is specified. This overloaded version uses the Basic Encoding Rules (BER).

Throws, Exception thrown by C# System.IO.Stream for I/O error

Parameters:
outs BER Output Stream object
explicitTagging Flag indicating explicit tagging should be done
Exceptions:
Asn1Exception Thrown, if operation is failed.

Reimplemented from Asn1Type.

Reimplemented in Asn1ChoiceExt, and Asn1OpenType.

virtual void Encode ( Asn1JsonOutputStream  outstream  )  [virtual]

Encode this octet string to JSON.

Parameters:
outstream 

Reimplemented in Asn1OpenType.

virtual void Encode ( Asn1XmlEncoder  buffer,
System.String  elemName,
System.String  nsPrefix,
bool  base64 
) [virtual]

This method encodes ASN.1 octet string type using the XML Encoding as specified in the XML schema standard(asn2xsd).

Parameters:
buffer Encode message buffer object
elemName XML element name used to wrap string
nsPrefix Element namespace value
base64 Pass true to encode as base64 (extended-XER only, including XSD compilation)
override void Encode ( Asn1XmlEncoder  buffer,
System.String  elemName,
System.String  nsPrefix 
) [virtual]

This method encodes ASN.1 octet string type as an xmlhstring.

Parameters:
buffer Encode message buffer object
elemName XML element name used to wrap string
nsPrefix Element namespace value

Reimplemented from Asn1Type.

Reimplemented in Asn1Base64BinaryString.

override void Encode ( Asn1XerEncoder  buffer,
System.String  elemName 
) [virtual]

This method encodes ASN.1 octet string type using the XML encoding rules (XER).

Parameters:
buffer Encode message buffer object
elemName XML element name used to wrap string

Reimplemented from Asn1Type.

void Encode ( Asn1MderOutputStream  outs,
int  constrainedLength 
)

Encode this octet string into the MDER encoding.

Parameters:
constrainedLength The constrained length of the type being encoded. Pass -1 if the type is unconstrained.
Exceptions:
Asn1ConsVioException if a constrained length is given and the value is not exactly that length.
Asn1MderUnsupported if the length is unconstrained and the actual length > 65535 (maximum allowed by MDER).
override void Encode ( Asn1MderOutputStream  outs  )  [virtual]

Encode this octet string into the MDER encoding. This should be used for octet string types that are not of fixed length.

Exceptions:
Asn1MderUnsupported if the actual length > 65535 (maximum allowed by MDER).

Reimplemented from Asn1Type.

override void Encode ( Asn1OerEncodeBuffer  buffer  )  [virtual]

This method encodes this ASN.1 OCTET STRING value, according to OER. This encodes the length determinant, assuming that the OCTET STRING is not fixed-size constrained. Subclasses may override this to simply call EncodeContent for fixed-size constrained strings.

Reimplemented from Asn1Type.

Reimplemented in Asn1ChoiceExt, and Asn1OpenType.

virtual void Encode ( Asn1PerEncodeBuffer  buffer,
long  lower,
long  upper 
) [virtual]

This method encodes a size-constrained ASN.1 octet string value using the packed encoding rules (PER). The value to be encoded is stored in the 'mValue' public member variable within this class.

Parameters:
buffer Encode message buffer object
lower Lower bound (inclusive) of size constraint
upper Upper bound (inclusive) of size constraint
override void Encode ( Asn1PerEncodeBuffer  buffer  )  [virtual]

This method encodes an unconstrained ASN.1 octet string value using the packed encoding rules (PER). The value to be encoded is stored in the 'mValue' public member variable within this class.

Parameters:
buffer Encode message buffer object

Reimplemented from Asn1Type.

Reimplemented in Asn1ChoiceExt, and Asn1OpenType.

override int Encode ( Asn1BerEncodeBuffer  buffer,
bool  explicitTagging 
) [virtual]

This method encodes an ASN.1 octet string value including the UNIVERSAL tag value and length if explicit tagging is specified.

Parameters:
buffer Encode message buffer object
explicitTagging Flag indicating explicit tagging should be done
Returns:
Length of encoded component

Reimplemented from Asn1Type.

Reimplemented in Asn1ChoiceExt, and Asn1OpenType.

override void EncodeAttribute ( Asn1XmlEncoder  buffer,
System.String  attrName 
) [virtual]

This method encodes ASN.1 octet string type using the XML Encoding as specified in the XML schema standard(asn2xsd).

Parameters:
buffer Encode message buffer object
elemName XML element name used to wrap string
attribute Element attribute value

Reimplemented from Asn1Type.

Reimplemented in Asn1Base64BinaryString.

static System.String EncodeBase64Binary ( byte[]  data  )  [static]

Encodes xsd:Base64Binary data into ASCII character using the algorithm defined in RFC2045, as defined in w3c stadard http://www.w3.org/tr/2001/rec-xmlschema-2-20010502#base64Binary

Parameters:
base64binary Array containing base64binary
Returns:
Encoded ASCII string
void EncodeContent ( Asn1OerEncodeBuffer  buffer  ) 

This method encodes the content of an ASN.1 OCTET STRING, according to OER. (The length determinant is not encoded.)

Parameters:
buffer Encode message buffer object
override bool Equals ( System.Object  value  ) 

This method compares this octet string value to the given value for equality.

Parameters:
value The Object to compare with the current Object. Object should be instance of Asn1OctetString.
Returns:
true if the specified Object is equal to the current Object; otherwise, false.
bool Equals ( String  s  ) 

This method compares the given ASN.1 OCTET STRING value to this OCTET STRING value for equality.

Parameters:
value The ASN.1 OCTET STRING value to compare with the current Object. Examples of valid value formats are as follows: Binary string: '11010010111001'B Hex string: '0fa56920014abc'H
Returns:
true if the specified value is equal to this value; otherwise, false.
bool Equals ( byte[]  value  ) 

This method compares this octet string value to the given value for equality.

Parameters:
value The byte array to compare with the current Object.
Returns:
true if the specified byte array is equal to the current Object; otherwise, false.
override int GetHashCode (  ) 

Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table.

Returns:
A hash code for the current Object.
int GetMderLength (  ) 

Return the length of the MDER encoding for this type, assuming that the type is NOT a fixed length OCTET STRING (if it is fixed length, you need not call this method!).

virtual System.IO.Stream toInputStream (  )  [virtual]

This method will return a byte array input stream representation of the octet string value.

Returns:
Reference to System.IO.MemoryStream object
override System.String ToString (  ) 

This method will return a string representation of the octet string value. The format is the ASN.1 value format for this type..

Returns:
Stringified representation of the value

Reimplemented in Asn1Base64BinaryString, and Asn1OpenType.


Member Data Documentation

new readonly Asn1Tag _TAG [static]

The _TAG constant describes the universal tag for this data type (UNIVERSAL 4).

Reimplemented from Asn1Type.

byte [] mValue

This variable holds the octet string value. These are the octets that are encoded when encode is invoked. It is also where the decoded octet string is stored after a Decode operation.


Property Documentation

override int Length [get]

Gets the length of the OCTET STRING in octets.

Value: length of the octet string

Reimplemented from Asn1Type.