来自 OpenSSL 的 BN_bin2bn 是否与采用字节数组的 Crypto++ Integer 的构造函数相同?

Is BN_bin2bn from OpenSSL the same as the constructor of Crypto++ Integer that takes a byte array?

我正在尝试将 OSX 上的一段代码从 OpenSSL(已删除)移植到 Crypto++,但无法使 RSA 签名验证工作。我对 public 键的构造方式有点怀疑。现有代码将 base64 值解码为字节缓冲区,然后使用 BIN_bin2bn 创建模数和指数。我将相同的字节缓冲区提供给 CrytoPP::Integer 但我怀疑这是否是正确的方法。

Is BN_bin2bn from OpenSSL the same as the constructor of Crypto++ Integer that takes a byte array?

给予或索取,是的。

OpenSSL 的 BN_bin2bn 采用二进制字节数组和 returns 一个 BIGNUM。这相当于 Crypto++ Integer。您应该展示如何使用字节数组以确保正确使用它。

Crypto++ Integer constructor Integer (const byte *encodedInteger, size_t byteCount, Signedness sign=UNSIGNED, ByteOrder order=BIG_ENDIAN_ORDER) 与 OpenSSL 的 BN_bin2bn 几乎相同。当你拿走默认参数时,ctor 是 Integer (const byte *encodedInteger, size_t byteCount)。您应该展示如何使用字节数组以确保正确使用它。

为了完整起见,这里是他们在 RSA Signing and Verifying. And here is the Crypto++ docs from their wiki on RSA Signing and Verifying.

上的 wiki 中的 OpenSSL 文档

但是如前所述,您应该展示您的代码。对于您的算法描述,我们无能为力。