Возникла проблема интеграции с ЭЛН ФСС. Использую КриптоПро для подписи запроса. Скопировал контейнер Рутокен в реест. Оттуда установил сертификат личный. Пример взял с SDK подписания, подпись проходит, проверка успешна, отправляю зашифрованный запрос на сервис:
public void SendFss()
{
string oRequest = "";
XmlDocument doc = new XmlDocument();
doc.Load("c_encrypted.xml");
oRequest = doc.OuterXml;
//Builds the connection to the WebService.
HttpWebRequest req =(HttpWebRequest)WebRequest.Create("https://docs.fss.ru/WSInsurerCrypto/FileOperationsLnPort?WSDL");
req.Headers.Add("SOAPAction", "\"http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl/getPrivateLNData\"");
req.ContentType = "text/xml; charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";
//Passes the SoapRequest String to the WebService
using (Stream stm = req.GetRequestStream())
{
using (StreamWriter stmw = new StreamWriter(stm))
{
stmw.Write(oRequest);
}
}
//Gets the response
WebResponse response = req.GetResponse();
//Writes the Response
Stream responseStream = response.GetResponseStream();
StreamReader sr = new StreamReader(responseStream);
string str = sr.ReadToEnd();
File.WriteAllText("resp_txt.xml", str);
}
Где c_encrypted
зашифрованный запрос. Ответ приходит от от сервиса и пытаюсь его расшифровать:
public void Decrypt(string xmlFile="resp_txt.xml")
{
XmlDocument xd = new XmlDocument();
xd.PreserveWhitespace = true;
//xd.PreserveWhitespace = false;
xd.Load(xmlFile);
EncryptedXml exml = new EncryptedXml(xd);
exml.DecryptDocument()
}
И на DecryptDocument
возникает ошибка:
Не удается извлечь ключ дешифрования.
Почему не может найти контейнер по сертификату?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Можно ли открывать файлы напрямую через ListBox? Нужно например: если нажать в ListBox вторую строку и тогда, чтоб открылся в программе файл "Scene2"...
Операция MEX, не укладываюсь в 3 секунды - C#