1

openssl lib を使用して ASN1_OBJECT を DER にエンコードしようとしています。https://www.openssl.org/docs/man1.1.0/crypto/i2d_X509.htmlに文書化されている関数 i2d_ASN1_OBJECT があります。また、機能するサンプルコードがあります(別のオブジェクトタイプの場合):

unsigned char *smder = NULL;
int smderlen, r;
smderlen = i2d_X509_ALGORS(algs, &smder);
if (smderlen <= 0)
    return 0;

algs には X509_ALGOR の STACK が事前設定されています。ASN1_OBJECT の私のコード:

unsigned char *ctder = NULL;
int ctderlen, r;
ASN1_OBJECT* obj = OBJ_txt2obj("1.2.3.4", 1);
ctderlen = i2d_ASN1_OBJECT(obj, &ctder);  // SEGFAULT here
if (ctderlen <= 0)
    return 0;

私はそこでセグメンテーション違反を起こしています。

アップデート

これはバグであり、現在は修正されています (参照: https://github.com/openssl/openssl/issues/6914 )

4

1 に答える 1