>我正在使用一个".cer"证书文件,我的任务是将其推送到堆栈STACK_OF(X509_INFO) *sk;
我已经将".cer"转换为X509* ptr
,现在我面临的问题是如何将X509* ptr
转换为BIO* stackbio
,因为我使用的方法需要BIO*
作为参数推送到堆栈。
sk = PEM_X509_INFO_read_bio(BIO* stackbio, sk, NULL, NULL);
可能第一步是将X509*
转换为BIO*
。执行此操作的功能是: int i2d_X509_bio(BIO *bp, X509 *x);
.根据文档 https://linux.die.net/man/3/d2i_x509:
i2d_X509_bio() 与 i2d_X509() 类似,只是它写入编码 结构 x 到 BIO bp,它返回 1 表示成功,返回 0 表示成功 失败。
获得包含编码证书的BIO*
后,您应该能够将其推送到堆栈 https://wiki.openssl.org/index.php/STACK_API:
/* add value */
#define sk_BIO_insert(st, val, i) SKM_sk_insert(BIO, (st), (val), (i))