1

有谁知道在 C/C++ 中可以将未知的 DER 序列化为可以导航的结构。

例如:

说我有 DER

Hello ::= SEQUENCE {
   myInt INTEGER,
   myBool BOOLEAN,
   myStr UTF8String
}

作为编码。我希望能够将此序列解析为可以导航的 C 结构。IE

unsigned char *myDer = { 0x30, ..., 0x02, 0x01,0x12, ... };
AsnObj obj(myDer);
AsnObj *children = obj.getChildren();
for(int i=0;i<children->size();++i) {
   AsnObj child = children.getChild(i);
   /* Do something with this child */
}

我查看了各种工具,例如 asn1-compiler,但这似乎假设您知道结构是什么。

我还查看了 snacc,但我很难用它编译任何东西,而且似乎有点迟钝。我认为 ffasn1c 会起作用,但它需要我无法获得的许可证。

我知道 OpenSSL 必须做类似的事情,d2i_X509但这是假设它不是 X509。OpenSSL 上是否有一种方法可以让您解析和迭代 DER?

非常感谢任何帮助。

卡鲁姆

4

0 回答 0