我正在解码ASN.1格式的X.509证书。我正在解码它,遍历结构,但有一件事我不明白。ASN.1 Octet字符串
有一些情况下,我得到一个八位字节字符串,我正在玩这个网站(http://lapo.it/asn1js/)显示这些八位字节字符串实际上包含更多的ASN.1树。这个网站注释这样的八位字节字符串(封装)
我的问题是这样的:我怎么知道在解析过程中,八位字节字符串实际上封装了更多的东西?我只是试图解析它,看看我是否有一个标签和有效长度?如果不是那么它是纯粹的字节数据?如果是,那么它是一个有效的子树?
或者这是否意味着输出为字节,然后消费者应该只尝试解析它,如果他知道它是某些密钥的编码数据?
拿出已经加载到网站上的例子,并点击“解码”。我指的是偏移332,这是一个封装了位串的八位组串。
偏移332在这个例子是*的keyUsage *,这是[只是一个比特串(HTTP:/ /www.alvestrand.no/objectid/2.5.29.15.html)。一个更有趣的例子可能是'subjectAltName' 2.5.29.17,该证书中不存在,但https://google.com/具有很好的测试解析功能。 – 2013-03-08 17:12:07
对不起,我想说明一下,我的意思是google.com https网站上的证书,它有40多个altNames。这是*不* LMGTFY ;-) – 2013-03-08 18:50:08
@ mr.spuratic该例中的偏移量332有一个包含位串的八位组串。我的问题是,如果有某种规则,我可以推断出一个原始封装别的东西。或者我只是试图解码它,如果长度和类型都工作,然后取代解码的值?或者我可以从某些规范知道像subjectAltName这样的东西总是一个八位字节字符串,它可以编码更多的东西吗? – Cocoanetics 2013-03-09 11:27:49