我正在为一款ARM板创建自定义的OpenSSL引擎,以供已连接到libssl的应用程序使用。然而,我需要告诉应用程序加载这个自定义引擎并使用它。我只能找到openssl命令行。那么问题来了:如何在C/C++应用程序中加载一个OpenSSL引擎并使用它?
我正在为一款ARM板创建自定义的OpenSSL引擎,以供已连接到libssl的应用程序使用。然而,我需要告诉应用程序加载这个自定义引擎并使用它。我只能找到openssl命令行。那么问题来了:如何在C/C++应用程序中加载一个OpenSSL引擎并使用它?
使用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
}