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



>我正在使用一个".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))

相关内容

  • 没有找到相关文章

最新更新