X509_STORE_CTX_init 在 X509_STORE_CTX 上免费调用?

问题描述 投票:0回答:1

我在调用 X509_STORE_CTX_init 时遇到了段错误问题。 gdb 显示它正在第一个参数 X509_STORE_CTX 上调用 X509_STORE_CTX_free。此链接https://linux.die.net/man/3/x509_store_ctx_init表示这样做不是一个好主意

X509_STORE_CTX ctx;
X509_STORE_CTX_init(&ctx, store, cert, chain);

我一直在做的事情。但是,如果我使用建议的方式创建新的 X509_STORE_CTX,我怎么知道我是否应该稍后释放它或者 X509_STORE_CTX_init 是否已经释放它?

openssl x509
1个回答
0
投票

“加密/x5090.h”。是 OpenSSL 内部头文件。它不会作为 OpenSSL 公共 API 标头的一部分安装,因此您不应将其包含在代码中。如果您仅使用公共 API 调用,则无法堆栈分配

X509_STORE_CTX
。通过
X509_STORE_CTX
创建
X509_STORE_CTX_new

在通过

X509_STORE_CTX_init()
分配的
X509_STORE_CTX
上调用
X509_STORE_CTX_new
应该是完全可以的 - 在这种情况下你不应该期望出现段错误。

© www.soinside.com 2019 - 2024. All rights reserved.