Freigeben über


Zeichenfolgentypen

Eine der häufigsten Verwendungen von Zeichenfolgen in einer öffentlichen Schlüsselinfrastruktur (PKI) besteht darin, einen X.500 Distinguished Name zu erstellen. So wird beispielsweise der Betreffname einer Zertifikatanforderung erstellt, indem eine Sequenz relativ unterschiedener Namen kombiniert wird, wie im folgenden Syntaxbeispiel dargestellt.

---------------------------------------------------------------------
-- Breakdown of a subject name in a certificate request.
---------------------------------------------------------------------

CertificationRequestInfo ::= SEQUENCE 
{
   version                 CertificationRequestInfoVersion,
   subject                 Name,
   subjectPublicKeyInfo    SubjectPublicKeyInfo,
   attributes              [0] IMPLICIT Attributes
}

Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

AttributeTypeValue ::= SEQUENCE 
{
   type       OBJECT IDENTIFIER,
   value      ANY 
}

DirectoryString ::= CHOICE 
{
   teletexString           TeletexString (SIZE (1..MAX)),
   printableString         PrintableString (SIZE (1..MAX)),
   universalString         UniversalString (SIZE (1..MAX)),
   utf8String              UTF8String (SIZE (1..MAX)),
   bmpString               BMPString (SIZE (1..MAX)) 
}

Die Zertifikatregistrierungs-API unterstützt die folgenden ASN.1-Zeichenfolgentypen.

BMPString

Codierungstag: 0x1E

Certreq.exe Name: UNICODE_STRING

Die Basic Multilingual Plane (BMP) ist eine Zeichencodierung, die die erste Ebene des Universellen Zeichensatzes (UCS) umfasst. Es gibt siebentee Flugzeugen, die 0 bis 16 nummeriert sind. BMP belegt die Ebene 0 und umfasst 65.536 Codepunkte von 0x0000 bis 0xFFFF. Dies ist der Abschnitt der Unicode-Zeichenkarte, in der die meisten der Zeichenzuweisungen bisher vorgenommen wurden. Es umfasst Lateinisch, Mittlerer Osten, Asiatisches, Afrikanisches und andere Sprachen.

IA5String

Codierungstag: 0x16

Certreq.exe Name: IA5_STRING

Die Internationale Alphabetnummer 5 (IA5) entspricht im Allgemeinen dem ASCII-Alphabet, aber verschiedene Versionen können Akzente oder andere Zeichen enthalten, die für eine regionale Sprache spezifisch sind. Das folgende Beispiel zeigt den IA5String-Typ , der in der ASN.1-Definition der AlternativeNames-Zertifikaterweiterung verwendet wird.

---------------------------------------------------------------------
-- AlternativeNames extension
---------------------------------------------------------------------

AltNames ::= SEQUENCE OF GeneralName

GeneralNames ::= AltNames

GeneralName ::= CHOICE 
{
   otherName               [0] IMPLICIT OtherName,
   rfc822Name              [1] IMPLICIT IA5String,
   dNSName                 [2] IMPLICIT IA5String,
   x400Address             [3] IMPLICIT SEQUENCE OF ANY, 
   directoryName           [4] EXPLICIT ANY,    
   ediPartyName            [5] IMPLICIT SEQUENCE OF ANY,
   uniformResourceLocator  [6] IMPLICIT IA5String,
   iPAddress               [7] IMPLICIT OCTET STRING,
   registeredID            [8] IMPLICIT OBJECT IDENTIFIER
}

OtherName ::= SEQUENCE 
{
   type                    OBJECT IDENTIFIER,
   value                   [0] EXPLICIT ANY 
}

PrintableString

Codierungstag: 0x13

Certreq.exe Name: PRINTABLE_STRING

Der PrintableString-Datentyp wurde ursprünglich zum Darstellen der begrenzten Zeichensätze gedacht, die für Mainframe-Eingabeterminals verfügbar sind, aber es wird immer noch verwendet. Es enthält die folgenden Zeichen:

  • A-Z
  • a-z
  • 0-9
  • ' ( ) + , - . / : = ? [Leerzeichen]

TeletexString

Codierungstag: 0x14

Die TeletexString - und die zugehörigen T61String-Datentypen werden auf 8 Bit codiert (oder 16 Bit für zusammengesetzte Zeichen). Beide verfügen über eine Tagnummer von 0x14. Sie werden nicht umfassend verwendet.

UTF8String

Codierungstag: 0x0C

Certreq.exe Name: UTF8_STRING

Das 8-Bit-UCS/Unicode-Transformationsformat (UTF-8) ist eine Variable-Länge-Zeichencodierung, die ein beliebiges universelles Zeichen als Unicode-Zeichen darstellen kann, während die anfänglichen Codepunkte mit ASCII konsistent bleiben können. UTF-8 verwendet ein bis vier Bytes. Die Tagnummer ist 0x0C.

ASN.1-Typsystem

Distinguished Encoding Rules

DER Codierung von ASN.1-Typen