ASN1C C# Runtime Library  7.8
Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
Asn1UniversalString Class Reference
Inheritance diagram for Asn1UniversalString:
Asn1Type Asn1TypeIF

Public Member Functions

 Asn1UniversalString ()
 
 Asn1UniversalString (int[] value)
 
 Asn1UniversalString (System.String value)
 
override void Decode (Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength)
 
override void Decode (Asn1PerDecodeBuffer buffer)
 
virtual void Decode (Asn1PerDecodeBuffer buffer, Asn1CharSet charSet)
 
virtual void Decode (Asn1PerDecodeBuffer buffer, Asn1CharSet charSet, long lower, long upper)
 
override void Decode (Asn1OerDecodeBuffer buffer)
 
void Decode (Asn1OerDecodeBuffer buffer, int length)
 
virtual void DecodeXER (System.String buffer, System.String attrs)
 
override void DecodeXML (System.String buffer, System.String attrs)
 
override int Encode (Asn1BerEncodeBuffer buffer, bool explicitTagging)
 
override void Encode (Asn1PerEncodeBuffer buffer)
 
virtual void Encode (Asn1PerEncodeBuffer buffer, Asn1CharSet charSet)
 
virtual void Encode (Asn1PerEncodeBuffer buffer, Asn1CharSet charSet, long lower, long upper)
 
override void Encode (Asn1OerEncodeBuffer buffer)
 
virtual void Encode (Asn1OerEncodeBuffer buffer, bool withLength)
 
override void Encode (Asn1XerEncoder buffer, System.String elemName)
 
override void Encode (Asn1XmlEncoder buffer, System.String elemName, System.String nsPrefix)
 
override void Encode (Asn1BerOutputStream outs, bool explicitTagging)
 
override void Encode (Asn1PerOutputStream outs)
 
virtual void Encode (Asn1PerOutputStream outs, Asn1CharSet charSet)
 
virtual void Encode (Asn1PerOutputStream outs, Asn1CharSet charSet, long lower, long upper)
 
virtual void EncodeData (Asn1XmlXerEncoder buffer)
 
override bool Equals (System.Object value)
 
override int GetHashCode ()
 
override System.String ToString ()
 
bool validate (Asn1CharSet charSet)
 
- Public Member Functions inherited from Asn1Type
void _SetKey (byte[] rtkey)
 
virtual void Decode (Asn1BerDecodeBuffer buffer)
 
virtual void Decode (System.Object reader, System.String xmlURI)
 
virtual void Decode (System.Object reader, System.IO.Stream byteStream)
 
virtual void Decode (Asn1MderDecodeBuffer buffer)
 
virtual void DecodeXML (String buffer, String attrs)
 
virtual int Encode (Asn1BerEncodeBuffer buffer)
 
virtual void Encode (Asn1XerEncoder buffer)
 
virtual void Encode (Asn1XmlEncoder buffer)
 
virtual void Encode (Asn1XmlEncodeBuffer buffer)
 
virtual void Encode (Asn1MderOutputStream buffer)
 
virtual void Encode (Asn1MderOutputStream buffer, bool useCachedLength)
 
virtual void Encode (Asn1CerOutputStream outs, bool explicitTagging)
 
void EncodeAsOpenType (Asn1OerEncodeBuffer buffer)
 
virtual void EncodeAttribute (Asn1XmlEncoder buffer, System.String attrName)
 
virtual bool Equals (Asn1Type obj)
 
String GetNonParameterizedTypeName ()
 
virtual void Indent (System.IO.TextWriter outs, int level)
 
virtual bool IsOpenType ()
 
virtual bool MatchTypeName (System.String typeName)
 
virtual void Pdiag (System.String s)
 
virtual void Print (System.IO.TextWriter outs, System.String varName, int level)
 
virtual void Print (System.String varName)
 
void SetNonParameterizedTypeName (String value)
 
virtual void SetOpenType ()
 

Public Attributes

const int BITSPERCHAR = 32
 
int [] mValue
 
- Public Attributes inherited from Asn1Type
const short BIT_STRING = 3
 
const short BMPString = 30
 
const short BOOLEAN = 1
 
const short DATE = 31
 
const short ENUMERATED = 10
 
const short EOC = 0
 
const short EXTERNAL = 8
 
const short GeneralString = 27
 
const short GeneralTime = 24
 
const short GraphicString = 25
 
const short IA5String = 22
 
const short INTEGER = 2
 
const short NULL = 5
 
const short NumericString = 18
 
const short OBJECT_IDENTIFIER = 6
 
