我正在使用“ .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);
答案 0 :(得分:1)
可能的第一步是将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))