Проблемы с SignedXML.CheckSignature() при использовании сторонней подписи в C#
У меня есть приложение aC#, которое я использую для обработки зашифрованного и подписанного XML-файла от третьего лица. Файл, который я создаю и подписываю внутри приложения с использованием действующего сертификата, проходит проверку без проблем. У меня проблемы с проверкой файлов, полученных от третьих лиц. (который является авторитетным источником, поэтому я исключаю проблемы с их стороны)
Файл успешно расшифрован, но проверка подписи всегда возвращает false. Я попытался снять их подпись и подписать файл сам - я создал то же самое
Я загружаю файл.pem в объект X509Certificate2 и пытаюсь проверить полученный файл. В нем есть все необходимые элементы, но проверка всегда завершается неудачно без указания причины.
Есть ли что-нибудь еще, что мне нужно сделать? Любой хороший ресурс, чтобы понять, что делает CheckSignature()?
Код проверки подписи (работает с самозаверяющими файлами)
public static bool VerifySignedXml(string signedXmlPath, X509Certificate2 theirPublicKey)
{
XmlDocument doc = new XmlDocument();
doc.Load(signedXmlPath);
XmlElement signature = (XmlElement)doc.GetElementsByTagName("Signature")[0];
SignedXml sig = new SignedXml(doc);
sig.LoadXml(signature);
bool bVerified = sig.CheckSignature(theirPublicKey , false);
return bVerified;
}
Спасибо