【问题标题】:Attach an ENGINE context to a SSL_CTX将 ENGINE 上下文附加到 SSL_CTX
【发布时间】:2013-01-09 13:19:43
【问题描述】:

我想知道是否有可能将ENGINE* 实现附加到SSL_CTX* 和/或SSL* 结构。我想要实现的是有一个 SSL_CTX* 将使用 OpenSSL 中内置的默认加密操作进行设置,另一个 SSL_CTX* 将使用专用 HSM 作为加密层。

是我可以实现这一目标的一种方式吗?根据我的阅读,可以注册并设置一些默认密码操作(随机、密码、md 等),但将使用已设置的操作,而不是内置操作。

例如EVP_CipherInit_ex 的第三个参数是 ENGINE*。以这种方式初始化EVP_CIPHER_CTX* 的加密/解密将通过 ENGINE 实现处理加密/解密。

【问题讨论】:

  • 我也有类似需求,这个帖子太老了,这方面有什么进展吗?

标签: ssl openssl openssl-engine


【解决方案1】:

根据我所见所闻,你不能。如果您需要在代码中使用引擎,您有两种选择:

  1. 将您的引擎设置为默认值,OpenSSL 将使用该引擎提供的所有方法,以及其他所有方法 - 将使用 OpenSSL 内置方法。这是您在这种情况下需要使用的调用:

    ENGINE_set_default(引擎,ENGINE_METHOD_ALL)

  2. 为一些选定的方法设置引擎,例如下面的代码将只为方法 RAND 设置它:

    ENGINE_set_default(引擎,ENGINE_METHOD_RAND)

您可以在此处找到更多示例:https://www.openssl.org/docs/manmaster/crypto/engine.html 和 openssl 的 README.ENGINE。

换句话说,引擎是一个全局设置,如果要将其映射到 SSL_CTX 对象,则需要手动维护该映射。

顺便说一句,我很高兴被证明是错误的,因为我自己也需要这种功能,并希望将来能实现它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多