5

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

4

3 回答 3

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上还有几本好书可供免费下载,它们可以让您获得更全面的视图。

该站点不允许我在每条消息中发布超过两个链接,因此更多信息将在单独的帖子中发布。

于 2012-01-13T00:25:41.480 回答
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 规范。如果您需要创建自己的规范,那么在我的第一条消息中链接的书籍和教程是一个很好的起点。

保罗

于 2012-01-13T00:28:44.223 回答
3

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

我很惊讶你显然没有在
http://en.wikipedia.org/wiki/Asn.1

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

这应该可以帮助您入门,因为您还没有真正指出您是否正在处理某些特定的实现,或者您遇到的问题是否真的有任何其他问题。

于 2012-01-12T07:38:09.180 回答