ASN.1-Typsystem

Das Konzept eines Datentyps ist für den ASN.1-Standard (Abstract Syntax Notation One) von grundlegender Bedeutung. Jedes Feld einer Zertifikatanforderungsstruktur ist einem Typ zugeordnet. Betrachten Sie beispielsweise die IM FOLGENDEN Beispiel gezeigte PKCS # 10 ASN.1-Zertifikatssyntax.

--------------------------------------------------------------------
-- PKCS #10 Certificate request.
--------------------------------------------------------------------
CertificationRequestInfo ::= SEQUENCE 
{
   version                 CertificationRequestInfoVersion,
   subject                 Name,
   subjectPublicKeyInfo    SubjectPublicKeyInfo,
   attributes              [0] IMPLICIT Attributes
}

--------------------------------------------------------------------
-- Version number.
--------------------------------------------------------------------
CertificationRequestInfoVersion ::= INTEGER

--------------------------------------------------------------------
-- Subject distinguished name (DN).
--------------------------------------------------------------------
Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

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

--------------------------------------------------------------------
-- Public key information.
--------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE 
{
   algorithm           AlgorithmIdentifier,
   subjectPublicKey    BITSTRING
}

AlgorithmIdentifier ::= SEQUENCE 
{
  algorithm           OBJECT IDENTIFIER,
  parameters          ANY OPTIONAL    
} 

--------------------------------------------------------------------
-- Attributes.
--------------------------------------------------------------------
Attributes ::= SET OF Attribute

Attribute ::= SEQUENCE 
{
   type               OBJECT IDENTIFIER,
   values             AttributeSetValue
}

AttributeSetValue ::= SET OF ANY

Die Anforderungsstruktur auf hoher Ebene, CertificationRequestInfo, ist ein Typ, der aus einer Sequenz anderer Typen besteht. Wenn ein Typ ist oder nur grundlegende Typen, Zeichenfolgentypen oder ANY enthält, kann er nicht weiter unterteilt werden. Beispielsweise ist das Versionsfeld ein CertificationRequestInfoVersion-Typ, der wiederum ein INTEGER-Typ ist, ein grundlegender ASN.1-Typ, der nicht aus anderen Typen besteht.

Ein Typsystem ermöglicht es, die Syntax einer Anforderung visuell auf eine Weise zu präsentieren, die von Entwicklern leicht verstanden wird, und ermöglicht es, die Anforderung konsistent für die Übertragung über ein Netzwerk zu codieren. Weitere Informationen zur Codierung finden Sie unter Distinguished Encoding Rules. Weitere Informationen zu ASN.1-Typen finden Sie in den folgenden Themen.

Standardtypen

Erläutert die folgenden Datentypen:

  • BIT STRING
  • Boolean
  • INTEGER
  • NULL
  • OBJEKTBEZEICHNER
  • OKTETT-ZEICHENFOLGE

Zeichenfolgentypen

Erläutert die folgenden Zeichenfolgentypen:

  • BMPString
  • IA5String
  • PrintableString
  • TeletexString
  • UTF8String

Konstruierte Typen

Erläutert ASN.1-Datentypen, die grundlegende Typen, Zeichenfolgentypen oder andere konstruierte Typen enthalten können.

Zertifikatanforderungscodierung

DER-Codierung von ASN.1-Typen

Distinguished Encoding Rules

Einführung in ASN.1-Syntax und -Codierung