ASN.1类型定义是否存在标准的DER编码方法?
ASN.1类型定义的DER编码标准方式
是的,存在标准方式对ASN.1类型定义本身进行DER编码——并非编码类型的实例,而是编码类型定义的元信息。
- 通常我们使用DER编码的是ASN.1类型的实例(比如具体的
Foo对象,field1为"test"、field2为100这类实际数据),但ASN.1标准体系同样定义了对类型定义自身的编码规则。 - 要实现这个,需要先将目标类型定义(比如你给出的
FooSEQUENCE)映射为ASN.1的元语法结构——也就是用ASN.1自身的类型来描述"类型定义"这个概念。这种映射和后续的DER编码,由ITU-T X.680(ASN.1核心语法规范)和X.690(BER/CER/DER编码规则)的相关条款明确规定。 - 以你的示例为例,
Foo这个SEQUENCE类型定义会被转换为包含以下信息的元结构:类型类别(SEQUENCE)、字段列表(每个字段的名称、对应类型引用)等,再对这个元结构执行DER编码,得到符合标准的二进制数据。
这种编码方式并不属于ASN.1的常用场景,因为多数应用场景只需要传递类型实例而非定义,但它是完全符合标准的规范实现方式。
内容的提问来源于stack exchange,提问作者Ethan Reesor
相关产品推荐
相关产品推荐

