Codifica di un nome soggetto
Quando si inizializza un oggetto IX500DistinguishedName con un nome distinto per identificare l'oggetto di una richiesta di certificato, viene creata una sequenza di notazione astratta (ASN.1) codificata Distinguished Encoding Rules (DER). Si supponga, ad esempio, che il nome distinto soggetto sia costituito dai nomi distinti relativi seguenti (RDN):
- E=Administrator@jdomcsc.nttest.microsoft.com
CN=Administrator
CN=Users
DC=jdomcsc
DC=nttest
DC=microsoft
DC=com
0a0d: 30 81 c4 ; SEQUENCE (c4 Bytes)
0a10: | 31 13 ; SET (13 Bytes)
0a12: | | 30 11 ; SEQUENCE (11 Bytes)
0a14: | | 06 0a ; OBJECT_ID (a Bytes)
0a16: | | | 09 92 26 89 93 f2 2c 64 01 19
| | | ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a20: | | 16 03 ; IA5_STRING (3 Bytes)
0a22: | | 63 6f 6d ; com
| | ; "com"
0a25: | 31 19 ; SET (19 Bytes)
0a27: | | 30 17 ; SEQUENCE (17 Bytes)
0a29: | | 06 0a ; OBJECT_ID (a Bytes)
0a2b: | | | 09 92 26 89 93 f2 2c 64 01 19
| | | ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a35: | | 16 09 ; IA5_STRING (9 Bytes)
0a37: | | 6d 69 63 72 6f 73 6f 66 74 ; microsoft
| | ; "microsoft"
0a40: | 31 16 ; SET (16 Bytes)
0a42: | | 30 14 ; SEQUENCE (14 Bytes)
0a44: | | 06 0a ; OBJECT_ID (a Bytes)
0a46: | | | 09 92 26 89 93 f2 2c 64 01 19
| | | ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a50: | | 16 06 ; IA5_STRING (6 Bytes)
0a52: | | 6e 74 74 65 73 74 ; nttest
| | ; "nttest"
0a58: | 31 17 ; SET (17 Bytes)
0a5a: | | 30 15 ; SEQUENCE (15 Bytes)
0a5c: | | 06 0a ; OBJECT_ID (a Bytes)
0a5e: | | | 09 92 26 89 93 f2 2c 64 01 19
| | | ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a68: | | 16 07 ; IA5_STRING (7 Bytes)
0a6a: | | 6a 64 6f 6d 63 73 63 ; jdomcsc
| | ; "jdomcsc"
0a71: | 31 0e ; SET (e Bytes)
0a73: | | 30 0c ; SEQUENCE (c Bytes)
0a75: | | 06 03 ; OBJECT_ID (3 Bytes)
0a77: | | | 55 04 03
| | | ; 2.5.4.3 Common Name (CN)
0a7a: | | 13 05 ; PRINTABLE_STRING (5 Bytes)
0a7c: | | 55 73 65 72 73 ; Users
| | ; "Users"
0a81: | 31 16 ; SET (16 Bytes)
0a83: | | 30 14 ; SEQUENCE (14 Bytes)
0a85: | | 06 03 ; OBJECT_ID (3 Bytes)
0a87: | | | 55 04 03
| | | ; 2.5.4.3 Common Name (CN)
0a8a: | | 13 0d ; PRINTABLE_STRING (d Bytes)
0a8c: | | 41 64 6d 69 6e 69 73 74 72 61 74 6f 72 ; Administrator
| | ; "Administrator"
0a99: | 31 39 ; SET (39 Bytes)
0a9b: | 30 37 ; SEQUENCE (37 Bytes)
0a9d: | 06 09 ; OBJECT_ID (9 Bytes)
0a9f: | | 2a 86 48 86 f7 0d 01 09 01
| | ; 1.2.840.113549.1.9.1 Email Address (E)
0aa8: | 16 2a ; IA5_STRING (2a Bytes)
0aaa: | 41 64 6d 69 6e 69 73 74 72 61 74 6f 72 40 6a 64 ; Administrator@jd
0aba: | 6f 6d 63 73 63 2e 6e 74 74 65 73 74 2e 6d 69 63 ; omcsc.nttest.mic
0aca: | 72 6f 73 6f 66 74 2e 63 6f 6d ; rosoft.com
| ; "Administrator@jdomcsc.nttest.microsoft.com"
Come illustrato in Nomi oggetto, ogni rdn in un nome distinto è costituito da un set di attributi e ogni attributo contiene un identificatore di oggetto (OID) e un valore. Per comprendere come l'oggetto IX500DistinguishedName codifica un nome distinto, considerare il nome comune CN=Users.
0a73: | | 30 0c ; SEQUENCE (c Bytes)
0a75: | | 06 03 ; OBJECT_ID (3 Bytes)
0a77: | | | 55 04 03
| | | ; 2.5.4.3 Common Name (CN)
0a7a: | | 13 05 ; PRINTABLE_STRING (5 Bytes)
0a7c: | | 55 73 65 72 73 ; Users
| | ; "Users"
La sintassi di trasferimento DER di un oggetto ASN.1 contiene sempre un triplo di tipo, lunghezza e valore e ogni campo nel triplo contiene uno o più byte. Se codificato, CN=Users è costituito da un OID e un valore stringa. La notazione decimale punteggiata dell'OID CN è 2.5.4.3 e il valore stringa è "Users". Il valore stringa viene rappresentato come tipo di dati PRINTABLE_STRING . Il valore numerico associato a OBJECT_ID è sempre 0x06 e il tipo numerico associato a PRINTABLE_STRING è sempre 0x13. La lunghezza del nome comune "Users" è 0x05 byte. La lunghezza dell'OID è 0x03 byte e il valore è 0x55 0x04 0x03.
Nota
Per tradurre le prime due cifre dell'OID 2.5.4.3 nel valore esadecimale 0x55, moltiplicare la prima cifra dell'OID per 40 (2 x 40) e aggiungere la seconda cifra (5) prima di convertire in esadecimale.
Argomenti correlati