const short ObjectDescriptor = 7
 
const short OCTET_STRING = 4
 
const short OpenType = 99
 
const short PrintableString = 19
 
const short REAL = 9
 
const short RELATIVE_OID_IRI = 36
 
const short RelativeOID = 13
 
const short SEQUENCE = 16
 
const short SET = 17
 
const short T61String = TeletexString
 
const short TeletexString = 20
 
const short TIME = 14
 
const short UniversalString = 28
 
const short UTCTime = 23
 
const short UTF8String = 12
 
const short VideotexString = 21
 
const short VisibleString = 26
 

Static Public Attributes

static new readonly Asn1Tag _TAG
 
- Static Public Attributes inherited from Asn1Type
static readonly Asn1Tag _TAG
 

Properties

override int Length [get]
 
- Properties inherited from Asn1Type
virtual String AsnTypeName [get]
 
virtual int Length [get]
 

Additional Inherited Members

- Static Public Member Functions inherited from Asn1Type
static void _SetKey2 (byte[] rtkey)
 
static void _SetLicLocation (String path)
 
static Asn1Type Decode (Asn1BerDecodeBuffer buffer, Asn1OpenTypeField openTypeField, bool explicitTag, int implicitLength)
 
static Asn1Type Decode (Asn1OerDecodeBuffer buffer, Asn1OpenTypeField openTypeField)
 
static Asn1Type Decode (Asn1PerDecodeBuffer buffer, Asn1OpenTypeField openTypeField)
 
static System.String GetTypeName (short typeCode)
 

Detailed Description

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

Constructor & Destructor Documentation

◆ Asn1UniversalString() [1/3]

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

◆ Asn1UniversalString() [2/3]

Asn1UniversalString ( int []  value)

This constructor initializes the universal string from the given an array of 32-bit integer value.

Parameters
valueuniversal string value as array of 32-bit int

◆ Asn1UniversalString() [3/3]

Asn1UniversalString ( System.String  value)

This constructor converts a standard C# string value into a universal string.

Parameters
valueuniversal string value as string

References IntHolder.mValue, and Asn1DecodeBuffer.Read().

Member Function Documentation

◆ Decode() [1/6]

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

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

Parameters
bufferDecode message buffer object
explicitTaggingFlag indicating element is explicitly tagged
implicitLengthLength of contents if implicit

Reimplemented from Asn1Type.

References Asn1OctetString._TAG, Asn1Tag.Constructed, Asn1Tag.EOC, Asn1BerDecodeContext.Expired(), Asn1Status.INDEFLEN, Asn1BerDecodeBuffer.LastTag, Asn1MessageBufferBase.TypeCode, and Asn1Type.UniversalString.

◆ Decode() [2/6]

override void Decode ( Asn1PerDecodeBuffer  buffer)
virtual

This method decodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes no permitted alphabet or size constraints. Decoded characters are assigned as-is to the output string. The decoded result is stored in the public mValue member variable.

Parameters
bufferDecode message buffer object

Reimplemented from Asn1Type.

◆ Decode() [3/6]

virtual void Decode ( Asn1PerDecodeBuffer  buffer,
Asn1CharSet  charSet 
)
virtual

This method decodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes no size constraints but allows a permitted alphabet character set to be specified. Decoded characters are assigned as-is to the output string. The decoded result is stored in the public mValue member variable.

Parameters
bufferDecode message buffer object
charSetObject representing permitted alphabet constraint character set (optional)

◆ Decode() [4/6]

virtual void Decode ( Asn1PerDecodeBuffer  buffer,
Asn1CharSet  charSet,
long  lower,
long  upper 
)
virtual

This overloaded version of the Decode method decodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes a size constraint is present but no permitted alphabet constraint.

The decoded result is stored in the public mValue member variable.

Parameters
bufferDecode message buffer object
charSetObject representing permitted alphabet constraint character set (optional)
lowerEffective size constraint lower bound
upperEffective size constraint upper bound

References Asn1PerDecodeBuffer.ByteAlign(), Asn1PerDecodeBuffer.DecodeBitsToInt(), Asn1PerDecodeBuffer.DecodeLength(), Asn1CharSet.GetCharAtIndex(), Asn1CharSet.GetNumBitsPerChar(), Asn1PerDecodeBuffer.IsAligned(), Asn1CharSet.MaxValue, Asn1PerTraceHandler.NewBitField(), and Diag.Prtln().

◆ Decode() [5/6]

override void Decode ( Asn1OerDecodeBuffer  buffer)
virtual

