UTF8String

ASN.1 UTF8String 数据类型编码为 TLV 三元组,该三元组以 标记 字节0x0C开头。 以下示例来自 CMC 编码 ASN.1 主题,展示了如何将 ClientId 属性编码为整数和三种 UTF8String 类型。 属性的对象标识符为 1.3.6.1.4.1.311.21.20。 可以使用 IX509AttributeClientId 接口指定的信息包括客户端 ID 号、域名系统 (DNS) 计算机名称、安全帐户管理器 (SAM) 用户名,以及创建证书请求的应用程序的名称。

06 09                                ; OBJECT_ID (9 Bytes)
|  2b 06 01 04 01 82 37 15  14       ;   1.3.6.1.4.1.311.21.20 
31 4a                                ; SET (4a Bytes)
   30 48                             ; SEQUENCE (48 Bytes)
      02 01                          ; INTEGER (1 Bytes)
      |  09
      0c 23                          ; UTF8_STRING (23 Bytes)
      |  76 69 63 68 33 64 2e 6a     ;   vich3d.j
      |  64 6f 6d 63 73 63 2e 6e     ;   domcsc.n
      |  74 74 65 73 74 2e 6d 69     ;   ttest.mi
      |  63 72 6f 73 6f 66 74 2e     ;   crosoft.
      |  63 6f 6d                    ;   com
      0c 15                          ; UTF8_STRING (15 Bytes)
      |  4a 44 4f 4d 43 53 43 5c     ;   JDOMCSC\
      |  61 64 6d 69 6e 69 73 74     ;   administ
      |  72 61 74 6f 72              ;   rator
      0c 07                          ; UTF8_STRING (7 Bytes)
         63 65 72 74 72 65 71        ;   certreq

如果字符串包含少于 128 个字节,则 TLV 三元组的 Length 字段只需要一个字节即可指定内容长度。 如果字符串超过 127 个字节,则 “长度 ”字段的第 7 位设置为 1,位 6 到 0 指定用于标识内容长度的其他字节数。 有关详细信息,请参阅 编码的长度和值字节

ASN.1 类型系统

ASN.1 类型的 DER 编码