在 C/C++ 中加载 OpenSSL 自定义引擎

Load OpenSSL custom engine in C/C++

本文关键字:OpenSSL 自定义 引擎 加载 C++      更新时间:2023-10-16

我正在为ARM板创建一个自定义的OpenSSL引擎,用于已经链接到libssl的应用程序。但是,我需要告诉应用程序加载此自定义引擎并使用它。我只能找到openssl的命令行。所以问题是:如何加载OpenSSL引擎并在C/C++应用程序中使用它?

使用ENGINE_by_id(...).您可能还需要设置环境变量OPENSSL_ENGINES以指定自定义引擎所在目录的路径。

const char *engine_id = "your_custom_engine_id";
// ...
engine = ENGINE_by_id(engine_id);
if (engine == NULL) {
// handle error
}
if (ENGINE_init(engine) == 0)  {
// handle error
}
EVP_PKEY *evp_key = ENGINE_load_public_key(engine, key_uri, NULL, NULL);
if (evp_key == NULL) {
// handle error
}