c - 使用 ASN.1 编码数据

标签 c encode asn.1

我尝试按照此示例重新添加数据并将其发送到服务器。

CertainStructure_t *cs = 0;
        ber_decode(0, &asn_DEF_CertainStructure, &cs, buffer, buffer_length);
        cs->val1 = 123;        /* Modify the contents */
        der_encode(&asn_DEF_CertainStructure, cs, write_handle, 0);

这段代码是我写的

Message01_t *a;
a->number = 123;
der_encode(&Message01, a, write_handle, 0);

Message01的描述是

Message01 ::= SEQUENCE
        {
          number INTEGER  -- inital integer
        }

我收到这个错误

error: incompatible types in assignment
error: ‘Message01’ undeclared (first use in this function)

最佳答案

假设这是在线 ASN.1 编译器 http://lionet.info/asn1c/asn1c.cgi

只是想让它编译......并不真正知道我在做什么:

以下刚刚编译:

#include <Message01.h> 

int write_handle(void const*, unsigned long, void*) {
    // no idea what this is
    return 0;
}

int main() {        
    Message01_t *a=new Message01_t(); // Must be created/allocated/whatever
    a->number = 123;
    der_encode(&asn_DEF_Message01, a, write_handle, 0);
}

注释:

  1. 正如您的示例所示,您必须使用 &asn_DEF_MyTypeName。似乎是生成的静态变量,带有 ASN.1 类型的描述符。
  2. 未收到分配错误。数字很​​长...所以应该没问题。
  3. 必须为 Message01_t *a 变量分配一些内容。我使用过 C++,选择你的...或者在 der_encode 调用中使用局部变量和 &a。

关于c - 使用 ASN.1 编码数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583590/

相关文章:

c - 未初始化的指针变量有什么用?

javascript - 为什么不 decodeURI ("a+b") == "a b"?

base64 - Sublime Text 2 是否有一些插件可以将图像编码为 base64

ASN.1 SEQUENCE 标签编号编码

c++ - VSCode C/C++ Intellisense 和 Windows 特定库

c - 尝试清除输入缓冲区时无限循环

ios - 使用 swift 4 进行 JSON 编码/解码

Openssl Asn1parse 无法正确提取数据

java - 将 ASN1Dump.dumpAsString 的输出转换为 java 中的类

c - c语言中链接和加载有什么区别