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.
Argomenti correlati