C ++ / OpenSSL将PEM加载到STACK_OF(X509)

时间:2018-06-01 12:03:47

标签: c++ openssl

我正在PEM中加载BIO(来自文件或直接来自用户输入)。 此PEM可以包含1到N个堆叠的证书。

我找不到一个功能,可以从我的个人标签中获取STACK_OF(X509*),就像PEM_read_bio_X509对单个X509*一样。

这样的功能存在吗?如果它没有,我可以用另一种方式得出相同的结果吗?

1 个答案:

答案 0 :(得分:0)

这是link @Reinier Torenbeek提供的相关部分:

STACK_OF(X509_INFO) *certstack;
const char ca_filestr[] = "./cabundle.pem";

stackbio = BIO_new(BIO_s_file());
outbio   = BIO_new_fp(stdout, BIO_NOCLOSE);

/* ---------------------------------------------------------- *
 * Load the file with the list of certificates in PEM format  *
 * ---------------------------------------------------------- */
if (BIO_read_filename(stackbio, ca_filestr) <= 0) {
    BIO_printf(outbio, "Error loading cert bundle into memory\n");
    exit(-1);
}

certstack = PEM_X509_INFO_read_bio(stackbio, NULL, NULL, NULL);