gpt4 book ai didi

openssl - 从 PEM_read_X509 切换到 PEM_read_bio_X509(基于 FILE 的输入到基于 BIO 的输入)

转载 作者:行者123 更新时间:2023-12-02 10:06:03 35 4
gpt4 key购买 nike

我这样做:

FILE* f_cert = fopen("cert", "rb");
X509* x_cert = NULL;
PEM_read_X509(f_cert, &x_cert, NULL, NULL);
...

现在我想自己读取该“cert”文件,并使用 PEM_read_bio_X509 而不是 PEM_read_X509。所以,如果我已经有了这些变量:

const char cert_data[] = {....};
const int sert_data_size = 123;

如何初始化 BIO,将其传递给 PEM_read_bio_X509 并释放临时 Bio?

最佳答案

这里是一个示例代码:

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);

注意:提供的数据是直接从提供的缓冲区读取的:不会首先复制它,因此在释放 BIO 之前,提供的内存区域必须保持不变。

参见OpenSSL documentation on the memory BIO供引用。

关于openssl - 从 PEM_read_X509 切换到 PEM_read_bio_X509(基于 FILE 的输入到基于 BIO 的输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985828/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com