Compartir a través de


Sistema de tipos ASN.1

El concepto de un tipo de datos es fundamental para el estándar Abstract Syntax Notation One (ASN.1). Cada campo de una estructura de solicitud de certificado está asociado a un tipo. Considere, por ejemplo, la sintaxis de certificado PKCS #10 ASN.1 que se muestra en el ejemplo siguiente.

--------------------------------------------------------------------
-- 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

La estructura de solicitudes de alto nivel, CertificationRequestInfo, es un tipo que se compone de una secuencia de otros tipos. Cuando un tipo es o solo contiene tipos básicos, tipos de cadena o ANY, no se puede desglosar más. Por ejemplo, el campo versión de es un tipo CertificationRequestInfo Version que, a su vez, es un tipo INTEGER, un tipo ASN.1 básico que no se compone de otros tipos.

Un sistema de tipos permite presentar visualmente la sintaxis de una solicitud de forma fácil de entender por los desarrolladores y permite codificar la solicitud de forma coherente para la transmisión a través de una red. Para obtener más información sobre la codificación, vea reglas de codificación distintivo. Para obtener más información sobre los tipos ASN.1, consulte los temas siguientes.

tipos básicos

Describe los siguientes tipos de datos:

  • BIT STRING
  • BOOLEAN
  • INTEGER
  • NULL
  • DE IDENTIFICADOR DE OBJETO
  • DE CADENA OCTET de

tipos de cadena

Describe los siguientes tipos de cadena:

  • BMPString
  • IA5String
  • PrintableString
  • teletexString
  • UTF8String

tipos construidos

Describe los tipos de datos ASN.1 que pueden contener tipos básicos, tipos de cadena u otros tipos construidos.

 

de codificación de solicitud de certificado

codificación DER de tipos ASN.1

reglas de codificación distintivos

Introducción a la sintaxis y codificación de ASN.1