Поэтому у меня есть цепочка сертификатов, хранящаяся в 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
не был должным образом Что мне не хватает?
Я думаю, это связано с Использование STACK_OF (X509).
Вы не должны копировать только половину исходного кода на Приложения / verify.c. Если вы посмотрите глубже, вы найдете, среди других строк,
286 if(!X509_STORE_CTX_init(csc,ctx,x,uchain))
Других решений пока нет …