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

时间:2013-10-22 05:24:20

标签: android c++ string vector

SfNetworkLibrary::VerifyResult SfNetworkLibrary::VerifyX509CertChain(
    const std::vector<std::string>& cert_chain,
    const std::string& hostname,
    const std::string& auth_type) {

在上面的Android Jelly bean 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的向量,那么我该如何转换呢?

1 个答案:

答案 0 :(得分:0)

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

希望这有帮助。