【发布时间】:2017-11-30 20:18:41
【问题描述】:
如何转换下面的代码以从内存中加载文件“cabundle.pem”?该代码用于证书验证(Source)
const char ca_bundlestr[] = "./cabundle.pem";
ret = X509_STORE_load_locations(store, ca_bundlestr, NULL);`
所以我目前所做的是将 cabundle.pem 放在字符串数组中,然后将证书添加到商店,但它不起作用,因为我认为我需要做的是使用 X509_STORE_CTX_trusted_stack 将它添加到商店,但我不知道如何使用 STACK_OF(X509) 我尝试搜索但我找不到任何东西。
const char ca_bundle[] = "-----BEGIN CERTIFICATE-----\n"
"MIIImDCCCD2gAwIBAgIRAMch/W0685E2zrArUB/79kUwCgYIKoZIzj0EAwIwgZIx\n"
"MIIImDCCC...............................................AwIwgZIx\n"
"CzAJBgNVB..........................................0ZXIxEDAOBgNV\n"
"-----END CERTIFICATE-----\n";
BIO *bio;
X509 *cert;
bio = BIO_new(BIO_s_mem());
BIO_puts(bio, ca_bundle);
cert = PEM_read_bio_X509(bio, NULL, NULL, NULL);
X509_STORE_add_cert(store, cert);
那么如何将我的字符串数组ca_bundle 加载到 STACK_OF(X509) 变量中?或者,如果有其他方法可以做到这一点,请告诉我。谢谢
【问题讨论】: