Freigeben über


ASN.1-Typsystem

Das Konzept eines Datentyps ist grundlegend für den Standard "Abstrakte Syntax Notation One" (ASN.1). Jedes Feld einer Zertifikatanforderungsstruktur ist einem Typ zugeordnet. Betrachten Sie beispielsweise die PKCS #10 ASN.1-Zertifikatssyntax im folgenden Beispiel.

--------------------------------------------------------------------
-- 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 nur grundlegende Typen, Zeichenfolgentypen oder ANY enthält, kann es nicht weiter unterteilt werden. Das Versionsfeld ist beispielsweise ein ZertifizierungRequestInfoVersion-Typ, der wiederum ein INTEGER-Typ ist, einen grundlegenden ASN.1-Typ, der nicht aus anderen Typen besteht.

Ein Typsystem ermöglicht es, die Syntax einer Anforderung visuell in einer Weise zu präsentieren, die von Entwicklern leicht verstanden wird, und es ermöglicht die Anforderung, für die Übertragung über ein Netzwerk konsistent codiert zu werden. 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:

  • BITZEICHENFOLGE
  • BOOLEAN
  • INTEGER
  • NULL
  • OBJEKTBEZEICHNER
  • OCTET-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 erstellte Typen enthalten können.

 

Zertifikatanforderungscodierung

DER Codierung von ASN.1-Typen

Distinguished Encoding Rules

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