0

我正在从一个 java 智能卡中读取一个 PKCS 证书对象,它在两个单独的缓冲区中返回证书数据。一个用于标签和长度,另一个用于值。(即一个 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 4 0 2 4 01 0 6 2 FF 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 27 08 1 00 15 01A 01 00 15 01A 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 43 37 39 39 33 42 2D 42 36 32 32 33 2D 34 33 33 33 33 33 38 2D 42 39 39 39 35 31 2D 42 42 42 42 42 43 33 34 34 35 35 35 35 37 37 37 37 31 44 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 A E3 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 313 4D F8 8C 84 12 10 37 E0 9E C5 E6 82 69 B2...

我正在尝试将 TL 和 Vs 组合回单个缓冲区,但无法以有效 ASN.1 的方式完成此操作,而且我似乎总是在到达终点之前用完标签的值。最后,第一个标签表示零长度的对象标识符,这似乎也没有多大意义。

任何帮助将不胜感激。我读过很多规格。并找到答案

谢谢,

4

2 回答 2

1

我也不了解这些 T 和 V 缓冲区如何工作的所有内容,但我可以在您的 T 缓冲区中找到标签,这应该对您有所帮助。

你写道:“最后,第一个标签表示一个零长度的对象标识符,这似乎也没有多大意义。”

你说的对!第一个标签不是长度为 0x00 的 0x06。

  • 在您的 T 缓冲区中,第一个标签是 0x72,长度为 0x27 - 我认为它是根据 NIST IR 6887 的 MSCUID

  • 第二个标签是 0x69

  • 第三个标签是 0x68(可能是公钥,可能是字节反转)

  • 第四个标签是 0x67

  • 第 5 个标签是 0xDC(可能是 PKI AID)

  • 第 6 个标签是 0x66

  • ETC...

认识模式?在 T 缓冲区中,每个标签前面都有 0_ 00 15 01。在我看到的特定卡片上,标签之前是 00 00 14 01。

不幸的是,我不知道这 4 个字节是什么意思,我也不明白 T 缓冲区中标签长度之后的值是什么,如果你需要的话。

希望这是有价值的信息,可以帮助您入门。干杯,

阿梅

于 2012-06-11T21:25:40.813 回答
0

您写道:“数据应该包含三个证书,我确实注意到了 06 00 15 01 以及 07 00 15 01 和 08 00 15 01 的模式。”

有趣的观察。每个证书很可能都被标记为0x66

另外,我在您的V 缓冲区中注意到您的第二个对象以78 9C开头:这是*Zlib压缩文件的标头。您可能会在 V 缓冲区的其他地方找到此标头(例如,也用于证书),您需要先解压缩。在您获得有效的 ASN.1 之前,有很多乐趣在等着您 :-)

祝你好运!

阿梅

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

于 2012-06-14T18:51:03.687 回答