如何在ASN.1上工作并在其中实现结构?

时间:2012-01-12 07:15:06

标签: asn.1

我想使用asn.1实现一些协议,所以我要做的是声明结构并在某些头文件中标记名称,并将asn.1的编码规则实现为函数。 你能给我推荐一些教程或书籍吗? 我不知道如何为它编写代码。

3 个答案:

答案 0 :(得分:5)

如果您是ASN.1的新手,请查看" ASN.1 Made Simple" - http://www.oss.com/asn1/resources/asn1-made-simple/introduction.html - 它简要介绍了ASN.1。在http://www.oss.com/asn1/resources/books-whitepapers-pubs/asn1-books.html免费下载还有一些好书可以为您提供更全面的视图。

此网站不允许我为每封邮件发布两个以上的链接,因此会在单独的帖子中显示更多信息。

答案 1 :(得分:5)

第2部分

如果您有ASN.1规范,最好的办法是获得一个ASN.1编译器,该编译器读取ASN.1规范并生成与ASN.1对应的C,C ++,C#或Java代码。结构。有许多商业和免费的ASN.1工具可用,许多商业ASN.1工具提供免费试用。您可以在http://www.itu.int/ITU-T/asn1/links/index.htm看到一个很好的ASN.1工具列表,您还可以在其中找到其他有用的ASN.1信息。

使用一个好的ASN.1工具可以使您的开发任务变得非常简单,因为您不必担心获得线路上精确位的所有细节。该工具为您处理此问题。您可以专注于C数据结构或C ++,C#或Java对象,而ASN.1工具则处理与通过该行发送的位串之间的转换。

如果您没有ASN.1规范,最好使用一个好的ASN.1工具来指导您创建ASN.1规范。如果您需要创建自己的规范,那么其链接在我的第一条消息中的书籍和教程是一个很好的起点。

答案 2 :(得分:3)

所以ASN.1并不是你为它编写代码的东西,它只是用于定义各种通信协议(通常是编码,传输等)的标准的名称。

我很惊讶你很明显没有看到过
http://en.wikipedia.org/wiki/Asn.1

这超越了基本定义,并提供了有关该主题的多种资源,包括一些书籍和ASN.1中定义的各种常见编码标准的示例(例如DER,BER等)。

这应该让你开始,因为你没有真正指出你正在进行的某些具体实施,或者你正在解决的问题还有其他任何事情。