使用 OpenSSL 的 EVP API 的配置文件

背景

通过命令行使用 OpenSSL 时,我可以通过设置 my 来更改默认引擎openssl.cnf(请参阅下面的示例代码)。我现在想在使用 EVP API 时更改默认引擎,最好通过更改配置文件来更改。

更大的背景是我正在使用EVP 的 Go 包装器,它既不支持全局设置引擎,也不支持设置用于签名/验证的引擎(我唯一关心的操作)。我正在研究涉及代码更改的选项(例如使用 cgo全局设置引擎或分叉库),但如果我可以避免它们,那就太理想了。

问题

EVP 似乎没有读取配置文件,我无法在网上找到/理解关于这是否可能的文档。配置文件是自动加载的(我只是做错了?)还是我需要执行诸如 call OPENSSL_INIT_LOAD_CONFIG之类的操作?

示例代码

openssl_conf = openssl_def


[openssl_def]

engines = engine_section


[engine_section]

pkcs11 = pkcs11_section


[pkcs11_section]

engine_id = pkcs11

dynamic_path = /usr/local/Cellar/engine_pkcs11/0.1.8/lib/engines/engine_pkcs11.so

MODULE_PATH = /usr/local/Cellar/opensc/0.19.0/lib/pkcs11/opensc-pkcs11.so

PIN = "123456"

init = 0

$ openssl engine

(rdrand) Intel RDRAND engine

(dynamic) Dynamic engine loading support

(pkcs11) pkcs11 engine


jeck猫
浏览 110回答 1
1回答

回首忆惘然

假设您使用的是 OpenSSL 1.1.0 或更高版本,然后尝试在程序开头插入以下内容(在执行任何其他 OpenSSL 调用之前):    OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go