SET

SET には、1 つ以上の型の順序付けられていない一連のフィールドが含まれます。 これは、 0x31の Tag バイトで始まる TLV トリプレットにエンコードされます。 CMC でエンコードされた ASN.1 トピックに適合した次の例は、ClientId 属性が SET データ構造でどのようにエンコードされるかを示しています。 属性は、 IX509AttributeClientId インターフェイスを使用して指定できます。

31 59                                     ; SET (59 Bytes)
   30 57                                  ; SEQUENCE (57 Bytes)
      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 

SET に含まれるバイト数が 128 バイト未満の場合、TLV トリプレットの Length フィールドは、コンテンツの長さを指定するために 1 バイトしか必要としません。 127 バイトを超える場合、 Length フィールドのビット 7 は 1 に設定され、ビット 6 から 0 はコンテンツ長を識別するために使用される追加バイト数を指定します。 詳細については、「 エンコードされた長さ」と「値のバイト数」を参照してください。

ASN.1 型システム

ASN.1 型の DER エンコード