Condividi tramite


Tipi stringa

Uno degli usi più comuni delle stringhe in un'infrastruttura a chiave pubblica (PKI) consiste nel creare un nome distinto X.500. Ad esempio, il nome soggetto di una richiesta di certificato viene creato combinando una sequenza di nomi distinti relativi, come illustrato nell'esempio di sintassi seguente.

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

L'API Di registrazione certificati supporta i tipi di stringa ASN.1 seguenti.

BMPString

Tag di codifica: 0x1E

nome Certreq.exe: UNICODE_STRING

Basic Multilingual Plane (BMP) è una codifica di caratteri che include il primo piano del set di caratteri universale (UCS). Ci sono diciassette aerei numerati da 0 a 16. BMP occupa il piano 0 e include 65.536 punti di codice da 0x0000 a 0xFFFF. Questa è la sezione della mappa dei caratteri Unicode in cui finora è stata effettuata la maggior parte delle assegnazioni di caratteri. Include alfabeto latino, medio orientale, asiatico, africano e altre lingue.

IA5String

Tag di codifica: 0x16

nome Certreq.exe: IA5_STRING

L'alfabeto internazionale numero 5 (IA5) è in genere equivalente all'alfabeto ASCII, ma versioni diverse possono includere caratteri accenti o altri caratteri specifici di una lingua regionale. Nell'esempio seguente viene illustrato il tipo IA5String usato nella definizione ASN.1 dell'estensione del certificato 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

Tag di codifica: 0x13

nome Certreq.exe: PRINTABLE_STRING

Il tipo di dati PrintableString era originariamente destinato a rappresentare i set di caratteri limitati disponibili per i terminali di input mainframe, ma è ancora comunemente usato. Contiene i caratteri seguenti:

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

TeletexString

Tag di codifica: 0x14

I tipi di dati TeletexString e T61String correlati vengono codificati in 8 bit (o 16 bit per i caratteri compositi). Entrambi hanno un numero di tag di 0x14. Non sono ampiamente utilizzati.

UTF8String

Tag di codifica: 0x0C

nome Certreq.exe: UTF8_STRING

Il formato di trasformazione UCS/Unicode a 8 bit (UTF-8) è una codifica di caratteri a lunghezza variabile che può rappresentare qualsiasi carattere universale come carattere Unicode, consentendo al tempo stesso di mantenere coerenti i punti di codice iniziali con ASCII. UTF-8 usa da uno a quattro byte. Il numero di tag è 0x0C.

Sistema di tipi ASN.1

Distinguished Encoding Rules

Codifica DER dei tipi ASN.1