所以我在 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
的初始化没有正确关闭。我错过了什么?
最佳答案
我想,这与 Use of STACK_OF(X509) 有关.
您不应该只复制 apps/verify.c 处的一半源代码.如果你看得更深,你会发现,除此之外,
286 if(!X509_STORE_CTX_init(csc,ctx,x,uchain))
关于c++ - 验证 STACK_OF(X509) 中的证书链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849369/