1

所以我在使用 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。

知道有什么问题吗?

4

0 回答 0