我想知道是否有可能附加一个ENGINE*
实施到SSL_CTX*
and/or SSL*
结构。我想要实现的是拥有一个SSL_CTX*
将使用 OpenSSL 中内置的默认加密操作和另一个设置SSL_CTX*
将使用专用 HSM 作为加密层。
我可以通过这种方式实现这一目标吗?根据我读到的内容,可以注册一些加密操作并将其设置为默认值(随机、密码、md 等),但将使用已设置的操作,而不是内置操作。
e.g. EVP_CipherInit_ex
它的第三个参数是ENGINE*
。加密/解密EVP_CIPHER_CTX*
以这种方式初始化将通过 ENGINE 实现处理加密/解密。
从我所看到和读到的来看,你不能。如果您需要在代码中使用引擎,您有两种选择:
-
将您的引擎设置为默认引擎,OpenSSL 将使用该引擎提供的所有这些方法,对于所有其他方法 - 将使用 OpenSSL 内置方法。这是在这种情况下您需要使用的调用:
ENGINE_set_default(引擎,ENGINE_METHOD_ALL)
-
将您的引擎设置为几种选定的方法,例如下面的代码将仅针对 RAND 方法进行设置:
ENGINE_set_default(引擎,ENGINE_METHOD_RAND)
您可以在这里找到更多示例:https://www.openssl.org/docs/manmaster/crypto/engine.html https://www.openssl.org/docs/manmaster/crypto/engine.html以及 openssl 的 README.ENGINE 中。
换句话说,引擎是一个全局设置,如果您想将其映射到 SSL_CTX 对象,则需要手动维护该映射。
顺便说一句,我很高兴被证明是错误的,因为我自己需要这种功能,并希望它将来能够实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)