如何在 openSSL 中将 DER 编码字符串的向量转换为 x509

How to convert vector of DER encoded string to x509 in openSSL

本文关键字:字符串 向量 转换 x509 编码字符 编码 openSSL 中将 DER      更新时间:2023-10-16
SfNetworkLibrary::VerifyResult SfNetworkLibrary::VerifyX509CertChain(
    const std::vector<std::string>& cert_chain,
    const std::string& hostname,
    const std::string& auth_type) {

在上面的代码中 Android 果冻豆 4.2.2 用于服务器身份验证。我需要将此 DER 编码字符串std::vector<std::string> cert_chain转换为 X509 格式。

我想做这个转换,这样我就可以在openssl上设置这个服务器证书。 SSL_CTX_use_certificate(ctx,x)其中ctx是上下文,x是 x509 证书。

我可以使用 d2i_x509 将 DER 编码字符串转换为 x509 吗?

但是在这种情况下,我们有字符串vector<string>&cert_chain向量,那么如何转换呢?

我想你想在cert_chain verctor中的所有证书上调用d2i_x509()。如果是这种情况,对于向量中的每个元素,将字符串转换为 c 字符串 (char *) 说 cstr。使用 string::c_str() 获取 c 字符串(比如 cstr)。现在调用d2i_x509(NULL,&cstr,strlen(cstr))。

希望这有帮助。