Hi all,
I want to load a certs chain from memory ( ie. From a std::string variable
with the certs chain’s content loading from the mysql db ).
The content of certs chain is like a CAfile.
Because loading from memory, can not call the
“SSL_CTX_load_verify_locations” api.
So I call “SSL_CTX_add_extra_chain_cert” instead of
“SSL_CTX_load_verify_locations”,
but “SSL_CTX_add_extra_chain_cert” only load the first cert in the chain,
not all of them.
And I can’t get the number of certs in a chain. The content of chain is
uploaded from webpage.
Following is the demo code:
if( !chain.empty() ){
mpBIO = BIO_new_mem_buf((void*) chain.c_str(),
chain.size());
mpCertChain = PEM_read_bio_X509( mpBIO,NULL, NULL,
NULL );
if( !SSL_CTX_add_extra_chain_cert( mpSSLCtx,
mpCertChain ) ){
const char * errMsg =
ERR_error_string(ERR_get_error(),NULL);
throw std::logic_err(errMsg);
}
}
Is there any workround for this question?
Thanks a lot!
Best wishes!
Miles.zhaof
2012-12-21