Кто-нибудь знает о том, что в 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, но мне показалось, что предполагалось, что вы знаете, что это за структура.
Я также смотрел на sna cc, но Я изо всех сил пытался скомпилировать что-нибудь с этим и снова казался немного тупым. Я думаю, что ffasn1 c будет работать, но для этого требуется лицензия, которую я не могу получить.
Я знал, что OpenSSL должен будет сделать что-то подобное, например d2i_X509
, но это предполагает, что это X509, который он нет. Есть ли в OpenSSL метод, который позволил бы вам анализировать и перебирать DER?
Любая помощь очень ценится.
Calum