C++ OpenSSL-通过内存将X509*X509转换为BIO*文件

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

我正在处理一个“.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(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))