有谁知道在 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?
非常感谢任何帮助。
卡鲁姆