Не удалось найти входную сборку gostcryptography dll или одну из ее зависимостей
Неправильные настройки АРМ ЛПУ в части подписания;
Неправильные настройки криптопровайдера;
Истечение срока действия сертификата, закрытого ключа или лицензии КриптоПро CSP.
1. Выполните настройку АРМ ЛПУ
2. Проверьте настройки криптопровайдера
При использовании криптопровайдера Vipnet CSP рабочей версией является 4.4.
При использовании криптопровайдера КриптоПро CSP рабочей версией является 4.0 и выше. Рекомендуется сборка 4.0.9963.
Через «Панель управления» в КриптоПро CSP зайдите на вкладку «Сервис», нажмите кнопку «Удалить запомненные пароли…». В окне «Удаление запомненных паролей» выбрать «Удалить все запомненные пароли закрытых ключей: Пользователя».
Если используются сертификаты подписи по ГОСТ 2012 проверьте настройки на вкладке "Алгоритмы". В выпадающем списке "Выберите тип CSP" выберите GOST R 34.10-2012. Должны быть установлены следующие параметры:
Ниже приведен образец настроек в КриптоПро CSP 5.0
Если вы не можете изменить параметры на вкладке "Алгоритмы" (даже запустив КриптоПро CSP от лица администратора), необходимо сделать следующее:
В реестре Windows открыть ключ HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Cryptography\CurrentVersion\Parameters и изменть значение EnableOIDModify на 1. После чего необходимо перезагрузиться.
После изменения настроек криптопровайдера необходимо перезапустить АРМ ЛПУ.
3. Проверьте сертификаты и лицензии
9. Ошибка при попытке зайти в настройки подписи в ПО АРМ ЛПУ.
При попытке зайти в настройки подписи в ПО АРМ ЛПУ выходит ошибка "Internal error. Reason: java.lang.ExceptionInInitializerError" или
"Internal Error. Reason: java.lang.NoClassDefFoundError: Could not initialize class ru.ibs.fss.common.security.signature.COMCryptoAPIClient"
1. Необходимо убедиться, что разрядность ОС совпадает с разрядностью установщика приложения.
3. Проверить, что в папке, куда установлено приложение, имеется файл GostCryptography.dll (по умолчанию данный файл устанавливается в C:\FssTools). Если данного файла нет, попробуйте переустановить приложение.
4. Если все верно, в командной строке выполнить:
Cd C:\FssTools -- переходим в папку, в которой находится файл GostCryptography.dll
5. Перезапустить приложение.
spiridonovav commented Jan 29, 2021
byte[] encryptedKey = GostEncryptedXml.EncryptKey(sessionKey, (GostAsymmetricAlgorithm)certificateEncryption.GetPublicKeyAlgorithm());
Не понятно, почему вы шифруете ключ на сертификате страхователя, а не на сертификате ФСС?
Вообще не понял, почему у метода EncryptXmlDocument так много параметров-сертифкатов?
Нужен ведь сертификат страхователя и сертификат ФСС. Или я ошибаюсь?
spiridonovav commented Jan 24, 2021
Резервное копирование базы данных
Для резервного копирования БД необходимо в c:\PostgreSQL создать bat-файл со следующим содержимым:
необходимо выставить свой путь для сохранения бэкапа БД и логов (переменные %DUMPFILE% и %LOGFILE% не трогать)
После этого необходимо добавить данный bat-файл в планировщик заданий для выполнения задачи резервного копирования по расписанию.
spiridonovav commented Jan 29, 2021
Такое исключение, насколько я помню, возникает в случае, если в настройках GostCryptography Криптопровайдер не соответствует, указанному в сертификате.
Смотрю ваш код. Может общими усилиями разберемся.
spiridonovav commented Jan 24, 2021
Большое спасибо за ответ.
Возможно я неправильно помещаю свой сертификат в Header?
В спецификации об этом написано (в двух местах) так:
- Взаимодействие с сервисом с шифрованием https://docs-test.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL работает именно с сертификатом https://docs-test.fss.ru/FSS_TEST_CERT_2021.cer
- Тестовый контур принимает тестовые сертификаты Vipnet http://testcert.infotecs.ru/ . Был какой-то период, что они удалили на тестовом контуре сертификат УЦ из доверенных и отбраковывали тестовые сертификаты по "ошибка построения цепочки. ".
Да, АРМ ЛПУ работает с тестовыми сертификатами. АРМ ФСС (подготовка расчетов для ФСС) получает от сервиса ошибку, в случае использования тестового сертификата: "Ошибка: ORA-20001: Некорректная подпись головной организации: Ошибка при проверке сертификата. VALID_SIGNATURE ЭП действительна; При проверке сертификата ЭП произошла ошибка. Ошибка построения цепочки сертификатов. Не найден сертификат Удостоверяющего Центра, указанный в сертификате пользователя". Либо АРМ ФСС игнорирует настройку "направление обмена" и работает только с рабочим контуром или тестовый контур не принимает тестовые сертификаты.
Я считаю что если шифрование работало в версии 1.1, то вам нужно написать в чат разработчиков ФСС в телеграмм (возможно там кто-то сталкивался с таким) и ваша проблема не имеет отношения к библиотеке GostCryptography
4. ORA-20001: Доступ к ЭЛН с №_________, СНИЛС_________, статусом _________ - ограничен
Вы пытаетесь получить данные ЭЛН, который находится в статусе, ограничивающем Ваш доступ. Например, страхователь пытается получить данные ЭЛН, который еще не закрыт медицинской организацией. Согласно процессной модели, страхователь может получить данные ЭЛН для редактированиня только на статусе 030 - Закрыт. Другой пример - бюро МСЭ не может получить данные ЭЛН, который не направлен в бюро МСЭ (статус 040 - Направление на МСЭ)
1. Удостоверьтесь, что номер ЭЛН, данные которого вы хотите получить, введен верно.
2. Дождитесь перехода ЭЛН на статус, который позволит Вам получить данные ЭЛН.
Проверьте правильность и актуальность ключа уполномоченного лица ФСС.
В настройках подписания и шифрования в используемом пользователем ПО, в поле «Сертификат уполномоченного лица ФСС» указан неверный сертификат;
Используется криптопровайдер Vipnet CSP определенной сборки.
Укажите верный сертификат уполномоченного лица ФСС:
- Определите направление отправки запросов - тестовое или продуктивное;
- Скачайте сертификат уполномоченного лица ФСС в разделе ЭЛН на сайте Фонда;
Сертификат для тестовой отправки опубликован на сайте https://lk-test.fss.ru/cert.html
Сертификат для продуктива опубликован на сайте https://lk.fss.ru/cert.html ; - Закройте используемое ПО. Удалите из хранилища "Личное" установленные сертификаты ФСС с помощью системной утилиты certmgr.msc (кнопка Пуск - Выполнить (Найти программы и файлы)). Установите скачанный сертификат на компьютер в хранилище "Личное" для текущего пользователя;
- Укажите данный сертификат в соответствующих настройках используемого ПО.
При использовании криптопровайдера Vipnet CSP - рабочей версией является 4.4.
AlexMAS commented Jun 6, 2018
Я добавил быстро-фикс и опубликовал версию 1.1.1-alpha1. Проверьте, пожалуйста, и дайте обратную связь.
Обновление АРМ ЭРС
Перед обновлением необходимо убедиться, что никто из пользователей не работает в АРМ ЛПУ(ЭРС) и сделать резервную копию базы (По инструкции выше или через PGadmin)
Процесс обновления отличается от исходных параметров СУБД и ОС:
1. База расположена на сервере с ОС Windows, параметры подключения стандартные (Имя базы: fss, логин: fss, пароль: fss)
Чтобы обновить программу необходимо скачать ее последнюю версию по адресу: Ссылка
Убедиться что на сервере с базой Postgres установлен вместе с программой АРМ ЭРС
Запускаем скачанный дистрибутив и ОБЯЗАТЕЛЬНО снимаем галочку «Установить» на шаге установки сервера БД
После установки в папке с программой проверяем файл UpdateDatabase.log (лог обновления).
При удачном обновлении данный файл должен содержать примерно такие строки:
При НЕ удачном обновлении в файле будут только строки (их будет много, а не конкретно эти 4:
2. База расположена на сервере с ОС отличной от Windows или параметры подключения НЕ стандартные
Открываем дистрибутив при помощи архиватора (7-zip) и достаем из него папку ELN\updates
Запускаем pgAdmin, открываем базу, переходим к схеме «ers»
Далее нажать на:
И последовательно по порядку выполняем все запросы из папки updates
Кликните правой кнопкой по ярлыку запуска АРМ ЛПУ, в контекстном меню выберите Свойства.
На вкладке Ярлык, в поле Объект через пробел допишите -ConsoleLog.
Т.е. строка должна быть
Запустите приложение. Одновременно запустится лог. Правой кнопкой кликните на рамке окна - Свойства - Расположение - Размер окна ширина 150, Размер буфера экрана высота 1000.
Пришлите в чат ЭРС пожалуйста вывод, что пишет консоль во время ошибки.
Для копирования лога в файл нужно кликнуть правой кнопкой по рамке окна, в контекстном меню выбрать Изменить - Пометить. После чего выделить ВЕСЬ вывод консоли и на клавиатуре нажать кнопку «Enter». Вывод скопируется в буфер обмена. После чего его нужно вставить в текстовый файл.
Скачиваем ProcessLasso по ссылке
После установки, запускаем ProcessLasso
Переходим в Настройки - Память - Параметры SmartTrim
Далее в открывшемся окне ставим галочку на Разрешить SmartTrim и Усечь рабочие наборы
Выставляем максимальный объем памяти, при превышении которого процессы будут усекаться
Также можно вручную усечь память любому процессу:
ПКМ по процессу - Больше - Усечь память
Обратная связь поможет мне улучшить качество материала Пожалуйста оцените статью в опросе ниже (Введите ваше имя, выделите пункт и нажмите Vote):
Учетная запись, под которой вы запускаете regasm, не имеет прав на запись в C: \ Program Files \ FooProg \, и поэтому regasm не может записать .tlb. Запустите regasm под учетной записью с правами администратора.
Эта ошибка, скорее всего, возникает из-за того, что вы не можете удалить соответствующий файл .tlb. Два других предложения:
- Остановите IIS и попробуйте зарегистрироваться снова:
- Остановите IIS, удалите файлы .tlb из любого места, где находится ваш файл DLL, а затем попытайтесь зарегистрироваться снова.
- Закройте все инструменты IE / IIS / DEV (они могут держать некоторые файлы в состоянии только для чтения), а затем попытайтесь зарегистрировать вашу DLL.
Учетная запись, которую вы используете, требует прав администратора.
В моем случае файлы .dll и .tlb были ReadOnly, удаление проверки ReadOnly работало для меня, также я закрыл процесс, который использовал его как (Visual Studio IDE).
Эта ошибка, скорее всего, возникает из-за того, что вы не можете удалить соответствующий файл .tlb. Два других предложения: 1. Остановите IIS и попытайтесь зарегистрироваться снова: 2. Остановите IIS, удалите файлы .tlb из любого места, где находится ваш файл DLL, а затем попытайтесь зарегистрироваться снова.
Вы также можете получить эту проблему, если не укажете полный путь в аргументе /tlb .
Он попытается написать на C:\windows\system32 . Даже если вы работаете как администратор, по умолчанию у вас нет прав на запись в этот каталог.
Решение состоит в том, чтобы просто указать полный путь (к каталогу, на который у вас есть права) в аргументе /tlb .
Скорее всего, вы получаете ошибку из-за процесса, имеющего перехватчики в файле .dll или .tlb, который вы пытаетесь зарегистрировать или скопировать. Перезагрузите компьютер и попробуйте еще раз или удалите файл .tlb и перестройте его, чтобы убедиться, что у вас есть к нему доступ.
У меня был случайный процесс dllhost.exe. Убив его, я смог удалить файл .tlb и перерегистрироваться. Другие подходы (остановка IIS, остановка пулов приложений, закрытие всех IDE) не дали никакого эффекта.
Для меня файл использовался другим приложением
Сначала мне пришлось удалить все пробелы в пути к моей dll, прежде чем regasm нашел файл dll.
Но когда я попытался заключить цели в кавычки, это все равно сработало.
Win 7 (если вы уже являетесь администратором) - вы можете включить разрешения для файла, щелкнув правой кнопкой мыши и открыв свойства, вкладку безопасности, щелкнув редактировать, проверьте разрешение на разрешения, например Полный контроль.
alexnur commented Jan 29, 2021 •
Запрашивал в поддержке тестовый готовый зашифрованный запрос, чтобы исключить остальные проблемы. Прислали зашифрованный запрос. Если я его отправляю на тестовый контур с шифрованием - все хорошо.
10. Ошибка вызова сервиса передачи/получения данных. Invalid element in ru.ibs.fss.eln.ws.FileOperationsLn_wsdl.ROW - SERV1_DT1.
Ошибка: "Ошибка вызова сервиса передачи/получения данных. Invalid element in ru.ibs.fss.eln.ws.FileOperationsLn_wsdl.ROW - SERV1_DT1"
Поле "SERV1_DT1" было исключено в новой спецификации 1.1 (14 версия и выше АРМ ЛПУ), изменена строка соединения.
Поменять строку соединения в настройках.
В меню Администрирование – Настройки сервисов ФСС – Строка соединения, укажите следующий адрес сервиса:
spiridonovav commented Feb 4, 2021
В АРМ ФСС используется GostCryptography вообще версии 2.0.2. Ее я тоже пробовал подключать к проекту. Изменений никаких.
Удивительно другое - согласно ответу ФСС требуется более новая версия, мол со старой работать не будет. А сами используют 2.0.2.
В общем, вопрос открыт.
В АРМ ФСС использует фактически свой вариант GostCryptography. У них в ней свои классы, интерфейсы. Скорее всего у них не заморачиваются с изменением ее версии. В любом случае, у них своя библиотека и сравнивать ее версию с версией открытой библиотеки бесполезно.
spiridonovav commented Jan 29, 2021
Кстати, когда пробую дешифровать зашифрованный ответ ФСС (после отправки им зашифрованного запроса, который они прислали мне по почте), то получаю исключение "Плохие данные"
Доступ в PGAdmin
Для доступа в админку СУБД нужно перейти в: C:\postgresql\bin
Запустить файл: pgAdmin3.exe
Правой кнопкой мыши на БД - Подключиться
spiridonovav commented Jan 24, 2021 •
В спецификации написано:
Может нужно добавлять два сертификата? Тогда непонятно, что за сертификат "пользователя"? Сертификат "отправителя" - это, наверное, сертификат страхователя.
spiridonovav commented Feb 4, 2021
AlexMAS commented Feb 4, 2021
Да, скорей всего, у них свой fork, что усложняет ситуацию. Возможно, у них на это были свои причины.
AlexMAS commented May 29, 2018
Я правильно понял, что с CryptoPro CSP такой проблемы нет?
3. ORA-20013: Не удалось обновить данные. Обновляемая запись потеряла актуальность
Вы пытаетесь изменить ЭЛН, который ранее уже был кем-то изменен.
1. Запросите актуальное состояние ЭЛН из системы, тем самым Вы исключите повторную отправку тех же данных;
2. Выполните необходимую дальнейшую операцию с ЭЛН в соответствии с порядком 624н:
- продление (добавить новый период нетрудоспособности);
- закрытие (добавить информацию о закрытии);
- направление на МСЭ (добавить информацию о направлении на МСЭ).
busyscout commented Jun 4, 2018
Для установки алгоритма экспорта ключа (например, CALG_PRO_EXPORT) КриптоПро и Инфотекс используют разные константы для функции CryptSetKeyParam . КриптоПро использует KP_ALGID = 7 , а Инфотекс - KP_EXPORTID = 108 .
До определенной версии Инфотекс также поддерживал константу КриптоПро, а затем перестал. В данной библиотеке жестко зашита константа KP_ALGID = 7 , отсюда и все проблемы.
busyscout commented May 29, 2018
Да. С CryptoPro такой проблемы нет. Таким образом, проблема, вероятнее всего, именно в криптопровайдере VipNet последних версий.
spiridonovav commented Jan 24, 2021
Все таки правильный вариант: bsToken.InnerText = Convert.ToBase64String(insCert.RawData);
Так получается идентичная строка элемента , что и при использовании: KeyInfoX509Data(insCert)
spiridonovav commented Jan 23, 2021 •
spiridonovav commented Feb 4, 2021
7. Ошибка при установке АРМ ЛПУ: Unable to build entity manager factory.
Возникла ошибка при попытке загрузки данных из базы данных. Сообщите администратору следующую информацию:
Unable to build entity manager factory.
- Приложение было установлено некорректно (некорректно установлена БД);
- База данных приложения установлена, но не доступна.
1. Запустите установку с правами администратора;
Если установка приложения выполнена в соответствии с инструкцией, но ошибка повторяется, необходимо проверить:
- На компьютере отключена служба postgresql-9.5. Правой кнопкой на значке "Мой компьютер" - Управление - Службы и приложения - Службы, postgresql-9.5 должна быть запущена, запуск - автоматически. Для настройки запуска и работы службы Windows обратитесь к вашему системному администратору;
- В настройках подключения к базе данных указан неправильный пароль для пользователя fss. Проверьте, что в БД этот пароль не менялся, пароль по умолчанию - fss;
- Проверьте каталог установки БД PostgreSQL, по умолчанию - C:\postgresql\;
- Подключение к БД PostgreSQL осуществляется по умолчанию по порту 5432. Этот порт должен быть открыт и доступен. Для проверки обратитесь к вашему системному администратору;
- Приложение на клиентской машине не может связаться с сервером т.к. установлено какое либо сетевое ограничение. Проверьте, настройки антивирусов, файерволов, прочего сетевого ПО, для клиентской машины должны быть прописаны разрешения подключения к серверу по порту 5432.
alexnur commented Jan 29, 2021
/// Шифрование документа по спецификации 2.0.
///
/// Подписанный ЭЦП XML-документ.
/// var sharedKey = new Gost_28147_89_SymmetricAlgorithm(providerType);
/// Публичный сертификат ФСС.
/// Публичный сертификат страхователя.
protected override XmlDocument EncryptXmlDocument(XmlDocument xmlDocument, Gost_28147_89_SymmetricAlgorithmBase sharedKey,
X509Certificate2 certificateEncryption,
X509Certificate2 certificateOpen)
// Сюда будет записан зашифрованный XML-документ "xmlDocument".
XmlDocument result = new XmlDocument();
// Согласно спецификации 2.0 необходимо добавить X509Certificate (публичный сертификат пользователя) в header после подписания документа,
// но перед шифрованием.
// Несмотря на то, что этот же сертификат добавлен в header в секцию BinarySecurityToken!
InsertX509UserPublicCertificateToXmlHeader(xmlDocument, certificateOpen);
// Ищем заданный элемент для заширования. Envelope
XmlElement elementToEncrypt = GetElementToEncrypt(xmlDocument, ref result);
// Создаем объект EncryptedData и заполняем его необходимой информацией.
EncryptedData edElement = new EncryptedData();
//edElement.Type = EncryptedXml.XmlEncElementUrl;
edElement.Type = EncryptedXml.XmlEncElementContentUrl;
// Заполняем алгоритм зашифрования данных. Он будет использован при расшифровании.
edElement.EncryptionMethod = new EncryptionMethod(Gost_28147_89_SymmetricAlgorithm.AlgorithmNameValue);
// Создаем новую ссылку на ключ.
edElement.KeyInfo = new KeyInfo();
// Создаем случайный симметричный ключ.
// В целях безопасности удаляем ключ из памяти после использования.
using (Gost_28147_89_SymmetricAlgorithm sessionKey = new Gost_28147_89_SymmetricAlgorithm(sharedKey.ProviderType))
// Gost_R3410_2001_Constants.SignatureAlgorithm
//sessionKey.
//При генерации сессионного ключа 28147 всегда используется 2001 провайдер(TypeId = 75).
//Соответственно параметры CIPHER_OID ключа всегда берутся для указанного провайдера.
//И если при шифровании ключа используется новый сертификат ФСС(уполномоченного лица) с
//2012 ключом получается нехорошо:
// -(.
//В обернутом ключе параметры алгоритма прописываются
//1.2.643.2.2.31.1
//когда как ФСС ожидает
//1.2.643.7.1.2.5.1.1
// Создаем объект класса EncryptedXml
EncryptedXml eXml = new EncryptedXml();
// Зашифроваем узел на симметричном ключе.
byte[] encryptedElement = eXml.EncryptData(elementToEncrypt, sessionKey, false);
// Зашифровываем сессионный ключ и добавляем эти зашифрованные данные к узлу EncryptedKey.
EncryptedKey ek = new EncryptedKey();
byte[] encryptedKey = GostEncryptedXml.EncryptKey(sessionKey, (GostAsymmetricAlgorithm)certificateEncryption.GetPublicKeyAlgorithm());
ek.CipherData = new CipherData(encryptedKey);
//ek.EncryptionMethod = new EncryptionMethod(GostEncryptedXml.XmlEncGostNamespaceUrl + "transport-gost2001");
ek.EncryptionMethod = new EncryptionMethod(GostCryptography.Gost_R3410.Gost_R3410_2001_AsymmetricAlgorithm.KeyExchangeAlgorithmValue);
KeyInfoX509Data data = new KeyInfoX509Data(certificateOpen);
ek.KeyInfo.AddClause(data);
// Добавляем ссылку на зашифрованный ключ к зашифрованным данным.
edElement.KeyInfo.AddClause(new KeyInfoEncryptedKey(ek));
// Добавляем зашифрованные данные к объекту EncryptedData.
edElement.CipherData.CipherValue = encryptedElement;
alexnur commented Jan 29, 2021 •
byte[] encryptedKey = GostEncryptedXml.EncryptKey(sessionKey, (GostAsymmetricAlgorithm)certificateEncryption.GetPublicKeyAlgorithm());
Не понятно, почему вы шифруете ключ на сертификате страхователя, а не на сертификате ФСС?
certificateEncryption - Это сертификат ФСС. Форматирование кода тут сломалось вместе с директивами region. Но порядок сохранился для сигнатуры метода:
protected override XmlDocument EncryptXmlDocument(XmlDocument xmlDocument, Gost_28147_89_SymmetricAlgorithmBase sharedKey,
X509Certificate2 certificateEncryption,
X509Certificate2 certificateOpen)
/// Публичный сертификат ФСС.
/// Публичный сертификат страхователя.
Вообще не понял, почему у метода EncryptXmlDocument так много параметров-сертифкатов?
Нужен ведь сертификат страхователя и сертификат ФСС. Или я ошибаюсь?
Я брал готовый пример, переделывал. С какой целью переделывал - уже не помню. Параметров на самом деле не много
- сам xml документ, подлежащий шифрованию;
- sharedKey - отправляем в зависимости от провайдера (КриптоПро/VipNet), до вызова метода;
- сертификат ФСС;
- сертификат страхователя.
Сертификатом ФСС шифруем (расшифровать сможет только владелец закрытого ключа, т.е. только ФСС).
Сертификат страхователя необходимо приложить в 2 местах: keyInfo и в X509Certificate в header'е. Наверное он им нужен с целью проверки цепочки сертификатов при проверке ЭЦП страхователя и шифрования ответа. Почему раньше обходились при шифровании запрса только указанием в keyInfo, а теперь до шифрования потребовалось еще и в X509Certficate указать - без понятия. Можно ведь для 2 целей как и прежде публичный сертификат страхователя из keyInfo брать.
spiridonovav commented Feb 4, 2021
Также, если вы для работы своего ПО используете библиотеку шифрования GostCryptography, то она была переписана, прежняя версия не может корректно работать с сервисом 2.0."
Очень интересно! А что они такого могли сделать, что:
- Шифрование стало "несовместимым" с сервисом 1.1
- Спецификация на сервис 2.0 (в разделе шифрования) практически не отличается от спецификации 1.1.
Уважаемый @AlexMAS, вы не могли бы прокомментировать эти новые данные?
8. Ошибка при попытке загрузки данных из базы данных.
Возникла ошибка при попытке загрузки данных из базы данных.
Сообщите следующую информацию: org.hibernate.exception.SQLGrammarException: could not extract ResultSet.
Приложение АРМ ЛПУ не может получить данные из базы данных PostgreSQL. Эта ошибка возникает чаще всего после установки обновления, когда приложение обновлено, а база данных PostgreSQL по какой либо причине не обновлена.
- Если приложение установлено на компьютере пользователя, а база данных PostgreSQL - на сервере. Необходимо запустить обновление приложение не только на клиенте, но и на серверной машине;
- Если и приложение, и база данных PostgreSQL установлены на одной машине. Проверьте каталог установки приложения. По умолчанию, приложение АРМ ЛПУ ставится в каталог C:\FssTools, а база данных PostgreSQL в каталог C:\postgresql. Если при первичной установке была выбрана другая директория для установки приложения - то при обновлении вы должны указать именно эту директорию.
AlexMAS commented Jan 24, 2021
Здравствуйте. Насколько я помню, ранее была проблема с использованием устаревшего ID. Возможно они изменили что-то в этой части.
Решение проблемы:
- Необходимо удалить каталог (папку), которая находится по следующему пути C:\Users\ВАШ ПОЛЬЗОВАТЕЛЬ\AppData\Roaming\Microsoft\Crypto\RSA (имеется ввиду саму папку RSA). После удаления — перезагрузить компьютер, после перезагрузки, Windows должен пересоздать эту папку заново. (папка appdata может быть скрыта и переходить к ней нужно скопировав полностью путь, или поставив галочку отображать скрытые файлы в настройках проводника).
- Можно попробовать создать нового пользователя Windows 8 и проверить, работает ли установка под новым пользователем (пользователь должен находится в группе администраторы).
Для решения данной проблемы следует выполнить следующие шаги:
1. Выбрать меню «Пуск» > «Панель управления» > «КриптоПро CSP». Перейти на вкладку «Сервис» и нажать на кнопку «Удалить запомненные пароли». Отметить пункт «Пользователя» и нажать на кнопку «ОК».
2. В окне «Выбор ключевого контейнера» поставить переключатель «Уникальные имена» и повторить выбор контейнера.
3. Если ключевой носитель — дискета или флэш-карта, необходимо просмотреть его содержимое. В корне носителя должна быть папка с шестью файлами с расширением.key.
4. Если ключевой носитель — ruToken или ruToken Lite, то следует переустановить драйвера и модуль поддержки. Для этого необходимо:
- Отсоединить токен от компьютера (в момент отключения светодиод на токене не должен мигать).
- Открыть меню «Пуск» > «Панель управления» > «Установка и удаление программ» (для операционных системWindows Vista и Windows Seven «Пуск» > «Панель управления» > «Программы и компоненты».
- В списке найти элемент «Rutoken Support Modules», «Rutoken Drivers» (либо «Драйверы Рутокен") и выбрать «Удалить».
- Перезагрузить компьютер.
- Установить новые драйвера и модуль поддержки, а также выполнить все остальные рекомендуемые действия с помощью сервиса диагностики .
5. Сделать копию ключевого контейнера и выполнить установку сертификата с дубликата (см. Как скопировать контейнер с сертификатом на другой носитель?).
Если предложенное решение не помогло устранить ошибку, то необходимо обратиться в службу технической поддержки по адресу [email protected], указав следующие данные:
- ИНН и КПП организации;
- скриншот возникающей ошибки;
- номер диагностики;
- Если используется дискета или флэш-карта, то сообщить, какие файлы и папки содержатся в корне носителя.
- Если ключевой носитель — ruToken или ruToken Lite, то скриншот окна свойств ruToken;
Чтобы открыть данное окно, следует перейти в меню «Пуск» > «Панель управления» > «Крипто Про CSP» > «Оборудование» > «Настроить типы носителей», выбрать «Rutoken» (либо «Rutoken lite") > «Свойства» > «Информация».
В Windows 10, 2012R2, 2016 не работают примеры для шифрования/расшифрования данных с передачей сессионного ключа. Например, EncryptDecryptSessionKeyTest .
При попытке расшифровать сессионный ключ функция CryptoApi.CryptImportKey выдает ошибку "Плохой ключ" (для VipNet) или "Плохие данные" (для КриптоПро).
Stacktrace:
Сессионный ключ как-то некорректно передается.
Т.е. не удается расшифровать зашифрованные данные на той же самой машине тем же самым процессом. Не удается также расшифровать эти данные и на других машинах, например, под Windows 7.
При этом в Windows 7 шифрование работает корректно на тех же самых сертификатах, данные шифруются корректно. Примеры успешно работают.
В чем может быть проблема?
The text was updated successfully, but these errors were encountered:
alexnur commented Feb 4, 2021
Это файл подписанного зашифрованного запроса страхователя к тестовому сервису ФСС. Пример прислали из ФСС. Запрос рабочий.
AlexMAS commented May 30, 2018
Судя по всему, у VipNet проблемы с Windows 10 тянутся довольно давно. Какие-то вопросы, в том числе с CALG_PRO_EXPORT, остаются открытыми до сих пор. Возможно, я ошибаюсь, поскольку давно заметил, что представители VipNet (Infotecs) неохотно отвечают на вопросы, но определенно что-то делают. :) А вы не пробовали пререключать их загадочную настройку "Включить поддержку работы VipNet CSP через MS Crypto API"? Может что-то получится, хотя слабо верится. Честно говоря, я ещё не успел воспроизвести вашу ситуацию локально, срок бесплатной версии VipNet вышел. Постараюсь почистить машину и переустановить криптопровайдер.
Решение ошибок
В случае возникновения ошибки при запуске программы: Unable to build entity manager factory
Ошибка возникает в случае отсутствия связи с СУБД PostgreSQL, либо сервер БД недоступен
Необходимо проверить на сервере БД запущена ли служба Postgresql-9.5 и доступен ли сервер БД, а также порт указанный при установке АРМ ЭРС
В случае возникновения ошибки при получении результата обработки: Connection could not be allocated. Listener does not currently know of service requested in connect descriptor
Сервер ФСС временно не доступен, необходимо ожидать восстановления работоспособности
В случае возникновения ошибки при получении результата обработки: Ошибка вызова сервиса передачи/получения данных. Could not send Message
Сервер ФСС временно не доступен, необходимо ожидать восстановления работоспособности
В случае возникновения ошибки при установке или обновлении программы «GostCryptography.dll Этому файлу не сопоставлена программа для выполнения этого действия»
Необходимо обновить систему и выполнить команды в командной строке от имени администратора:
После этого необходимо перезагрузиться
Подробнее вы можете прочитать здесь
В случае возникновения «ошибки шифрования» при проставленной галочке :
Перейти в «C:\FssArmErs\configuration\.settings\» (для х64 версии)
либо в «C:\FssTools\configuration\.settings\» (для x86 версии)
Открыть в блокноте файл: ru.ibs.fss.eln.prefs в конце добавить строчку encryptmessages=1
В случае возникновения «Internal Error COMCryptoAPIClient» :
В командной строке CMD выполнить (с правами администратора): Для x86 программы
Для x64 программы
Сервис ФСС перегружен, необходимо повторить отправку/запрос позднее. В программе АРМ ЭРС проверьте в настройках подписи корректна ли подпись медицинской организации (МО) либо сертификат ФСС
Причиной возникновения данной ошибки может служить чрезмерная нагрузка на сервис ФСС, можно попробовать повторить операцию позднее.
В программе АРМ ЭРС проверьте в настройках подписи корректна ли подпись медицинской организации (МО) либо сертификат ФСС
После обновления ПО данная настройка может быть пустой
(eln_prod_Личное.cer устанавливаем в «Личное» остальные два в «Доверенные корневые центры сертификации»)
Убеждаемся что у пользователя есть права на контейнер закрытого ключа учреждения
В случае возникновения ошибки «вызова сервиса передачи/получения данных»
Необходимо подождать, так как наблюдаются перебои в работе сервиса взаимодействия ФСС
В случае возникновения ошибки «Отсутствует лицензия на осуществление медицинской деятельности»
Необходимо проверить введенные в настройках реквизиты организации а также связаться с региональным представителем ФСС
В случае возникновения ошибки «Отсутствует заключенный договор с ТОФ на оказание услуг»
Необходимо связаться с региональным представителем ФСС
В случае возникновения ошибки «Internal Error Rollback Exception» при попытке открыть сведения о посещениях
Необходимо обновить ПО на рабочем месте, где установлена БД
Либо открыть PgAdmin3 и выполнить в БД «fss» пользовательский скрипт:
Необходимо изучить текст ошибки - скорее всего неправильно заполнены данные в определенном поле
(в данном примере ошибка гласит о том, что введено 10 цифр в поле, где должно быть 12 цифр)
Необходимо в талоне нажать кнопку «На подписании» затем снова подписать талон кнопкой «Подпись руководителя ЛПУ» (может потребоваться нажать 2 раза)
Проблема связана с недоступностью (полной неработоспособностью сервиса ФСС) Необходимо ожидать восстановления работоспособности сервиса
В случае возникновения ошибки «Ошибка вызова сервиса передачи/получения данных. Несоответствующий статус для включения талонов в реестр» при попытке включить талоны в реестр
Для решения проблемы нужно убедиться, что статус перечисленных в ошибке талонов, включенных в реестр должен быть - Принято в ТОФ
Часто бывает так, что статус талона в локальной базе может отличаться от статуса в ФСС (для этого можно запросить статус обработки повторно) можно уточнить этот момент у представителя ФСС
В случае возникновения ошибки «Дата постановки на учет должна быть равна началу периода наблюдения» при попытке сохранить ЭРС
Необходимо ввести одинаковую дату постановки на учет и дату начала периода наблюдения через кнопку «Календарь» в поле с датами
В случае возникновения ошибки «Premature end of file
Ошибка возникает, когда валидация отправляемого XML-файла не проходит на удаленном сервисе. Проблема на стороне ФСС. Решение - ждать исправления
В случае возникновения ошибки «Ошибка вызова сервиса передачи/получения данных. 1606: Несоответствующий статус для включения талонов в реестр: Талон» при попытке получить результат обработки счета
Для решения проблемы необходимо нажать кнопку «Получить данные об оплате счета»
В случае возникновения ошибки «Не удалось подписать информацию Invalid Iddata=[имя талона]» подписать реестр
Необходимо удалить пробелы или другие запрещенные символы из номера реестра
В случае возникновения ошибки «The content of element 'status' is not complete.» при попытке запросить результат обработки
Проблема на стороне сервиса взаимодействия с ФСС, необходимо ждать решения проблемы со стороны ФСС
В случае возникновения ошибки «Internal error Widget is disposed
Перед любыми действиями делайте резервную копию папки!
Необходимо удалить содержимое папки
C:\FssArmErs\workspace\.metadata\.plugins\org.eclipse.e4.workbench
После этого перезапустите приложение
DPonomarchuk commented Jan 24, 2021
Я занимался сервисом МО, а не страхователя, но для меня это работает так:
Я считаю что если шифрование работало в версии 1.1, то вам нужно написать в чат разработчиков ФСС в телеграмм (возможно там кто-то сталкивался с таким) и ваша проблема не имеет отношения к библиотеке GostCryptography
spiridonovav commented Jan 24, 2021
Полный текст последнего варианта процедуры шифрования:
spiridonovav commented Feb 4, 2021 •
Да, скорей всего, у них свой fork, что усложняет ситуацию. Возможно, у них на это были свои причины.
- Создание случайного сессионного ключа.
При работе с ключами на алгоритме ГОСТ 2012 следует инициализировать генератор параметрами шифрования TK26Z (предоставляется провайдером).
Алгоритм шифрования GOST28147. - Зашифрование сессионного ключа.
2.1. Создание шифратора для зашифрования ключа. Применяется алгоритм трансформации "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001". Cоздается эфемерный ключ, который согласуется с открытым ключом получателя, и формируется ключ согласования (на котором будет зашифрован сессионный ключ);
2.2. Создание блока KeyInfo с сертификатом;
2.3. Шифрование сессионного ключа происходит с помощью указанного асимметричного ключа (ГОСТ Р 34.10). Cессионный ключ используется для шифрования данных и в свою очередь так же шифруется.
CALG_DH_GR3410_12_256_EPHEM - идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (256 бит).
CALG_DH_GR3410_12_512_EPHEM - идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (512 бит). - В блоке soapenv:Header в подписанном запросе добавляется блок , который содержит публичный сертификат пользователя в формате x509v3 (кодировке base64).
- Зашифрование документа.
4.1. Создание шифратора в режиме зашифрования. Применяется алгоритм
"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147". Возможные параметры шифратора GostJCE/CBC/ISO10126Padding;
4.2. Добавление зашифрованного сессионного ключа, полученного ранее (добавление блока KeyInfo;
4.3. Зашифрование документа на сессионном ключе.
2. ORA-20015: Не удалось определить состояние ЭЛН:
Для перехода в статус "Продлен" необходимо добавить период нетрудоспособности;
Для перехода в статус "Закрыт" необходимо заполнить поля: "Приступить к работе с: дата" или "Иное: код";
Для перехода в статус "Направление на МСЭ" необходимо заполнить поле "Дата направления в бюро МСЭ"
1. В системе существует ЭЛН с таким же номером и такими же данными, которые Вы присылаете (дублирование данных);
2. Присылаемые данные в ЭЛН не соответствуют этапу оформления (заполнения) ЭЛН:
- недостаточно данных для определения состояния ЭЛН;
- внесенные данные относятся к разным этапам оформления (заполнения) ЭЛН.
spiridonovav commented Jan 24, 2021
Здравствуйте. Насколько я помню, ранее была проблема с использованием устаревшего ID. Возможно они изменили что-то в этой части.
spiridonovav commented Feb 20, 2021 •
Был получен ответ:
Добрый день!
Заявка PPO2021-18913
Вопросы приведенные в заявке находятся вне компетенции технической поддержки. Техническая поддержка отвечает за работоспособность сервисов ЭЛН и поддерживаемых приложений, дает консультации по бизнес-процессам и применяемым форматно-логическим контролям, итп.
Техническая поддержка не дает консультаций и решений по разработке сторонних приложений.
Стандарты и алгоритмы, используемые при работе сервиса ЭЛН, являются открытыми и перечислены в спецификациях
Обязательно нужно убедиться, что вы используете одну и ту же разрядность программы для сервера (на котором postgresql) и для клиентов, при разной разрядности вы можете потерять БД (например если на сервере 64-ех разрядный postgresql а на клиенте 32-разрядное приложение)
Устанавливаем программу от имени администратора.
Обновлены сертификаты в цепочке(убран доверенный сертификат от неакредитованного УЦ), сертификат УЛ ФСС действует до 15.03.23
Скачиваем и устанавливаем ВСЮ ЦЕПОЧКУ СЕРТИФИКАТОВ уполномоченного лица ФСС:
(eln_prod_Личное.cer устанавливаем в «Личное» остальные два в «Доверенные корневые центры сертификации»)
Убеждаемся что у пользователя есть права на контейнер закрытого ключа учреждения
busyscout commented Jun 8, 2018
Теперь вообще шифрование не работает. Ошибка происходит в конструкторе Gost3410AsymmetricAlgorithm .
Скорее всего, это вызвано тем, что константа KP_ALGID используется в разных местах и до этого она некорректно использовалась только при экспорте/импорте сессионного ключа. В других местах она использовалась верно.
Мне кажется, что лучше было бы добавить тип криптопровайдера к классу SafeProvHandleImpl и при экспорте/импорте ключа анализировать его - для КриптоПро использовать одну константу, а для Инфотекс - другую. Кроме того, на данный момент типов криптопровайдеров для Инфотекс три - 2 (ГОСТ 2001), 77 и 78 (ГОСТ 2012).
AlexMAS commented Feb 3, 2021
Большие переделки произошли с релизом 2.0, потом были правки мелких багов и косметические дополнения. :)
13. АРМ Подготовки расчетов для ФСС, ошибка «Набор ключей не определен»
ГОСТ сертификата ФСС не соответствует выбранному в настройках криптопровайдеру, либо криптопровайдер не может получить закрытый ключ из контейнера закрытого ключа для выбранного сертификата.
- В настройках АРМ Подписания и шифрования проверить, что указанный криптопровайдер соответствует реально установленному у пользователя;
- В настройках АРМ Подписания и шифрования проверить, что ГОСТы сертификата подписания и сертификата ФСС одинаковы и соответствуют выбранному криптопровайдеру;
- Если используется сертификат ЭП по ГОСТ 2012, откройте сертификат, вкладка «Состав», параметр «Средство электронной подписи».
Необходимо проверить, что средство ЭП соответствует криптопровайдеру, установленному у пользователя; - Если используется сертификат ЭП по ГОСТ 2012 и криптопровайдер КриптоПро, проверьте настройки на вкладке "Алгоритмы". В выпадающем списке "Выберите тип CSP" выберите GOST R 34.10-2012 (256). Должны быть установлены следующие параметры:
"Параметры алгоритма шифрования" - ГОСТ 28147-89, параметры алгоритма шифрования TK26 Z
"Параметры алгоритма подписи" - ГОСТ 34.10-2001, параметры по умолчанию
"Параметры алгоритма Диффи-Хеллмана" - ГОСТ 34.10-2001, параметры обмена по умолчанию
Большое спасибо, Михаил, все сделали оперативно а главное понятно для меня. Так как мы с вами нашли общий язык. хотелось бы в дальнейшем так же продолжить связь именно с вами. Надеюсь на плодотворное сотрудничество.
Олеся Михайловна - генеральный директор ООО "ВКС"
От имени предприятия ГУП "Севастопольское авиационное предприятие" выражаем благодарность за профессионализм и оперативность вашей компании! Желаем вашей компании дальнейшего процветания!
Гуськова Лилия Ивановна - менеджер. ГУП "САП"
Спасибо вам, Михаил, большое за помощь в оформлении. Очень квалифицированный сотрудник +5!
Надия Шамильевна - предприниматель ИП Аношкина
От лица компании "АКБ-Авто" и от себя лично выражаю Вам и всем сотрудникам вашей компании благодарность за продуктивную и качественную работу, чуткое отношение к требованиям клиента и оперативность в исполнении заказываемых работ.
Насибуллина Альфира - Старший менеджер "АКБ-Авто"
Хочу поблагодарить консультанта Михаила за отличную работу, своевременные и полные консультации. Очень внимателен к проблемам клиента и вопросам, оперативное решение самых казалось бы для меня сложных ситуаций. Очень приятно работать с Михаилом. Теперь своим клиентам и знакомым буду рекомендовать Вашу компанию. Да и консультанты в тех.поддержке тоже очень вежливы, внимательны, помогли справится со сложной установкой ключа. Спасибо.
Приобретение ключа оказалось очень лёгким и, даже, приятным. Огромная благодарность за содействие менеджеру Михаилу. Объясняет сложные и массивные для понимания вещи ёмко, но очень понятно. К тому же я позвонил на горячую бесплатную линию и в режиме он-лайн, вместе с Михаилом оставил заявку. Мне изготовили ключ через 2 рабочих дня. В общем, рекомендую если экономите своё время, но в тоже время хотите иметь понимание - что покупаете и за что платите. Спасибо.
Левицкий Александр Константинович г. Самара
Личная благодарность консультанту Михаилу Владимировичу за оперативную консультацию и работу по ускоренному получению сертификата ЭП. В ходе предварительной консультации подбирается оптимальный набор индивидуальных услуг. Конечный результат получен незамедлительно.
Стоянова Н.Л. - главный бухгалтер ООО "СИТЕКРИМ"
Спасибо за оперативную работу и компетентную помощь! Консультацией остался очень доволен!
ООО "Эксперт Система" благодарит за оперативную работу консультанта Михаила! Желаем Вашей компании роста и процветания!
Суханова М.С. - Оценщик ООО "Эксперт Система", г. Волгоград
Спасибо консультанту, представившемуся Михаилом, за оперативность в работе с клиентами.
Пономарев Степан Геннадьевич
Большое спасибо консультанту Михаилу, за оказанную помощь в получении ЭЦП. За оперативную работу и консультирование по вопросам возникающим в процессе оформления.
Компания в лице консультанта Михаила делает невозможное! Ускорение аккредитации менее чем за 1 час! Оплата по факту оказания услуги. Думал, такого не бывает. С полной ответственностью могу советовать связываться с Центром выдачи электронных подписей.
Добрый день друзья!
При попытке погуглить информацию в интернете, решить проблему не удавалось. Большинство ссылок ведут на форумы, где обсуждаются проблемы связанные с крипто-приложениями, такими как крипто-про. Но тут дело не в этом, никаких программ не использовалось.
Но к сожалению эффекта так же не произошло.
- Естественно, пробовали устанавливать все последние обновления на Windows 8.1.
- Проверяли полностью антивирусом.
LeonxPRO commented Oct 9, 2018 •
An exception of type 'System.Security.Cryptography.CryptographicException' occurred in GostCryptography.dll but was not handled in user code
Additional information: Bad Key.
at GostCryptography.Native.CryptoApiHelper.ImportCspBlob(Byte[] importedKeyBytes, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl publicKeyHandle, SafeKeyHandleImpl& keyExchangeHandle) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Native\CryptoApiHelper.cs:line 905
at GostCryptography.Native.CryptoApiHelper.ImportKeyExchange(SafeProvHandleImpl providerHandle, GostKeyExchangeInfo keyExchangeInfo, SafeKeyHandleImpl keyExchangeHandle) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Native\CryptoApiHelper.cs:line 958
at GostCryptography.Cryptography.GostKeyExchangeAlgorithm.DecodeKeyExchangeInternal(Byte[] encodedKeyExchangeData, Int32 keyExchangeExportAlgId) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Cryptography\GostKeyExchangeAlgorithm.cs:line 150
at GostCryptography.Cryptography.GostKeyExchangeAlgorithm.DecodeKeyExchange(Byte[] encodedKeyExchangeData, GostKeyExchangeExportMethod keyExchangeExportMethod) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Cryptography\GostKeyExchangeAlgorithm.cs:line 130
at GostCryptography.Cryptography.GostKeyExchangeDeformatter.DecryptKeyExchangeAlgorithm(GostKeyExchange encryptedKeyExchangeInfo) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Cryptography\GostKeyExchangeDeformatter.cs:line 116
at GostCryptography.Cryptography.GostKeyExchangeDeformatter.DecryptKeyExchangeAlgorithm(Byte[] encryptedKeyExchangeData) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Cryptography\GostKeyExchangeDeformatter.cs:line 98
at GostCryptography.Xml.GostEncryptedXmlImpl.DecryptKeyClass(Byte[] keyData, Gost3410AsymmetricAlgorithmBase privateKey) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Xml\GostEncryptedXmlImpl.cs:line 439
at GostCryptography.Xml.GostEncryptedXmlImpl.DecryptEncryptedKeyClass(EncryptedKey encryptedKey, String symmetricAlgorithmUri) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Xml\GostEncryptedXmlImpl.cs:line 306
at GostCryptography.Xml.GostEncryptedXmlImpl.GetDecryptionKey(EncryptedData encryptedData, String symmetricAlgorithmUri) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Xml\GostEncryptedXmlImpl.cs:line 243
at System.Security.Cryptography.Xml.EncryptedXml.DecryptDocument()
at GostCryptography.Xml.GostEncryptedXml.DecryptDocument() in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography\Xml\GostEncryptedXml.cs:line 273
at GostCryptography.Tests.Xml.Encrypt.EncryptedXmlCertificateTest.DecryptXmlDocument(XmlDocument encryptedXmlDocument) in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography.Tests\Xml\Encrypt\EncryptedXmlCertificateTest.cs:line 74
at GostCryptography.Tests.Xml.Encrypt.EncryptedXmlCertificateTest.ShouldEncryptXml() in c:\Users\LeonPRO.KKB1\Downloads\GostCryptography-master\Source\GostCryptography.Tests\Xml\Encrypt\EncryptedXmlCertificateTest.cs:line 31
Здравствуйте, коллеги!
С 2017 года используем GostCryptography для взаимодействия с ФСС в части обмена данными ЭЛН. За библиотеку Автору отдельное спасибо. Все прекрасно работало, до появления сервиса версии 2.0.
При выполнении этих условий АРМ ФСС выполняет запрос ЭЛН по № и СНИЛС и ему сервис возвращает: "Ошибка: ORA-20001: Некорректные параметры: Рег. номер в запросе и ОГРН в сертификате ЭП. Не найден страхователь с такими параметрами, а также отсутствует уполномоченный представитель с таким сертификатом ЭП". Что, в общем корректно (если не обращать внимание, что контур тестовый), так как используется сертификат страхователя, который не участвует в обмене данными ЭЛН.
Кто ни будь подскажите, в чем моя ошибка.
The text was updated successfully, but these errors were encountered:
alexnur commented Jan 29, 2021
Кстати, когда пробую дешифровать зашифрованный ответ ФСС (после отправки им зашифрованного запроса, который они прислали мне по почте), то получаю исключение "Плохие данные". Дешифровать пробую как и для спецификации 1.1.
Исключение возникает при возврате результата из метода
return GostEncryptedXml.DecryptKey(encryptedKey.CipherData.CipherValue, myKey);
Исключение: 'System.Security.Cryptography.CryptographicException' in GostCryptography.dll ("Плохие данные.
")
` private static SymmetricAlgorithm GetDecryptionKey(EncryptedData encryptedData, X509Certificate2 myCert)
IEnumerator encryptedKeyEnumerator = encryptedData.KeyInfo.GetEnumerator();
// Проходим по всем KeyInfo
while (encryptedKeyEnumerator.MoveNext())
// пропускам все что неизвестно.
KeyInfoEncryptedKey current = encryptedKeyEnumerator.Current as KeyInfoEncryptedKey;
if (current == null) continue;
// до первого EncryptedKey
EncryptedKey encryptedKey = current.EncryptedKey;
Терминальный режим
Для работы программы в терминальном режиме при установке программы на сервер (многопользовательский режим) необходимо создать bat-файл в папке с программой со следующим текстом:
Пользователи могут успешно подключаться к удаленному рабочему столу и использовать данный bat-файл для работы в программе в многопользовательском режиме.
PS. Обязательно необходимо под каждым терминальным пользователем повторить процедуру установки сертификатов ФСС (три сертификата) и сертификат учреждения (ЛПУ)
spiridonovav commented Jan 29, 2021
Запрашивал в поддержке тестовый готовый зашифрованный запрос, чтобы исключить остальные проблемы. Прислали зашифрованный запрос. Если я его отправляю на тестовый контур с шифрованием - все хорошо.
busyscout commented May 29, 2018
После более детального разбирательства в проблеме выяснилось, что она проявляется при установке алгоритма экспорта сессионного ключа в CALG_PRO_EXPORT и использовании VipNet CSP 4.2.10 в Windows 10, Windows Server 2016. Похоже, что у этого CSP есть какие-то проблемы именно с этим алгоритмом. С этим алгоритмом не работает ни один из примеров шифрования напрямую через CryptoApi, которые указаны в их примерах. Всюду происходит одна и та же ошибка функции CryptImportKey при расшифровке сессионного ключа.
alexnur commented Feb 1, 2021 •
alexnur commented Feb 3, 2021
На просьбу прислать тестовый запрос подписанный и зашифрованный получил следующий ответ:
"Кажется, что это бессмысленно, т.к. расшифровать запрос в обратную сторону все равно не получится.
Обратите внимание, в спецификации страхователя 2.0 описаны шаги по шифрованию запроса.
Также, если вы для работы своего ПО используете библиотеку шифрования GostCryptography, то она была переписана, прежняя версия не может корректно работать с сервисом 2.0."
У меня была GostCryptography версии 2.0.7, с которой работала спецификация 1.1.
В репозитории есть версия 2.0.8. Установил ее. Изменений никаких - ФСС по-прежнему не может расшифровать мой запрос. Запросы по спецификации 1.1 без проблем работают в том числе и с версией 2.0.7.
В АРМ ФСС используется GostCryptography вообще версии 2.0.2. Ее я тоже пробовал подключать к проекту. Изменений никаких.
Удивительно другое - согласно ответу ФСС требуется более новая версия, мол со старой работать не будет. А сами используют 2.0.2.
В общем, вопрос открыт.
6. Ошибка вызова сервиса передачи/получения данных.
Закажите и установите сертификат, который поддерживает не только операцию подписания, но и операцию шифрования.
spiridonovav commented Jan 24, 2021
Настройка программы
Во вкладке «Администрирование - Настройки сервисов ФСС» указать строку соединения:
Убедимся, что проставлены все галочки в настройках электронной подписи:
Читайте также: