編碼主體名稱
當您使用辨別名稱初始化IX500DistinguishedName物件來識別憑證要求的主體時,會建立可辨別編碼規則 (DER) 編碼的抽象語法標記法一 (ASN.1) 序列。 例如,假設主體辨別名稱是由下列相對辨別名稱所組成, (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"
如 主體名稱中所述,辨別名稱中的每個 RDN 都包含一組屬性,而每個屬性都包含 物件識別碼 (OID) 和值。 若要瞭解 IX500DistinguishedName 物件如何編碼辨別名稱,請考慮一般名稱 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"
ASN.1 物件的 DER 傳輸語法一律包含類型、長度和值三元,而三元組中的每個欄位都包含一或多個位元組。 編碼時,CN=Users 是由 OID 和字串值所組成。 CN OID 的虛線十進位標記法是 2.5.4.3,而字串值為 「Users」。 字串值會以 PRINTABLE_STRING 資料類型表示。 與 OBJECT_ID 相關聯的數值一律0x06,且與 PRINTABLE_STRING 相關聯的數數值型別一律0x13。 一般名稱 「Users」 的長度是0x05個位元組。 OID 的長度是0x03個位元組,而其值為 0x55 0x04 0x03。
注意
若要將 OID 2.5.4.3 的前兩位數轉譯為十六進位值0x55,請將 OID 的第一個數位乘以 40 (2 x 40) ,然後在轉換成十六進位之前,將第二個數字 (5) 。
相關主題