Compartilhar via


Tipos de cadeia de caracteres

Um dos usos mais comuns de cadeias de caracteres em uma PKI (infraestrutura de chave pública) é criar um Nome Diferenciado X.500. Por exemplo, o nome da entidade de uma solicitação de certificado é criado combinando uma sequência de nomes distintos relativos, conforme mostrado no exemplo de sintaxe a seguir.

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

A API de Registro de Certificado dá suporte aos seguintes tipos de cadeia de caracteres ASN.1.

BMPString

Marca de codificação: 0x1E

Certreq.exe nome: UNICODE_STRING

O Plano Multilíngue Básico (BMP) é uma codificação de caracteres que abrange o primeiro plano do Conjunto Universal de Caracteres (UCS). Há dezessete aviões numerados de 0 a 16. O BMP ocupa o plano 0 e inclui 65.536 pontos de código de 0x0000 a 0xFFFF. Esta é a seção do mapa de caracteres Unicode em que a maioria das atribuições de caracteres foram feitas até agora. Inclui latino, oriente médio, asiático, africano e outras línguas.

IA5String

Marca de codificação: 0x16

Certreq.exe nome: IA5_STRING

O alfabeto internacional número 5 (IA5) geralmente é equivalente ao alfabeto ASCII, mas versões diferentes podem incluir ênfases ou outros caracteres específicos de uma linguagem regional. O exemplo a seguir mostra o tipo IA5String usado na definição ASN.1 da extensão 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

Marca de codificação: 0x13

Certreq.exe nome: PRINTABLE_STRING

O tipo de dados PrintableString foi originalmente destinado a representar os conjuntos de caracteres limitados disponíveis para terminais de entrada de mainframe, mas ainda é comumente usado. Ele contém os seguintes caracteres:

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

TeletexString

Marca de codificação: 0x14

O TeletexString e os tipos de dados T61String relacionados são codificados em 8 bits (ou 16 bits para caracteres compostos). Ambos têm um número de marcas de 0x14. Eles não são amplamente usados.

Utf8string

Marca de codificação: 0x0C

Certreq.exe nome: UTF8_STRING

O formato de transformação UCS/Unicode de 8 bits (UTF-8) é uma codificação de caracteres de comprimento variável que pode representar qualquer caractere universal como um caractere Unicode, permitindo que os pontos de código iniciais permaneçam consistentes com ASCII. UTF-8 usa um a quatro bytes. O número da marca é 0x0C.

Sistema de tipos ASN.1

Distinguished Encoding Rules

Codificação DER de tipos ASN.1