gpt4 book ai didi

decoding - ASN.1 八位字节字符串

转载 作者:行者123 更新时间:2023-12-02 22:00:07 34 4
gpt4 key购买 nike

我正在解码 ASN.1 格式的 X.509 证书。我成功解码了它,遍历了结构,但有一件事我不明白。

在某些情况下,我会得到一个八位字节字符串,而我正在使用的这个网站 ( http://lapo.it/asn1js/ ) 显示这些八位字节字符串实际上包含更多的 ASN.1 树。该网站将此类八位字节字符串注释为(封装)

我的问题是:在解析过程中我如何知道八位字节字符串实际上封装了更多内容?我是否只是尝试解析它,看看是否获得标签和有效长度?如果不是那么它是纯字节数据?如果是,那么它是一个有效的子树?

或者这是否意味着以字节形式输出,并且消费者只有在知道它是来自某些键的编码数据时才应该尝试解析它?

以网站上已加载的示例为例,然后点击“解码”。例如,我指的是偏移量 332,它是封装位字符串的八位字节字符串。

最佳答案

这就是 ASN.1 中“扩展”的样子(RFC 2459 §B.2 - 我知道 RFC 已“过时”,但后续版本中不存在该有用的附录)。

Extensions ::= SEQUENCE OF Extension

Extension ::= SEQUENCE {
extnId OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING }

每个扩展有效负载都封装在一个八位字节字符串中。扩展的 OID 告诉您该八位字节字符串中的内容。对于keyUsage,它是 BIT STRING (§4.2.1.3)。

现在我在 subjectAltName 上有了关于我自己的问题的答案,它在 §4.2.1.7 中.

对内容使用 OCTET STRING 的一个好处是,根据规范,可以识别未知(非关键)扩展,并轻松跳过(尽管我认为 DER 也使其变得微不足道)。

关于decoding - ASN.1 八位字节字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299201/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com