所以我有一个存储在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))