Openssl C API 以 32 位对消息进行签名,并在 64 位 openssl 中验证签名



我已经编译openssl 1.0.2 with FIPS 2.0.16对象模块。 我将使用它使用私钥对某个文件进行签名,并使用公钥验证签名。我将使用EVP_*算法。

使用私钥对文件进行签名将在Web界面中进行,然后将文件和签名放入某个设备中,通过使用公钥验证签名来验证文件的完整性。

  1. 现在我的问题是 Web 界面将具有64 BIT libcrypto.a,并且验证签名的设备可能具有32/64 BIT libcrypto.a那么为两个64/32 bit生成的签名会相同吗?
  2. 我可以使用64 BIT libcrypto.a签名并使用32 BIT libcrypto.a验证签名吗?

无论您使用 32 位还是 64 位 libcrypto,都没有区别。您可以使用一个签名创建签名并使用另一个签名进行验证,反之亦然。

现在我的问题是 Web 界面将具有 64 位 libcrypto.a,

而验证签名的设备可能具有 32/64 位 libcrypto.a,那么为 64/32 位生成的签名会相同吗?

这取决于你的意思是"相同"。正如我上面所说,无论您使用 32 位还是 64 位 libcrypto,都没有区别。使用的算法是相同的。然而,并非所有签名算法都是确定性的,即某些算法(如DSA和ECDSA(在签名中包含随机成分。因此,如果您使用相同的密钥对相同的数据进行两次签名,您可能会得到不同的结果。但是,两个签名都是有效的,并且两个签名都会验证。

相关内容

最新更新