我正在使用PEM_write_X509(x509*)来写入连接到SSL服务器时收到的证书。这在单线程环境中工作,但在多线程环境中失败。
PEM_write_X509_AUX()和PEM_write_X509()之间的区别是什么
是否可以仅使用write()调用来转储证书?
在多线程应用程序中是否有其他选项来写入证书文件?
发布于 2016-09-23 18:12:11
在使用下面的代码而不是PEM_write_X509()之后,我能够解决这个问题。
X509 *cert = GetPeerCertificate(hostname, port);
if(cert)
{
unsigned char *data;
unsigned int len = 0;
BIO *bio = BIO_new(BIO_s_mem());
PEM_write_bio_X509(bio, cert);
len = BIO_get_mem_data(bio, &data);
if(0 != Writeile(certificate_file, data, len))
{
ret = ERROR;
}
BIO_free(bio);
}https://stackoverflow.com/questions/39657519
复制相似问题