对使用者名称进行编码
使用可分辨名称初始化 IX500DistinguishedName 对象以标识证书请求的主题时,将创建可辨别编码规则 (DER) 编码的抽象语法表示法 One (ASN.1) 序列。 例如,假设使用者可分辨名称由以下相对可分辨名称组成, (RDN) :
- E=Administrator@jdomcsc.nttest.microsoft.com
CN=管理员
CN=用户
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) 相加。
相关主题