0

証明書データを 2 つの別々のバッファーに返す Java スマート カードから PKCS 証明書オブジェクトを読み取っています。1 つはタグと長さ用、もう 1 つは値用です。(つまり、T-BUffer と V-Buffer)。(ASN.1 エンコード)

TL 値を含むバッファーは次のようになります。

06 00 15 01 72 27 00 00 80 00 FE 02 06 00 15 01 69 3F 06 00 15 01 68 FF 01 01 06 00 15 01 67 DD 06 00 15 01 DC 0B 06 00 15 04 05 4 FF 20 C8 25 00 FF 20 02 DC 05 00 00 90 00 FE 05 07 00 15 01 72 27 07 00 15 01 69 39 07 00 15 01 68 FF 01 01 08 00 15 01 72 270 08 00 6 15 0 1 5 0 01 68 FF 01 01 07 00 15 01 67 ED 07 00 15 01 DC 0B 07 00 15 01 66 FF 60 04 08 00 15 01 67 ED 08 00 15 01 DC 0B 08 00 15 01 66 FF

バリュー バッファの長さは 5277 バイトで、次のようになります。

00 01 01 33 39 42 42 43 37 39 33 42 2d 42 36 32 33 2d 34 33 33 38 2d 42 39 35 31 2d 42 45 42 43 33 34 35 35 35 35 37 31 44 00 01 01 78 9C 53 62 64 60 60 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 60 60 60 64 60 64 02 32 45 80 CC B6 FF DF 9E 6C EE DF B8 F8 E0 71 D7 CC 73 35 AE 01 AE B2 76 35 2C 8C 20 25 40 C0 06 63 28 02 49 16 10 83 83 81 EC 33 0B A2 00 DF 07 9F F5 B5 E7 D1 F3 1F 98 41 F2 9A 39 B3 6E 7C 34 4F CB E1 C1 E7 F4 69 17 63 5E CD B8 6C 10 14 8D 6A 4B 32 B0 90 27 22 44 97 A3 E7 1B 63 75 D5 F2 22 E7 07 22 B3 7F 01 FD 1E 3B BB 66 85 0B 48 68 DF CC 66 11 86 E9 D7 77 1A 31 2E 7D AB BF 89 4C 18 AF 74 B5 B5 5F 9D 4D F8 83C 84 0 12 10 37 E0 9E C5 E6 82 69 B2...

TL と V を 1 つのバッファーに戻そうとしていますが、有効な ASN.1 のような方法でそれを達成できず、最後に到達する前に常にタグが不足しているように見えます値の。最後に、最初のタグは長さゼロのオブジェクト識別子を示していますが、これもあまり意味がないようです。

どんな助けでも大歓迎です。私は多くの仕様を読みました。そして親切に答えを見つけてください

ありがとう、

4

2 に答える 2

1

これらの T および V バッファーがどのように機能するかについてもすべてを理解しているわけではありませんが、T バッファーでタグを見つけることができ、これが役立つはずです。

あなたは次のように書いています: 「最後に、最初のタグは長さゼロのオブジェクト識別子を示しますが、これもあまり意味がないようです。」

あなたが正しいです!最初のタグは長さ 0x00 の 0x06 ではありません。

  • あなたのTバッファでは、最初のタグは長さ0x27の0x72です-NIST IR 6887によるMSCUIDだと思います

  • 2 番目のタグは 0x69 です

  • 3 番目のタグは 0x68 (おそらく公開鍵、おそらくバイト反転)

  • 4 番目のタグは 0x67

  • 5 番目のタグは 0xDC (おそらく PKI AID)

  • 6 番目のタグは 0x66

  • 等...

パターンを認識しますか?T バッファーでは、すべてのタグの前に 0_ 00 15 01 が付きます。私が見た特定のカードでは、タグの前にあるのは 00 00 14 01 でした。

残念ながら、これらの 4 バイトが何を意味するのかはわかりません。また、T バッファーのタグ長の後の値が必要な場合にどうなるかもわかりません。

これがあなたが始めるための貴重な情報であることを願っています. 乾杯、

アメ

于 2012-06-11T21:25:40.813 に答える
0

「データには 3つの証明書が含まれているはずですが、06 00 15 01 というパターンだけでなく、07 00 15 01 と 08 00 15 01 というパターンにも気付きました。」

興味深い観察。各証明書が0x66とタグ付けされている可能性が非常に高いです。

また、あなたのV-bufferで、2 番目のオブジェクトが78 9Cで始まることに気付きました。これは*Zlib圧縮ファイルのヘッダーです。このヘッダーは V-buffer の別の場所にある可能性があり (たとえば、証明書用にも)、最初に解凍する必要があります。有効な ASN.1 にたどり着く前に、たくさんの楽しみが待っています :-)

幸運を!

アメ

*http://en.wikipedia.org/wiki/Zlib
*http://zlib.net/

于 2012-06-14T18:51:03.687 に答える