Decode the value in accordance with OER.

This class's implementation decodes the string with a length determinant. If a subclass should be decoded without a length determinant, it should override this method to invoke Decode(buffer, length). Subclasses may override this to add constraint checks after invoking this method to decode the string.

Reimplemented from Asn1Type.

◆ Decode() [6/6]

void Decode ( Asn1OerDecodeBuffer  buffer,
int  length 
)

Decode the value in accordance with OER.

This class's implementation decodes a string of the given length. This method is final as I don't see any reason for overriding it.

Parameters
lengthLength of string to decode, in characters.

References Asn1OerDecodeBuffer.DecodeIntSigned().

◆ DecodeXER()

virtual void DecodeXER ( System.String  buffer,
System.String  attrs 
)
virtual

This method decodes an ASN.1 Universal String value using the XML encoding rules (XER).

Parameters
bufferString containing data to be decoded
attrsAttributes string from element tag

References Asn1XmlEncoder.EncodeEndElement(), and Asn1XmlEncoder.EncodeStartElement().

◆ DecodeXML()

override void DecodeXML ( System.String  buffer,
System.String  attrs 
)

This method decodes an ASN.1 Universal String value using the XML schema encoding rules(asn2xsd).

Parameters
bufferString containing data to be decoded
attrsAttributes string from element tag

◆ Encode() [1/12]

override int Encode ( Asn1BerEncodeBuffer  buffer,
bool  explicitTagging 
)
virtual

This method encodes an ASN.1 universal string type. The UNIVERSAL tag value and length is also encoded if explicit tagging is specified.

Parameters
bufferEncode message buffer object
explicitTaggingFlag indicating explicit tagging should be done
Returns
Length in octets of encoded component

Reimplemented from Asn1Type.

References Asn1EncodeBuffer.Copy(), and Asn1BerEncodeBuffer.EncodeTagAndLength().

◆ Encode() [2/12]

override void Encode ( Asn1PerEncodeBuffer  buffer)
virtual

This method encodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes no permitted alphabet or size constraints.

The value to encode is stored in the public mValue member variable.

Parameters
bufferEncode message buffer object

Reimplemented from Asn1Type.

◆ Encode() [3/12]

virtual void Encode ( Asn1PerEncodeBuffer  buffer,
Asn1CharSet  charSet 
)
virtual

This method encodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes no size constraints but does allow a permitted alphabet character set to be specified.

The value to encode is stored in the public mValue member variable.

Parameters
bufferEncode message buffer object
charSetObject representing permitted alphabet constraint character set (optional)

◆ Encode() [4/12]

virtual void Encode ( Asn1PerEncodeBuffer  buffer,
Asn1CharSet  charSet,
long  lower,
long  upper 
)
virtual

This overloaded version of the encode method encodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes both a size constraint and permitted alphabet constraint are present.

The value to encode is stored in the public mValue member variable.

Parameters
bufferEncode message buffer object
charSetObject representing the permitted alphabet constraint character set
lowerEffective size constraint lower bound
upperEffective size constraint upper bound

References Asn1PerMessageBuffer.ByteAlign(), Asn1PerEncodeBuffer.ByteAlign(), Asn1OerDecodeBuffer.DecodeLength(), Asn1PerEncodeBuffer.EncodeInt(), Asn1PerEncodeBuffer.EncodeLength(), Asn1PerEncodeBuffer.EncodeLengthEOM(), Asn1CharSet.GetCharIndex(), Asn1CharSet.GetNumBitsPerChar(), Asn1PerMessageBuffer.IsAligned(), Asn1PerEncodeBuffer.IsAligned(), Asn1CharSet.MaxValue, Asn1PerTraceHandler.NewBitField(), and Diag.Prtln().

◆ Encode() [5/12]

override void Encode ( Asn1OerEncodeBuffer  buffer)
virtual

Encode the value in accordance with OER.

This class's implementation invokes encode(buffer, true) to encode the string with a length determinant. If a subclass should be encoded without a length determinant, it should override this to invoke Encode(buffer, false).

Reimplemented from Asn1Type.

◆ Encode() [6/12]

virtual void Encode ( Asn1OerEncodeBuffer  buffer,
bool  withLength 
)
virtual

Encode the string, with or without a length determinant.

Subclasses may override this (e.g. to add constraint checks) and invoke this method to perform the encoding.

Parameters
withLengthtrue if a length determinant should be encoded.

