所以我在使用OAEP解密时遇到了一个问题。我有一些代码加密了一些像这样的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.XmlEncRSAOAEPUrl。
知道什么是错的吗?