Openssl 如何将C字符串转换为X509_名称

Openssl 如何将C字符串转换为X509_名称,openssl,x509,Openssl,X509,如何将string/char*转换为X509_NAME* const char* issuer_c = issuerstr.c_str(); X509_NAME* issuerName = d2i_X509_NAME(NULL, (const unsigned char**)&issuer_c, -1); 即使调用了d2i\u X509\u name,发卡机构名称也为空。 我认为这个d2i方法只适用于二进制数据。那么如何将字符串转换为X509\u NAME?也许?X509\u NAME

如何将string/char*转换为X509_NAME*

const char* issuer_c = issuerstr.c_str();
X509_NAME* issuerName = d2i_X509_NAME(NULL, (const unsigned char**)&issuer_c, -1);
即使调用了
d2i\u X509\u name
,发卡机构名称也为空。
我认为这个
d2i
方法只适用于二进制数据。那么如何将字符串转换为X509\u NAME?

也许?
X509\u NAME\u new
将返回X509\u NAME*。好的但是如何将char*分配给它呢?你能给我举个例子吗?在
apps.c
中查看。这是一个内部OpenSSL函数,但它向您展示了库是如何实现的。谢谢@jww。这有帮助。该方法用于主题名称转换。我希望它也适用于发行人名称。