OpenSSL-通过内存将X509 * x509转换为file-BIO *

时间:2019-01-18 04:46:19

标签: c++ openssl x509certificate

我正在使用“ .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);

1 个答案:

答案 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))