0

したがって、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適切に停止されなかったことを意味します。私は何が欠けていますか?

4

1 に答える 1

2

これは、STACK_OF(X509)の使用に関連していると思います。

apps/verify.cにあるソースコードの半分だけをコピーしないでください。深く見ると、他の行の中でも特に、

 286         if(!X509_STORE_CTX_init(csc,ctx,x,uchain))
于 2013-02-13T08:42:13.730 に答える