References Asn1XerEncoder.EncodeEndElement(), Asn1OerEncodeBuffer.EncodeIntSigned(), Asn1OerEncodeBuffer.EncodeLength(), and Asn1XerEncoder.EncodeStartElement().

◆ Encode() [7/12]

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

This method encodes an ASN.1 Universal String value using the XML encoding rules (XER).

Parameters
bufferEncode message buffer object
elemNameElement name

Reimplemented from Asn1Type.

◆ Encode() [8/12]

override void Encode ( Asn1XmlEncoder  buffer,
System.String  elemName,
System.String  nsPrefix 
)
virtual

This method encodes an ASN.1 Universal String value with element and namespace prefix name tag using the XML Encoding as specified in the XML schema standard(asn2xsd).

Parameters
bufferEncode message buffer object
elemNameElement name
nsPrefixElement namespace value

Reimplemented from Asn1Type.

◆ Encode() [9/12]

override void Encode ( Asn1BerOutputStream  outs,
bool  explicitTagging 
)
virtual

This method encodes and writes to the stream an ASN.1 universal string 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
outsBER Output Stream object
explicitTaggingFlag indicating explicit tagging should be done
Exceptions
Asn1ExceptionThrown, if operation is failed.

Reimplemented from Asn1Type.

◆ Encode() [10/12]

override void Encode ( Asn1PerOutputStream  outs)
virtual

This method encodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes no permitted alphabet or size constraints.

The value to encode is stored in the public mValue member variable.

Also throws any exception thrown by the Asn1PerOutputStream.

Parameters
outsPER Output Stream object
Exceptions
Asn1ExceptionThrown, if operation is failed.

Reimplemented from Asn1Type.

◆ Encode() [11/12]

virtual void Encode ( Asn1PerOutputStream  outs,
Asn1CharSet  charSet 
)
virtual

This method encodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes no size constraints but does allow a permitted alphabet character set to be specified.

The value to encode is stored in the public mValue member variable.

Also throws any exception thrown by the Asn1PerOutputStream.

Parameters
outsPER Output Stream object
charSetObject representing permitted alphabet constraint character set (optional)
Exceptions
Asn1ExceptionThrown, if operation is failed.

◆ Encode() [12/12]

virtual void Encode ( Asn1PerOutputStream  outs,
Asn1CharSet  charSet,
long  lower,
long  upper 
)
virtual

This overloaded version of the encode method encodes an ASN.1 UniversalString value in accordance with the packed encoding rules (PER). This version of the method assumes both a size constraint and permitted alphabet constraint are present.

The value to encode is stored in the public mValue member variable.

Also throws any exception thrown by the Asn1PerOutputStream.

Parameters
outsPER Output Stream object
charSetObject representing the permitted alphabet constraint character set
lowerEffective size constraint lower bound
upperEffective size constraint upper bound
Exceptions
Asn1ExceptionThrown, if operation is failed.

References Asn1Tag.PRIM, Asn1Tag.UNIV, and Asn1Type.UniversalString.

◆ EncodeData()

virtual void EncodeData ( Asn1XmlXerEncoder  buffer)
virtual

This method encodes an ASN.1 Universal String value using the XML Encoding as specified in the XML schema standard(asn2xsd).

Parameters
bufferEncode message buffer object

References Asn1XmlXerEncoder.Copy(), and Asn1Util.URShift().

◆ Equals()

override bool Equals ( System.Object  value)

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

Parameters
valueThe Object to compare with the current Object. Object should be instance of Asn1UniversalString.
Returns
true if the specified Object is equal to the current Object; otherwise, false.

References Asn1UniversalString.mValue.

◆ GetHashCode()

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.

◆ ToString()

override System.String ToString ( )

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

Returns
Stringified representation of the value

References Asn1BerOutputStream.EncodeUnivString().

◆ validate()

bool validate ( Asn1CharSet  charSet)

This method will attempt to validate a string against its internal character set.

Returns
True or False.

References Asn1CharSet.validate().

Member Data Documentation

◆ _TAG

new readonly Asn1Tag _TAG
static

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

Referenced by Asn1CerOutputStream.EncodeUnivString().

◆ BITSPERCHAR

const int BITSPERCHAR = 32

The BITSPERCHAR constant specifies the number of bits per character for PER (aligned or unaligned).

◆ mValue

int [] mValue

The mValue public member variable is used to hold the string value to be encoded or the results of a Decode operation. For UniversalString, the characters are stored in an array of 32-bit integer values.

Referenced by Asn1UniversalString.Equals().

Property Documentation

◆ Length

override int Length
get

Gets the length of the character string in characters.

Value: number of characters.