Compartir a través de


Tipos de cadena

Uno de los usos más comunes de cadenas en una infraestructura de clave pública (PKI) es crear un nombre distintivo X.500. Por ejemplo, el nombre del firmante de una solicitud de certificado se crea combinando una secuencia de nombres distintivos relativos, como se muestra en el ejemplo de sintaxis siguiente.

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

Certificate Enrollment API admite los siguientes tipos de cadena ASN.1.

BMPString

Etiqueta de codificación: 0x1E

nombre de Certreq.exe: UNICODE_STRING

El plano multilingüe básico (BMP) es una codificación de caracteres que abarca el primer plano del juego de caracteres universal (UCS). Hay diecisiete aviones numerados de 0 a 16. BMP ocupa el plano 0 e incluye 65 536 puntos de código de 0x0000 a 0xFFFF. Esta es la sección del mapa de caracteres Unicode donde hasta ahora se han realizado la mayoría de las asignaciones de caracteres. Incluye latín, oriente medio, asiático, africano y otros idiomas.

IA5String

Etiqueta de codificación: 0x16

nombre de Certreq.exe: IA5_STRING

El alfabeto internacional número 5 (IA5) es generalmente equivalente al alfabeto ASCII, pero diferentes versiones pueden incluir acentos u otros caracteres específicos de un idioma regional. En el ejemplo siguiente se muestra el tipo IA5String usado en la definición asn.1 de la extensión de certificado AlternativeNames .

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

Etiqueta de codificación: 0x13

nombre de Certreq.exe: PRINTABLE_STRING

El tipo de datos PrintableString estaba pensado originalmente para representar los juegos de caracteres limitados disponibles para los terminales de entrada del sistema central, pero todavía se usa con frecuencia. Contiene los siguientes caracteres:

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

TeletexString

Etiqueta de codificación: 0x14

Los tipos de datos TeletexString y T61String relacionados se codifican en 8 bits (o 16 bits para caracteres compuestos). Ambos tienen un número de etiquetas de 0x14. No se usan ampliamente.

UTF8String

Etiqueta de codificación: 0x0C

nombre de Certreq.exe: UTF8_STRING

El formato de transformación UCS/Unicode de 8 bits (UTF-8) es una codificación de caracteres de longitud variable que puede representar cualquier carácter universal como un carácter Unicode, al tiempo que permite que los puntos de código iniciales permanezcan coherentes con ASCII. UTF-8 usa uno a cuatro bytes. El número de etiqueta es 0x0C.

Sistema de tipos ASN.1

reglas de codificación distinguida

Codificación DER de tipos ASN.1