我正在使用PEM_write_X509(x509*)
来编写连接到SSL服务器时收到的证书。这适用于单线程环境,但在多线程环境中失败。
PEM_write_X509_AUX()
和PEM_write_X509()
之间的区别是什么?
只使用write()
电话转储证书是否可以?
在多线程应用程序中是否还有其他选项来编写证书文件?
答案 0 :(得分:0)
使用以下代码而不是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);
}