Share via


BIT STRING

BIT STRING データ型は、0x03 の Tag バイトで始まる TLV トリプレットにエンコードされます。 TLV トリプレットの Value フィールドには、コンテンツの最終バイトで未使用のビット数を指定する先頭バイトが含まれています。 次の例では、3 つのコンテンツ バイトが続き、Value フィールドの先頭バイトが 0x04 に設定されているため、Length フィールドは 0x03 に設定されています。これは、最後のコンテンツ バイトに未使用のビットが 4 つあるためです。 未使用の各ビットは、文字 x で示されます。

ビット文字列データ型の der エンコード

PKCS #10 Encoded ASN.1 トピックに適合した次の例は、サンプル PKCS #10 証明書要求のエンコードされた署名を示しています。 最初のバイトには、BIT STRING データ型 (0x03) の Tag 値が含まれます。 2 番目と 3 番目のバイトには、バイト配列の長さが含まれます。 2 番目のバイトのビット 7 は、127 バイトを超えるコンテンツがあるため、1 に設定されます。 2 番目のバイトのビット 0 から 6 は、末尾の Length バイト (この場合は 1) の数を指定します。 3 番目のバイトは、0x81コンテンツ のバイト数を指定します。 4 番目のバイト (0x00) は、最後のコンテンツ バイトに存在する未使用ビットの数を指定します。 シグネチャはビッグ エンディアンバイト順でエンコードされることに注意してください。

0299:    03 81 81           ; BIT_STRING (81 Bytes)
029c:       00
029d:       47 eb 99 5a df 9e 70 0d  fb a7 31 32 c1 5f 5c 24
02ad:       c2 e0 bf c6 24 af 15 66  0e b8 6a 2e ab 2b c4 97
02bd:       1f e3 cb dc 63 a5 25 ec  c7 b4 28 61 66 36 a1 31
02cd:       1b bf dd d0 fc bf 17 94  90 1d e5 5e c7 11 5e c9
02dd:       55 9f eb a3 3e 14 c7 99  a6 cb ba a1 46 0f 39 d4
02ed:       44 c4 c8 4b 76 0e 20 5d  6d a9 34 9e d4 d5 87 42
02fd:       eb 24 26 51 14 90 b4 0f  06 5e 52 88 32 7a 95 20
030d:       a0 fd f7 e5 7d 60 dd 72  68 9b f5 7b 05 8f 6d 1e

ASN.1 型システム

ASN.1 型の DER エンコード

エンコードされた長さと値のバイト数