我们必须解密使用RSA OAEP加密的密文,并且正在尝试使用RsaCng。密文是使用Java生成的,并且Java API允许您为标签和掩码生成函数(MGF1)指定不同的哈希函数。在这种情况下,第一种情况使用SHA-256,第二种情况使用SHA-1(是的,不是一个好主意,但是我们对此没有控制权。)
现在,根据我对RsaCng的了解,我只能指定一个哈希函数(使用RSAEncryptionPadding.OaepXXX),并且该函数将在两个地方都使用。这意味着我将永远无法解密密文。有什么办法可以使用CNG解决此问题?查看低级Win API C函数(BCryptDecrypt),看起来存在相同的限制。我相信BouncyCastle可以提供这种灵活性,但是由于与HSM集成的要求,我们不能使用BC。
谢谢您的帮助,
Dinis