我这样做:
FILE* f_cert = fopen("cert", "rb");
X509* x_cert = NULL;
PEM_read_X509(f_cert, &x_cert, NULL, NULL);
...
Run Code Online (Sandbox Code Playgroud)
现在我想自己读取"cert"文件,并使用PEM_read_bio_X509而不是PEM_read_X509.所以,如果我已经有这些变量:
const char cert_data[] = {....};
const int sert_data_size = 123;
Run Code Online (Sandbox Code Playgroud)
我如何初始化BIO,将其传递给PEM_read_bio_X509并释放临时生物?
这是一个示例代码:
const char cert_data[] = {....};
const int cert_data_size = sizeof(cert_data);
BIO *bio = NULL;
X509* x_cert = NULL;
// Create a read-only BIO backed by the supplied memory buffer
bio = BIO_new_mem_buf((void*)cert_data, cert_data_size);
PEM_read_bio_X509(bio, &x_cert, NULL, NULL);
...
// Cleanup
BIO_free(bio);
Run Code Online (Sandbox Code Playgroud)
注意:提供的数据直接从提供的缓冲区中读取:它不会先被复制,因此在释放BIO之前,必须保持所提供的内存区域不变.
请参阅内存BIO上的OpenSSL文档以供参考.
| 归档时间: |
|
| 查看次数: |
5876 次 |
| 最近记录: |