所以我在使用 OAEP 进行 EncryptedXml 解密时遇到了一个问题。我有部分代码可以像这样加密一些 xml:
...
byte[] encryptedElement = eXml.EncryptData(elementToEncrypt, sessionKey, true);
EncryptedData edElement = new EncryptedData();
edElement.Type = EncryptedXml.XmlEncElementUrl;
edElement.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSAOAEPUrl);
...
当我尝试像这样解密它时:
EncryptedXml exml = new EncryptedXml(document);
var provider = (RSA)_certificate.PrivateKey;
exml.AddKeyNameMapping("rsaKey", provider);
exml.DecryptDocument();
EncryptedXml 抛出异常:
你调用的对象是空的。
在堆栈跟踪中是这种方法:在 System.Security.Cryptography.Xml.EncryptedXml.GetDecryptionKey(EncryptedData encryptedData, String symmetricAlgorithmUri)
当我使用 EncryptedXml.XmlEncAES256Url 时,一切都很好,并且可以正常工作。但我需要使用 EncryptedXml.XmlEncRSAAOAEPUrl。
知道有什么问题吗?