2010-08-03 69 views
0

有没有什么办法来区分标志后面的标志和子标志之间的数据?在我输出的雅虎证书中,有一个部分是a0 2d a0 2b ...,它是所有标志。另一方面,主题密钥ID是“a0 1e 6e 0c 9b 6e 6a eb d2 ae 5a 4a 18 ff 0e 93 46 1a d6 32”。我将如何分辨哪个是什么?其他标志,如03,0406做了很多如何识别x509标志

此外,有没有人认识字符串86 29?它既不是一个标志也不是可读的数据(29是“)”,但似乎并不影响任何内容)

+1

您应该阅读X.509标准,特别是ASN.1编码。 – Borealid 2010-08-03 21:46:49

+0

我有,但我不记得谈论规则的例外的任何部分/无论这是 – calccrypto 2010-08-03 21:55:23

回答

0

您可以将证书导出到文件中,然后使用CertUtil.exe -dump检查证书的包含。

更新基于评论:由于您在评论中粘贴了一长串字符,评论可能会被错误阅读。所以我在这里重复我最后一条评论的文字:

解码X.509扩展的最简单方法是使用CryptDecodeObjectExX509_EXTENSIONS。因此,您将收到CERT_EXTENSIONS - CERT_EXTENSION的数组(请参阅msdn.microsoft.com/en-us/library/aa377195.aspx)。一个扩展包括一个定义扩展的OID,一个扩展是否为关键的属性(你是否真的必须理解它)和一个可选的附加的编码扩展数据,这些数据在大多数情况下是BER编码的NULL。因为您可以解码自己对应于RFC 3280,X.509 PKI(参见http://www.ietf.org/rfc/rfc3280.txt)的4.2的信息。

+0

我知道什么数据说。即时尝试提取信息我自己 – calccrypto 2010-08-04 00:30:37

+0

X.509证书的哪部分你叫“x509标志”和“子标志”?如果你描述了你的意思,我可以向你解释如何解码信息。几年前,我对ASN.1,BER,DER和X.509有更多的理解,我写了一个实用程序,它产生的输出可以与'CertUtil.exe -dump'进行比较。那是你想要做的吗? – Oleg 2010-08-04 00:42:57

+0

犯错......我想是的。遇到问题的部Im是:“3081ab300e0603551d0f0101ff0404030204f0301d0603551d0e04160414a01e6e0c9b6e6aebd2ae5a4a18ff0e93461ad632303a0603551d1f04333031302fa02da02b8629687474703a2f2f63726c2e67656f74727573742e636f6d2f63726c732f73656375726563612e63726c301f0603551d2304183016801448e668f92bd2b295d747d82320104f3398909fd4301d0603551d250416301406082b0601050507030106082b06010505070302”,这仅仅是“附加信息”部分。我设法获得了证书的其余部分(高达“65537”),签名算法和signatureValue。对我来说,sub标志是字符串im中的任何组合 – calccrypto 2010-08-04 01:42:27