OpenSSL - 检查哪个引擎是一个被调用的函数,以及硬件是否真正使用过?

hau*_*ron 15 openssl cryptography hsm

首先,我是OpenSSL世界的初学者.我提前为任何基本的,野蛮的错误道歉.

考虑一个流程:

  1. 使用硬件使用引擎初始化OpenSSL(我们称之为EngineHW).
  2. 调用OpenSSL函数,例如X509_sign.

如何检查所调用的函数是否在硬件上执行?

如何验证EngineHW函数被调用?如果EngineHW没有定义该功能怎么办 - OpenSSL将回退到它拥有的任何默认引擎吗?

问题与断言质量有关 - 因为我有硬件为我做加密,我考虑使用软件回归(至少对于重要的功能).

Mag*_*Mag 1

不确定这样做的目的是什么。您是在测试 OpenSSL 是否有效,还是在测试您自己的代码?看来你想对​​ OpenSSL 和 HSM 进行回归测试?

但是,如果您想测试 X509_sign 是否有效,请从测试系统中删除所有基于软件/磁盘的密钥,并检查您是否可以签署某些内容。如果您获得有效签名,则可以确定它来自您的 HSM。如果返回 null,则不是。OpenSSL 不会回退到不同的签名函数,即使回退到不同的签名函数,它也无法签名,因为它需要密钥才能签名。希望能回答您的问题。