验证STACK_OF中的证书链(X509)

时间:2013-02-13 08:32:37

标签: c++ openssl x509certificate x509

所以我有一个存储在STACK_OF(X509)中的证书链。 这就是我用它做的事情:

STACK_OF(X509) *chain = SSL_get_peer_cert_chain(ssl);

X509_STORE_CTX* newCert = X509_STORE_CTX_new();
if(newCert){
    X509_STORE_CTX_set_chain(newCert, chain);
    std::cout << X509_verify_cert(newCert) << std::endl;
}
std::cout << "ERROR : " << X509_STORE_CTX_get_error(newCert) << std::endl;

问题是X509_verify_cert(newCert)返回-1表示X509_STORE_CTX的初始化未正确关闭。我错过了什么?

1 个答案:

答案 0 :(得分:2)

我猜,这与Use of STACK_OF(X509)有关。

您不应只复制apps/verify.c的一半源代码。如果你看得更深,你会发现,除了其他方面,

 286         if(!X509_STORE_CTX_init(csc,ctx,x,uchain))