2

OpenSSL 0.9.8 から 1.1.0 への移植に取り組んでいるときに、不足している機能に遭遇しました。OpenSSL チームはコード ベースの整理に忙しくしており、整理の 1 つは ASN 処理マクロと関数を削除することでした。以前は、次のコードでSTACK_OF(X509)certs から に変換できました。DER

注: 例を簡潔にするために、エラー処理を削除しました

PyObject* get_der(STACK_OF(X509) *stack) {
    unsigned char* enc
    int len;
    enc = ASN1_seq_pack_X509(stack, i2d_X509, NULL, &len);
    return PyString_FromString(enc, len)
    }

これにより、リンクがなくなり、ビルド プロセスが未解決の外部シンボルでエラーになります。

0.9.8 のコード ベースを調べたところ、それASN1_seq_pack_X509はマクロであることがわかりました。深くネストされたマクロを追跡した後、上記の呼び出しが最終的に次のようになることを発見しました。

ASN1_seq_pack(X509, stack, i2d_X509, NULL, &len)

OpenSSL 1.1.0ASN1_seq_packにはもう存在しません。だからここに私の質問があります。STACK_OF(X509)からにどのように変換する必要がありDERますか?

4

0 に答える 0