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.
Temas relacionados