查看源代码 简介

asn1 应用程序提供以下功能:

  • 一个用于 Erlang 的 ASN.1 编译器,它生成用于 Erlang 程序发送和接收 ASN.1 指定数据的编码和解码函数。
  • 由生成的代码使用的运行时函数。
  • 支持以下编码规则:
    • 基本编码规则 (BER)
    • 区分编码规则 (DER),一种用于安全敏感应用程序的特殊形式的 BER
    • 打包编码规则 (PER),包括对齐和非对齐两种变体
    • JSON 编码规则 (JER)

范围

此应用程序涵盖了 1997 年规范版本之前的所有 ASN.1 功能。在 2002 年版本中,引入了新功能。2002 年版本的以下功能得到完全或部分支持:

  • REAL 值的十进制表示法(例如,"1.5e3)。支持 ISO 6093 中解释的 NR1、NR2 和 NR3 格式。
  • 完全支持相对对象标识符的 RELATIVE-OID 类型。
  • 编译时会解析子类型约束 (CONTAINING/ENCODED BY),以约束八位字节字符串或位字符串的内容,但不采取进一步操作。此约束不是 PER 可见的约束。
  • 编译时会解析字符类型字符串的正则表达式子类型约束 (PATTERN),但不采取进一步操作。此约束不是 PER 可见的约束。
  • 支持 C 语言风格的多行注释,如 /* ... */

先决条件

假设读者熟悉 Erlang 编程语言、OTP 的概念,并熟悉 ASN.1 表示法。ASN.1 表示法记录在标准定义 X.680 中,这是主要文本。阅读标准定义 X.681、X.682、X.683、X.690 和 X.691 也会有所帮助,但不是必需的。

一本很好地解释这些参考文本的书是 Dubuisson 的《ASN.1 - 异构系统之间的通信》,可以在 http://www.oss.com/asn1/dubuisson.html 免费下载。