我在 ASN1 中有一些消息数据结构表示。这些消息必须使用规范八位字节编码规则 (COER) 发送。我目前将 asn1c 用于 python,但是不支持 coer。我如何创建实例,然后在 python 中进行编码?
问问题
119 次
1 回答
0
恐怕你会遇到麻烦。COER 看起来是最近才标准化的(记住 ASN.1 已经有 30 多年的历史了),而且我认为很多工具还没有赶上。
来自 OSS Nokalva 的工具似乎支持 COER,但他们不做 Python 绑定,而且他们的工具非常昂贵(但非常好)。
对于 Python,“goto”是 pyasn1 库,它似乎没有做 COER(甚至 PER,这真的很遗憾)。
Objective Systems 也非常好,现在做一个Python ASN.1 编译器(它胜过 pyasn1 的代码优先方法),但这还没有做 COER。
最简单的事情可能是 whince,为 OSS Nokalva 工具分叉,并使用 Iron Python 与他们的 C# 库和工具进行互操作。这似乎是一种昂贵的方式,但如果您的项目是在固定的时间范围内进行的,那么这可能是实现您想要的风险最低的方式。您可能不必编写任何代码来“执行”COER,相反,您可以专注于应用程序本身,避免编写自己的 COER 实现,这将难以维护,最终会被其他 ASN 超越.1 工具。
于 2020-09-05T19:51:45.600 回答