查看源代码 简介
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 免费下载。