C++ OpenSSL-通过内存将X509*X509转换为BIO*文件
我正在处理一个“.cer”证书文件,我的任务是将它推送到堆栈C++ OpenSSL-通过内存将X509*X509转换为BIO*文件,c++,openssl,x509certificate,C++,Openssl,X509certificate,我正在处理一个“.cer”证书文件,我的任务是将它推送到堆栈stack\u OF(X509\u INFO)*sk 我已经将“.cer”转换为X509*ptr,现在我面临的问题是如何将X509*ptr转换为BIO*stackbio,因为我使用的方法需要BIO*作为参数推送到堆栈中 sk = PEM_X509_INFO_read_bio(BIO* stackbio, sk, NULL, NULL); 第一步可能是将X509*转换为BIO*。执行此操作的函数是:inti2d\ux509\ubio(b
stack\u OF(X509\u INFO)*sk代码>
我已经将“.cer”转换为X509*ptr
,现在我面临的问题是如何将X509*ptr
转换为BIO*stackbio
,因为我使用的方法需要BIO*
作为参数推送到堆栈中
sk = PEM_X509_INFO_read_bio(BIO* stackbio, sk, NULL, NULL);
第一步可能是将X509*
转换为BIO*
。执行此操作的函数是:inti2d\ux509\ubio(bio*bp,X509*x)代码>。根据文件:
i2d_X509_bio()与i2d_X509()类似,只是它写入编码
将结构x的
失败
一旦您获得了包含编码证书的BIO*
,您应该能够将其推到堆栈上:
/* add value */
#define sk_BIO_insert(st, val, i) SKM_sk_insert(BIO, (st), (val), (i))