CHARACTER STRING¶
The ASN.1 CHARACTER STRING type is a general-purpose string type defined
in the ASN.1 standard. Unlike specific string encodings such as UTF8String
or PrintableString, CHARACTER STRING is intended to carry an arbitrary
string whose encoding and structure can be determined by additional
information elements.
Internally, the ASN.1 standard defines CHARACTER STRING as a SEQUENCE-based
type containing an optional data value descriptor and the actual string data.
In Python, the generated CHARACTER STRING class behaves exactly like a
SEQUENCE-derived object — each of its components is accessible as a class
attribute, and assignment follows the same rules as for any SEQUENCE type.
Implementation note
This universal type is rarely used in modern ASN.1 applications and is not defined by default. If required, you need to manually include the definition in your ASN.1 schema.
-- From ITU-T X.680
CHARACTER-STRING ::= [UNIVERSAL 29] SEQUENCE {
identification [0] CHOICE {
syntaxes [0] SEQUENCE {
abstract [0] OBJECT IDENTIFIER,
transfer [1] OBJECT IDENTIFIER
},
syntax [1] OBJECT IDENTIFIER,
presentation-context-id [2] INTEGER,
context-negotiation [3] SEQUENCE {
presentation-context-id [0] INTEGER,
transfer-syntax [1] OBJECT IDENTIFIER
},
transfer-syntax [4] OBJECT IDENTIFIER,
fixed [5] NULL
},
-- NOTE - The unrestricted character string typ does not allow the
-- inclusion of a data-value-descriptor value.
-- data-value-descriptor [1] ObjectDescriptor OPTIONAL,
string-value [2] OCTET STRING
} -- (WITH COMPONENTS {... , data-value-descriptor ABSENT })
Python Representation¶
- class CHARACTER_STRING
Inherits from
_Asn1Type.Represents a SEQUENCE-based ASN.1 type. All constraints, encoding rules, and attribute semantics of SEQUENCE apply.
- __init__(self, /, **members: Any) None
Initializes the object with keyword arguments for each member.
Optional fields default to
None, while required fields are initialized with their default ASN.1 values.
Each defined component of the CHARACTER STRING structure is accessible as an attribute. Modifying these attributes updates the parent object directly.
- property identification: CHARACTER_STRING.identification_TYPE¶
- property string_value: bytes¶
- class identification_TYPE¶
Inherits from
_Asn1ChoiceType.