在C中解析和编辑ASN1二进制Blob

时间:2018-07-27 17:01:52

标签: c windows asn.1

我有一个有效的编码ASN1二进制Blob,我想对其进行修改。 而且,我没有编码的ASN1的定义文件,但我知道它的结构(例如,假设它是一个包含几个整数和一个八位字节串的序列)。 因此,我宁愿通过遍历序列及其字段来修改编码的二进制文件,通过设置新值并编码新的修改后的二进制blob来修改它们。

我该怎么做?即我如何解析已编码的ASN1二进制文件,对其进行修改并以C语言重新编码?是否有任何库能够做到这一点?

我正在用Windows的C开发软件模块。需要特别注意的是,(通常)许多库都面向Linux,并且在为Windows构建它们时遇到了麻烦。

谢谢。

1 个答案:

答案 0 :(得分:0)

在过去的项目中,我为此使用了asn1c。您确实需要规范:asn1c生成一个解码器和基于它的编码器。听起来就您而言,编写它并不难。

它将在Windows上运行。 FAQ声称编译器现在需要GCC,但是不能使用MSVC进行编译。您可以从www.mingw.org或Cygwin获得Windows版GCC。