Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
 Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
Добрый день.

Имеется подписанный файл (для удобства чтения отформатированный):
+ подписанный файл
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<SOAP-ENV:Header>
<wsse:Security SOAP-ENV:actor="http://eln.fss.ru/actor/insurer/12345">
<wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/insurer/12345">
тут сертификат пользователя, подписавшего данные
</wsse:BinarySecurityToken>
<ds:Signature>
<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
<Reference URI="#body">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
<DigestValue>тут хеш-сумма тега body</DigestValue>
</Reference>
</SignedInfo>
<ds:SignatureValue>
тут подписанная хеш-сумма тега SignedInfo
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#http://eln.fss.ru/actor/insurer/12345" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body wsu:Id="body">
<getPrivateLNData xmlns="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl">
<regNum>1111111</regNum>
<lnCode>22222222</lnCode>
<snils>123456789</snils>
</getPrivateLNData>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Также в наличии имеется 2 сертификата: свой и ФСС.
С вычислением хеш-суммы и подписи разобрался. А вот шифрование не осилил.

Задача: этот подписанный файл зашифровать и поместить в файл:
+ структура зашифрованного файла
<SOAP-ENV:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:sch="http://gost34.ibs.ru/WrapperService/Schema"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"></xenc:EncryptionMethod>
  <ds:KeyInfo>
    <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
      <xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"></xenc:EncryptionMethod>
      <ds:KeyInfo>
        <ds:X509Data>
          <ds:X509Certificate></ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
      <xenc:CipherData>
        <xenc:CipherValue></xenc:CipherValue>
      </xenc:CipherData>
    </xenc:EncryptedKey>
  </ds:KeyInfo>
  <xenc:CipherData>
    <xenc:CipherValue>здесь содержимое зашифрованного файла</xenc:CipherValue>
  </xenc:CipherData>
</xenc:EncryptedData>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

В документе Спецификация_ЭЛН_Страхователь_v1_1_20171215.doc указано:
KeyInfo – содержит информацию об секретном ключе, сгенерированном для данного информационного взаимодействия (CipherValue) и публичный сертификат пользователя, зашифровавшего данные (X509Certificate)

Собственно вопросы:
1. Что такое "секретный ключ для данного информационного взаимодействия"?
2. Из непонимания (1) следующий вопрос: какими функциями пользоваться и в какой последовательности для шифрования файла.
3. "публичный сертификат пользователя, зашифровавшего данные (X509Certificate)" - эти данные берутся из сертификата ФСС? Ведь шифровать файл надо их ключом?
25 дек 17, 09:17    [21059341]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Создание и проверка подписи документа XML

Объект CPEnvelopedData

+ форум КРИПТО-ПРО.
25 дек 17, 23:18    [21061778]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
sql2012,

Спасибо за ссылки, только они не открываются.

Вот сейчас у меня есть конкретный вопрос: как формируется CipherValue. Тот самый, который "секретный ключ для данного информационного взаимодействия".

По примерам с сайта накидал вот такое:
+
var
  PublicKeyFss, SessionKey, InitVector: TBytes;
  hKey, hAgreeKey, hSessionKey: Cardinal;
  Len, InputDataLen: Cardinal;
  AlgProExport: DWORD;
  KeySpec: DWORD;
begin
  // Загрузка PUBLICKEYBLOB из сертификата ФСС
  PublicKeyFss := GetPublicKeyFss;

  CryptAcquireContext(hProv, ContainerName, CP_GR3410_2001_PROV_A, PROV_GOST_2001_DH, 0);

  // Получение дескриптора закрытого ключа отправителя.
  CryptGetUserKey(hProv, AT_KEYEXCHANGE, hKey);

  // Получение ключа согласования импортом открытого ключа получателя на закрытом ключе отправителя.
  CryptImportKey(hProv, @PublicKeyFss[0], Length(PublicKeyFss), hKey, 0, hAgreeKey);

  // Установление PRO12_EXPORT алгоритма ключа согласования
  AlgProExport := CALG_PRO_EXPORT;
  CryptSetKeyParam(hAgreeKey, KP_ALGID, @AlgProExport, 0);

  // Генерация сессионного ключа.
  CryptGenKey(hProv, CALG_G28147, CRYPT_EXPORTABLE, hSessionKey);

  //--------------------------------------------------------------------
  // Зашифрование сессионного ключа.
  //--------------------------------------------------------------------

  //--------------------------------------------------------------------
  // Зашифрование сессионного ключа на ключе Agree.
  CryptExportKey(hSessionKey, hAgreeKey, SIMPLEBLOB, 0, nil, Len);
  SetLength(SessionKey, Len);
  CryptExportKey(hSessionKey, hAgreeKey, SIMPLEBLOB, 0, @SessionKey[0], Len);

  // Определение вектора инициализации сессионного ключа.
  CryptGetKeyParam(hSessionKey, KP_IV, nil, Len, 0);
  SetLength(InitVector, Len);
  CryptGetKeyParam(hSessionKey, KP_IV, @InitVector[0], Len, 0);

  // Зашифрование данных на сессионном ключе.
  InputDataLen := Length(Data);
	CryptEncrypt(hSessionKey, 0, True, 0, nil, Len, InputDataLen);
  if InputDataLen < Len then
    SetLength(Data, Len);
  CryptEncrypt(hSessionKey, 0, True, 0, @Data[0], Len, InputDataLen);


Как, зная SessionKey, InitVector и может быть что-то еще сформировать CipherValue?
28 дек 17, 12:51    [21069603]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
http://cpdn.cryptopro.ru/?url=/content/cades/plugin-samples-sign-xml.html

http://cpdn.cryptopro.ru/?url=/content/cades/class_c_ad_e_s_c_o_m_1_1_c_p_enveloped_data.html
28 дек 17, 16:47    [21070326]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
>CP_GR3410_2001_PROV_A, PROV_GOST_2001_DH

Такого не должно быть в коде,
в 2018 переход на ГОСТ-2012.
28 дек 17, 16:49    [21070329]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
cutecode
Member

Откуда:
Сообщений: 11
Тоже бьюсь над этим вопросом. Начал в сентябре и только к декабрю удалось сделать подпись. И теперь застрял на шифровании.
Я использую C++, openssl и xmlsec1

Если Вам удастся разобраться, буду рад услышать способы вашего решения.


По поводу третьего вопроса
3. "публичный сертификат пользователя, зашифровавшего данные (X509Certificate)" - эти данные берутся из сертификата ФСС? Ведь шифровать файл надо их ключом?

Нет, это ваш сертификат (клиники), в нем содержится открытый ключ, с помощью которого ФСС зашифрует ответное сообщение, а вы расшифруете его вашим закрытым ключом (клиники)

А вот шифровать данные надо открытым ключом ФСС, чтобы он смог расшифровать их своим закрытым ключом
31 дек 17, 04:27    [21075732]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
cutecode
Тоже бьюсь над этим вопросом. Начал в сентябре и только к декабрю удалось сделать подпись. И теперь застрял на шифровании.
Я использую C++, openssl и xmlsec1

Если Вам удастся разобраться, буду рад услышать способы вашего решения.


По поводу третьего вопроса
3. "публичный сертификат пользователя, зашифровавшего данные (X509Certificate)" - эти данные берутся из сертификата ФСС? Ведь шифровать файл надо их ключом?

Нет, это ваш сертификат (клиники), в нем содержится открытый ключ, с помощью которого ФСС зашифрует ответное сообщение, а вы расшифруете его вашим закрытым ключом (клиники)

А вот шифровать данные надо открытым ключом ФСС, чтобы он смог расшифровать их своим закрытым ключом


Мне разобраться?
"Ваш" сертификат?

Что мешает использовать SDK и примеры с форумов?
Нежелание выделить время и взять\найти, лень, непонимание как искать по ключевым словам?

А... Новый Год же...

С наступающим.
31 дек 17, 09:52    [21075791]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
onets
Member

Откуда:
Сообщений: 76
cutecode
Тоже бьюсь над этим вопросом. Начал в сентябре и только к декабрю удалось сделать подпись. И теперь застрял на шифровании. Я использую C++, openssl и xmlsec1

Мда, на .NET я подобное делал для ФССП в 2012-2013 годах за три месяца весь проект. В целом ничего сложного - крипто-про, их примеры и форумы. Были локальные проблемы, типа несовпадения хеш сумм, но все решалось отладкой, вдумчивыми чтением документации и форумов крипто-про. Или как подлезть к этому во внутренностях WCF, чтоб в итоге все заработало.

Насколько я помню:
1. Если через СМЭВ, то два сертификата. Один для СМЭВ, второй для получателя. Нужно зашифровать сообщение-конверт для получателя сертификатом для получателя. Потом вложить его в конверт СМЕВ и зашифровать еще раз сертификатом для СМЭВ. Проблемы были - какой именно вложенный блок шифровать (начиная с какого xml тега) и какой проставлять Reference URI
2. Если напрямую, то по идее один сертификат.

В любом случае библиотека и примеры от крипто-про делали львиную долю работы. Все SignedInfo, DigestValue, SignatureValue проставлялись автоматически. Просто указываешь контент и какой сертификат использовать.

maratvg, cutecode
Попробуйте поискать примеры для делфей и C++ у крипто-про. Не думаю, что вас обделили в этом плане.
31 дек 17, 10:58    [21075821]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
onets,

ему уже был дан пример из руководства разработчика,
открыть SDK и посмотреть... что же там такого нужно написать на C++... видимо сложно.
31 дек 17, 12:57    [21075921]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
cutecode
Member

Откуда:
Сообщений: 11
Уж поверьте мне - сложно.
ибо вы тут сами пишите всякую "хрень"

например, ели человек пишет
Такого не должно быть в коде, 
в 2018 переход на ГОСТ-2012.

то он не имеет ни какого представления об XML encryption. В шаблоне же XML явно указаны алгоритмы
Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"
Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"


А юзер onets вообще не знает разницы между XML Signing и XML encryption.
Автор темы же написал, что он разобрался с подписью, и не может зашифровать.
А onets злорадно описывает, о том как он легко разобрался с подписью и ни слова о шифровании

А .NET вам не C++. Да, на Java и C# есть готовые библиотеки. Но на С++ я не нашел.
Есть куча библиотек, но они ГОСТ-а не понимают.
А на КриптоПро есть пример только с СОМ-объктом, т.е. на Линукс уже работать не будет. И то при условии что установлен MS Office 2003.

Если вы "умники" если такие умные, то я готов вам заплатить если вы мне сделаете это для вас "легкое задание".
Говорите вашу цену.


С Новым Годом
2 янв 18, 04:07    [21078073]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
cutecode,

На delphi пока никуда не продвинулся.

На данный момент пользуюсь классами GostEncryptSOAP/GostDecryptSOAP из GostCryptography.dll из набора arm_fss.
Что примечательно, программисты ФСС видимо тоже не делфи не стали это всё реализовывать, раз юзают дотнетовскую длл-ку.
9 янв 18, 13:42    [21089923]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
uranic
Member

Откуда:
Сообщений: 299
Знаю одну успешную реализацию на Delphi, с ноября 2017 все отправляют. Номера ЛН регистрируют и т.п. Вообщем полный цикл
Из сторонних библиотек используется JwaWinCrypt.pas (из JEDI, для доступа к CryptoAPI)

Весь процесс реализации затянулся на 4 месяца. (начали в середине июля, к середине октября были в тестовой эксплуатации).
К сожалению подробностей много рассказать не могу.
9 янв 18, 17:18    [21091020]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Dmitry19891
Member

Откуда:
Сообщений: 2
Здравствуйте!

Пытаюсь получить ответ из ФСС Сервис Страхователя с подписанием и шифрованием данных (версия 1.1)
подписываю запрос или подсовываю из примера (руководства), шифрую, вкладываю в бади нового
соап конверта и от ФСС всегда получаю ответ

(com.sun.xml.internal.ws.fault.ServerSOAPFaultException) com.sun.xml.internal.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: ru.ibs.cryptoprto.jcp.wrapper.ws.client.generated.CryptoException_Exception: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. class org.w3c.dom.DOMException Please see the server log to find more detail regarding exact cause of the failure.

Использую JCP
Откликнитесь, пожалуйста, кто имел опыт общения с этим сервисом.
19 янв 18, 09:02    [21118698]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Dmitry19891
Member

Откуда:
Сообщений: 2
Разобрался. Я неправильно подписывал сообщение. Теперь другой вопрос, может кто знает
Тестовый Сервис ФСС ответил мне шифрованным сообщением. Я посылал запрос
getPrivateLNData("3103275205", "290195190104", "09365295200") (взял эти регнам,ЭЛН,СНИЛС из примера)
Но расшифровать его я не могу

XMLCipher xmlCipher = XMLCipher.getInstance();
xmlCipher.init(XMLCipher.DECRYPT_MODE, null);
Element encryptedDataElement = (Element) doc2.getElementsByTagNameNS(EncryptionConstants.EncryptionSpecNS,EncryptionConstants._TAG_ENCRYPTEDDATA).item(0);
xmlCipher.setKEK(key);
xmlCipher.doFinal(doc2, encryptedDataElement);

Получаю Exception "No Key Encryption Key loaded and cannot determine using key resolvers"

Это ошибка что неправильный ключ для расшифровки (не тот абонент) или в принципе неправильный объект ключ и он его не загрузил?

Кто знает где для тестового ФСС взять ключ чтобы расшифровать ответ на 3103275205?
24 янв 18, 17:17    [21135327]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Anvig
Member

Откуда:
Сообщений: 4
Dmitry19891,
Тоже делаю связь с ФСС сервисом, хотелось бы узнать поподробнее- в чем была ошибка при шифровании ?
Вот уже третий день на все мои потуги ответ мне один-ru.ibs.cryptoprto.jcp.wrapper.ws.client.generated.CryptoException_Exception: Error in execution of data crypting operation. class org.apache.xml.security.encryption.XMLEncryptionException
Если не трудно опишите, пожалуйста, поподробнее какой режим шифрования выбирали, какие параметры устанавливали.И если уж совсем набраться наглости, то можете выложить оба зашифрованных файл(запрос и ответ от сервиса) ?
А по поводу Вашего вопроса , насколько я понимаю, ключ от ФСС Вы уже получили в ответе.
Вы должны его загрузить к себе и расшифровать свои закрытым ключом.
25 янв 18, 20:39    [21139816]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
cutecode
Member

Откуда:
Сообщений: 11
вот еще 4 недели прошло, и пока все глухо. "Танцы с бубном" не помогают.
Пока только понял следующее, может кто поправит

1. генерируем 8 байт IV
2. генерируем 32 байт сессионного ключа
3. c помощью IV и сессионного ключа шифруем данные алгоритмом ГОСТ 89
4. к полученным зашифрованным данным добавляем префикс из IV (8 байт)
5. из последнего делаем 64encoding и записываем в XML файл
6. шифруем сессионный ключ, открытым ключом ФСС алгоритмом ГОСТ 2001
7. из последнего делаем 64encoding и записываем в XML файл
25 янв 18, 22:53    [21139978]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Anvig
Member

Откуда:
Сообщений: 4
Я, конечно, не спец в этом вопросе, потому что за весь январь мне так и не удалось послать шифрованное сообщение. Единственное мое достижение -сервис ФСС перестал материться на мой ключ, теперь ошибка в шифровании данных ) Но, по-моему, алгоритм не такой, как Вы написали
1.генерится сессионый ключ с IV с алгид Гост 89
2.на основе открытого ключа ФСС генерится ключ согласования с алгоритмом ГОСТ 2001
3. сессионный ключ шифруется полученным ключом согласования
4.данные шифруются уже зашифрованным ключом, потом в base64 и в XML
5.в XML ключ ложится в base64, но не по простому, а в виде структуры , описанной в госте 89
Поправьте, если я ошибаюсь. Так достало уже, от ФСС помощи никакой, с техподдержкой хрен свяжешься
26 янв 18, 21:28    [21142818]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
cutecode
Member

Откуда:
Сообщений: 11
Это вы как я понял по примерам КриптоПро рассуждаете? я вообще не понимаю причом там ключ согласования.

Cогласно описанию
https://tools.ietf.org/html/draft-chudov-cryptopro-cpxmldsig-08
 An example of a GOST 28147-89 xenc:EncryptionMethod node is:


     <xenc:EncryptionMethod dsig:Algorithm=
         "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147">
       <!-- id-Gost28147-89-CryptoPro-A-ParamSet -->
       <cpxmlsec:Parameters28147>urn:oid:1.2.643.2.2.31.1<
       /cpxmlsec:Parameters28147>
     </xenc:EncryptionMethod>

   256-bit key, 64-bit Initialization Vector (IV), and optional
   parameters are used in GOST 28147-89 encryption algorithm.  The
   resulting cipher text is prefixed by the IV.  If included in XML
   output, it is then base64 encoded.


В SOAP сообщении, данным обязательно должен предшествовать IV (8 bites)

Я пробовал всунуть туда IV через криптоПро, один "хрен", даже на ключ ругается ФСС.
А вот через openssl удалость зашифровать ключ, но на данные ругается.
Причом через Openssl делал без всяки там "ключей согласования"
27 янв 18, 00:31    [21143172]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Anvig
Member

Откуда:
Сообщений: 4
cutecode,
За этот месяц что только не было прочитано, ваш документ тоже читала.
Я так понимаю, что у нас 2 задачи:зашифровать по госту 89(urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147)
и положить в Cipher ключа по госту 2001(urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001)
Шифровать:
уже не помню откуда вычитала, но там говорилось, что если просто генерить сессионный ключ по госту 89, то он получается всегда одинаковый.И поэтому он , в свою очередь , должен зашифрован ключом по госту2001.Причем параметры ключа должны совпадать с параметрами ключа получателя, т.е. открытого ключа ФСС
Получается , что ключ согласования должен быть тоже сгенерен.Если найду снова этот документ, кину ссылку. А на криптопро в потверждении моей теории -https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=12611

Положить ключ в Cipher: чтобы доставить ключ, он должен быть представлен в виде структуры GostR3410-KeyTransport.Опять же на каком-то форуме нашла ответ ФСС, перевела ключ в ASN, увидела , что она полностью соотвествует
структуре GostR3410-KeyTransport
А по поводу вставки IV вообще не поняла,судя по стандарту надо к зашифрованным данным добавить вперед 8 байт IV, а если посмотреть файл , приложенный в https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=87721
там ничего в сами данные не вставлено.
В любом случае, с IV или без него, у меня рез-т одинаковый.Ключ принимается, данные-нет. Возможно, что надо другой режим шифрования указать, отличный от дефолта, или доп параметры какие. Или я вообще не права,хз
27 янв 18, 16:21    [21143811]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
cutecode
Member

Откуда:
Сообщений: 11
вы писали, что вам удалось зашифровать сессионный ключ, можете поделиться кодом?
мой email stomatolog99@ mail.ru
29 янв 18, 02:36    [21145910]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Anvig
Member

Откуда:
Сообщений: 4
а смысл? раз данные не расшифровываются(Error in execution of data crypting operation), значит, несмотря на то, что ключ принимается ФСС, он все равно неправильный(
Потому что в шифровании данных ошибку сделать сложно, там всего одна команда.Будет чем реально поделиться, поделюсь.
Может и прав был maratvg,когда ушел на Net.Вот только задача у меня-написать на С++
29 янв 18, 21:41    [21148894]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Павел Ишенин
Member

Откуда: Красноярск
Сообщений: 358
Кто-либо продвинулся в теме шифрования больничных?

Подписание у нас тоже сделано в web. А вот на шифровании ровно теже вопросы.
9 фев 18, 11:20    [21179170]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
tamerlan00
Member

Откуда:
Сообщений: 26
maratvg
cutecode,

На delphi пока никуда не продвинулся.

На данный момент пользуюсь классами GostEncryptSOAP/GostDecryptSOAP из GostCryptography.dll из набора arm_fss.
Что примечательно, программисты ФСС видимо тоже не делфи не стали это всё реализовывать, раз юзают дотнетовскую длл-ку.


Тоже использую эту библиотеку, но не смог найти таких классов GostEncryptSOAP/GostDecryptSOAP.
Я использовал класс GostEncryptedXml. Смог зашифровать и расшифровать своими ключами.
Также смог зашифровать, отправить на тестовый контур и получить зашифрованный ответ. Но не смог расшифровать =(
Бьюсь уже день.
Можете мне код (шифровки/дешифровки сообщения) выслать на почту alex_rpg@list.ru?
31 май 18, 16:52    [21458267]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
tamerlan00,

В тот-то и удобство класса GostEncryptSOAP, что у него есть метод:
function encryptMsg(const pProvName: WideString; const pCertName: WideString; const pSOAPMsg: WideString): WideString; 
которому надо отдать имя провайдера, имя сертификата и подписанный xml в виде строки. В ответ он вернет зашифрованный xml.

То же самое с GostDecryptSOAP:
function decryptMsg(const pProvName: WideString; const pSOAPMsg: WideString): WideString;
1 июн 18, 08:28    [21459636]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
tamerlan00
Member

Откуда:
Сообщений: 26
maratvg
tamerlan00,

В тот-то и удобство класса GostEncryptSOAP, что у него есть метод:
function encryptMsg(const pProvName: WideString; const pCertName: WideString; const pSOAPMsg: WideString): WideString; 
которому надо отдать имя провайдера, имя сертификата и подписанный xml в виде строки. В ответ он вернет зашифрованный xml.

То же самое с GostDecryptSOAP:
function decryptMsg(const pProvName: WideString; const pSOAPMsg: WideString): WideString;


Ой, точно. Уже недели 2 копаюсь в GostCryptography, а GostCryptography.SOAP не замечал )))
Спасибо, буду пробовать ))
1 июн 18, 08:55    [21459684]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
delem
Member

Откуда:
Сообщений: 1
День добрый, форумчане!
У кого-то есть решение по интеграции с ЭЛН ФСС под Delphi 7?
Готов приобрести за договорную плату.
Заинтересованным просьба писать в личку или на delem@yandex.ru
2 июн 18, 18:15    [21463222]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Здравствуйте всем!

На Делфи 7 разрабатываю взаимодействие с ФСС. Какие прошёл этапы

1. Через WsdlImp.exe удалось сформировать pas-файл для Сервиса Страхователя с подписанием данных FSSWSInsurer.pas. Немного допилив, проект стал нормально компилиться.
2. Пообщавшись с техподдержкой, удалось получить образцы xml-запросов, посылаемых на сервер ФСС, и ответы от них.
3. Установил VipNet, создал тестовый сертификат для подписывания запросов, установил необходимые корневые сертификаты для создания нужной цепочки.
4. Дальше стал шаманить. Для начала убедился в том, что отправка в ФСС готового запроса из п.2 проходит без каких-либо ошибок, и удаётся получить ответ.
5. А дальше уже идёт сама работа на Делфи. Тестовый сертификат установлен в хранилище "Личное". Параметры.

Алгоритм подписи: ГОСТ Р 34.10/34.11-2001
Хэш-алгоритм подписи: ГОСТ Р 34.11-94
Открытый ключ: ГОСТ Р 34.10-2012/512
Алгоритм отпечатка: sha1

5.1. Открываю локальное хранилище CertOpenStore, через CertEnumCertificatesInStore получаю список всех сертификатов, из которого потом выбираю данный сертификат.
5.2. Функциями CryptAcquireContext, CryptCreateHash, CryptHashData, CryptGetHashParam формирую хэш-сумму тэга Body.
5.3 Функциями CryptAcquireCertificatePrivateKey, CryptCreateHash, CryptSignHash(вычисление размера), CryptSignHash (подписывание хэша) подписываю хэш-сумму тэга SignedInfo, меняю порядок байт на противоположный, кодирую по Base64.
5.4. Далее через Base64 кодирую буфер сертификата pbCertEncoded.

5.5. Всё это вставляется в соответствующие места xml-запроса: <DigestValue></DigestValue>, <SignatureValue></SignatureValue>, <BinarySecurityToken></BinarySecurityToken>, после чего он посылается в ФСС.

И сейчас получаю вот такой ответ:

ORA-20001: Отсутствует подпись головной организации
stacktrace:
Ошибка при проверке ЭЦП. java.security.InvalidKeyException: Invalid key typealgorithm = 1.2.643.7.1.1.1.1, params unparsed, unparsed keybits =
0000: 04 40 5A 22 51 08 50 A1 8C 02 DB 2F F1 40 04 00 .@Z"Q.P..../.@..
0010: 95 6E E6 82 85 FC 88 E4 62 44 D7 FD 66 03 98 0E .n......bD..f...
0020: 24 D1 54 CF 4E FF FF 08 80 C7 A6 EF 82 31 F5 9C $.T.N........1..
0030: C4 21 C4 67 66 27 D8 2E C5 33 90 5E 72 B6 28 1D .!.gf'...3.^r.(.
0040: CF EA ..

stacktrace:

И теперь пытаюсь понять, с чем связана такая ошибка. Может кто-нибудь подсказать?

С уважением, Александр.
6 июн 18, 13:31    [21472549]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

Могу подсказать...
Почему ГОСТ-2012 используется?
Они уже на нём?
6 июн 18, 16:51    [21473399]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

делай тестовый сертификат - ГОСТ-2001 ...
6 июн 18, 16:52    [21473405]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012
Shuraken,

Могу подсказать...
Почему ГОСТ-2012 используется?
Они уже на нём?


Тех.поддержка сказала, что да, они работают с ним.

Я формировал и сертификат с открытым ключом по ГОСТ Р 34.10-2001 (512Bits), но там возникла проблема на этапе формирования хэш-суммы тэга Body, не создаётся хэш.
procedure GetDigitalValue;
var
  Prov: HCRYPTPROV;
  hash: HCRYPTHASH;
begin
  if not CryptAcquireContext(@Prov,nil,'Infotecs Cryptographic Service Provider',PROV_RSA_FULL,CRYPT_VERIFYCONTEXT) then
  begin
    ShowMessage(SysErrorMessage(GetLastError));
    Exit;
  end;
  try
    if not CryptCreateHash(Prov, CALG_GR3410EL, nil, 0, @hash) then //вот здесь и происходит слом
    begin
     ShowMessage(SysErrorMessage(GetLastError)); //GetLastError=2148073480
     Exit;
   end;

  ......
  finally
     CryptReleaseContext(Prov, 0);
  end;


CALG_GR3410EL взят из wincryptex, равен 11811.

Подставляю вместо CALG_GR3410EL CALG_GR3411 (хоть это и неправильно), тогда всё формируется, но при отправке запроса сервис ФСС возвращает ошибку: ЭЦП неверна. INVALID_SIGNATURE ЭП недействительна.
6 июн 18, 17:39    [21473558]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

'Infotecs Cryptographic Service Provider', PROV_RSA_FULL
CALG_GR3410EL взят из wincryptex, равен 11811.

1) Не прописывать имена CSP
2) Использовать правильные типы CSP
3) CALG_GR3410EL - точно он нужен?
6 июн 18, 17:46    [21473579]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

2148073480=0x80090008 = "Invalid Algorithm Specified"
6 июн 18, 17:49    [21473586]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

CALG_GR3411 = 32798;
6 июн 18, 17:51    [21473593]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

CALG_GR3410EL - это идентификатор алгоритма ЭП по ГОСТ Р 34.10-2001.

А хочешь хеш получить (CryptCreateHash)... Вот и не пускает - 2148073480=0x80090008 = "Invalid Algorithm Specified"
6 июн 18, 17:53    [21473602]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
http://cpdn.cryptopro.ru/content/csp40/html/group___pro_c_s_p_ex_DP1.html
6 июн 18, 17:54    [21473606]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
автор
Подставляю вместо CALG_GR3410EL CALG_GR3411 (хоть это и неправильно), тогда всё формируется


Сам придумал?
6 июн 18, 17:55    [21473611]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012
Shuraken,

'Infotecs Cryptographic Service Provider', PROV_RSA_FULL
CALG_GR3410EL взят из wincryptex, равен 11811.

1) Не прописывать имена CSP
2) Использовать правильные типы CSP
3) CALG_GR3410EL - точно он нужен?


1. Имя я прописал здесь, чтобы было понятно, о чём идёт речь. Наверняка это важно. В коде у меня стоит nil и вместо PROV_RSA_FULL стоит 1.
3. По крайней мере именно эта константа была прописана в идентификаторах алгоритма криптопровайдера. Говорю же, что подставлял и другие константы для работы что с этим сертификатом, что с другими, и с ними всё работало, но там были другие ошибки, о которых я написал ранее.
6 июн 18, 17:56    [21473615]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012
Shuraken,

CALG_GR3410EL - это идентификатор алгоритма ЭП по ГОСТ Р 34.10-2001.

А хочешь хеш получить (CryptCreateHash)... Вот и не пускает - 2148073480=0x80090008 = "Invalid Algorithm Specified"


Суть уловил. Сюда надо подставить CALG_GR3411, то же самое сделать и для подписывания SignedInfo, и т.д. Это я делал. Почему же тогда вылезает ошибка при получении ответа от ФСС "ЭЦП неверна. INVALID_SIGNATURE ЭП недействительна."?
6 июн 18, 18:06    [21473652]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken
sql2012
Shuraken,

'Infotecs Cryptographic Service Provider', PROV_RSA_FULL
CALG_GR3410EL взят из wincryptex, равен 11811.

1) Не прописывать имена CSP
2) Использовать правильные типы CSP
3) CALG_GR3410EL - точно он нужен?


1. Имя я прописал здесь, чтобы было понятно, о чём идёт речь. Наверняка это важно. В коде у меня стоит nil и вместо PROV_RSA_FULL стоит 1.
3. По крайней мере именно эта константа была прописана в идентификаторах алгоритма криптопровайдера. Говорю же, что подставлял и другие константы для работы что с этим сертификатом, что с другими, и с ними всё работало, но там были другие ошибки, о которых я написал ранее.


Не судьба запросить у ОС по имени CSP его тип? Он разве 1 ... ?
Подбирать можно долго, как и путать алгоритмы хеширования и подписи...
6 июн 18, 18:07    [21473656]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken
sql2012
Shuraken,

CALG_GR3410EL - это идентификатор алгоритма ЭП по ГОСТ Р 34.10-2001.

А хочешь хеш получить (CryptCreateHash)... Вот и не пускает - 2148073480=0x80090008 = "Invalid Algorithm Specified"


Суть уловил. Сюда надо подставить CALG_GR3411, то же самое сделать и для подписывания SignedInfo, и т.д. Это я делал. Почему же тогда вылезает ошибка при получении ответа от ФСС "ЭЦП неверна. INVALID_SIGNATURE ЭП недействительна."?


У самого получилось проверить то, что отправляешь?
Сторонний софт подтверждает корректность (для начала - хеша)?
6 июн 18, 18:10    [21473662]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012
Не судьба запросить у ОС по имени CSP его тип? Он разве 1 ... ?
Подбирать можно долго, как и путать алгоритмы хеширования и подписи...


1. А как это сделать?
2. Да, согласен, мой косяк. Увидел знакомые цифирки в идентификаторе 34.10-2001, обрадовался и подставил, не обратив внимания, за что он отвечает.
6 июн 18, 18:13    [21473675]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012
У самого получилось проверить то, что отправляешь?
Сторонний софт подтверждает корректность (для начала - хеша)?


До этого ещё не дошёл. Как это можно проверить?
6 июн 18, 18:15    [21473682]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken
sql2012
У самого получилось проверить то, что отправляешь?
Сторонний софт подтверждает корректность (для начала - хеша)?


До этого ещё не дошёл. Как это можно проверить?


автор
формирую хэш-сумму тэга Body.


Вот это - сохранить в файл, сделать ЭП, проверить, например, через КриптоАРМ.

Далее - корректные ли данные подписываются (из Body).
6 июн 18, 18:21    [21473705]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Еще можно почитать\поискать по ключевым словам (имена функций) на специализированных форумах.

Например, КРИПТО-ПРО.
6 июн 18, 18:22    [21473710]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken
sql2012
Не судьба запросить у ОС по имени CSP его тип? Он разве 1 ... ?
Подбирать можно долго, как и путать алгоритмы хеширования и подписи...


1. А как это сделать?
2. Да, согласен, мой косяк. Увидел знакомые цифирки в идентификаторе 34.10-2001, обрадовался и подставил, не обратив внимания, за что он отвечает.



Запросить информацию для используемого сертификата

CertGetCertificateContextProperty(Certificate, CERT_KEY_PROV_INFO_PROP_ID, KeyInfo, pcbData)

в KeyInfo будет информация:
автор
CRYPT_KEY_PROV_INFO = record
pwszContainerName: LPWSTR;
pwszProvName: LPWSTR;
dwProvType: DWORD;
dwFlags: DWORD;
cProvParam: DWORD;
rgProvParam: PCRYPT_KEY_PROV_PARAM;
dwKeySpec: DWORD;
end;
6 июн 18, 18:36    [21473741]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,
благодарю за советы. Проверка показала, что данные неправильно подписываются. Потихоньку разбираюсь.
8 июн 18, 10:24    [21478204]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
GreyGoblin
Member

Откуда:
Сообщений: 1
Anvig, если еще проблема не решена, то попробуйте развернуть байты iv перед установкой его в начале пакета данных.
27 июн 18, 14:43    [21525323]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
tkolomiets
Member

Откуда:
Сообщений: 6
Кому интересно, выложил архив с вызовом сервиса ФСС шифрованного.
Так же промаялся, таки победил. Тут, вроде как размер ограничен для аттачей, кидаю ссыль на форум крипто-про, там в 8 посте архив
https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=14192
17 июл 18, 10:43    [21576968]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
tkolomiets
Member

Откуда:
Сообщений: 6
https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=93288#post93288
ссыль на пост
17 июл 18, 10:44    [21576975]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Удалось разобраться с технической частью, сформировать корректный запрос и отправить его. Теперь, как водится, идут нюансы, над которыми подозреваю, придётся серьёзно попотеть.

Допустим ЭЦП формируется сертификатом с таким алгоритмом подписи: ГОСТ Р 34.11-2012/34.10-2012 256 бит и таким хэш-алгоритмом подписи: ГОСТ Р 34.11-2012 256 бит. В этом случае, в блоке SignedInfo будет такая запись:
<SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/>
...
<DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/>

Если же ЭЦП формируется сертификатом вот с такими параметрами:
Алгоритм подписи: ГОСТ Р 34.11/34.10-2001
Хэш-алгоритм подписи: ГОСТ Р 34.11-94

То в блоке SignedInfo будет уже такая структура:

<SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/>
...
<DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/>

И сейчас я пытаюсь найти, где эти параметры зашиты, чтобы при формировании запроса их корректно подставлять.
13 авг 18, 12:56    [21640251]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Док
Member

Откуда: Казань
Сообщений: 5982
Shuraken,

хорошо бы опыт в бложике каком выложить. Я бы себе заныкал...
13 авг 18, 17:40    [21640912]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Док,
так он уже давно выложен на форуме криптопро. Посмотрите предыдущие сообщения в теме.
14 авг 18, 11:06    [21641483]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Док
Member

Откуда: Казань
Сообщений: 5982
Shuraken
Посмотрите предыдущие сообщения в теме.

а-а-а, точно, запамятовал :)
14 авг 18, 18:18    [21642290]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Столкнулся с такой непонятной для меня ситуацией. Установил несколько тестовых сертификатов от КриптоПро, чтобы проверить корректность наложения ЭЦП. В одном сертификате такие параметры:
Алгоритм подписи: ГОСТ Р 34.11-2012/34.10-2012 256 бит
Хэш-алгоритм подписи: ГОСТ Р 34.11-2012 256 бит
Открытый ключ: ГОСТ Р 34.11-2012 512 бит

В другом
Алгоритм подписи: ГОСТ Р 34.11-2012/34.10-2012 256 бит
Хэш-алгоритм подписи: ГОСТ Р 34.11-2012 256 бит
Открытый ключ: ГОСТ Р 34.11-2012 256 бит

Я сперва посчитал, что раз в обоих случаях алгоритм подписи и хэш-алгоритм подписи одинаковы, то для формирования хэша будет использоваться один и тот же алгоритм - CALG_GR3411_2012_256 (32801). Ага, щаз. В случае использования второго сертификата с открытым ключом на 256 бит это было справедливо. А вот для сертификата с открытым ключом в 512 бит опытным путём удалось установить, что надо использовать другой алгоритм - CALG_GR3411_2012_512 (32802). Тогда всё накладывается корректно и запрос получается правильным.
И я сейчас пытаюсь понять, как программно вытащить информацию о правильном хэш-алгоритме.

  repeat
    pCertContext := CertEnumCertificatesInStore(hStoreHandle, pCertContext);
    if (pCertContext <> nil) then
    begin
      pSignerCert := CertDuplicateCertificateContext(pCertContext);
      if not CertGetCertificateContextProperty(pCertContext, CERT_KEY_PROV_INFO_PROP_ID, nil, @cbSize) then
        continue;
      if (cbSize < 1) then
        continue;
      GetMem(pInfo, cbSize);
      CertGetCertificateContextProperty(pCertContext, CERT_KEY_PROV_INFO_PROP_ID, pInfo, @cbSize);
      // из pInfo запоминаю pInfo^.pwszProvName и pInfo^.dwProvTyp
     // алгоритм пытаюсь вытащить так
     pOidInfo := CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY, PChar(pSignerCert^.pCertInfo.SignatureAlgorithm.pszObjId), 0);
     AlgID := CertOIDToAlgId(pOidInfo^.pszOID); // получаю CALG_GR3411_2012_256 (32801) сам pszOID = 1.2.643.7.1.1.3.2
     pOidInfo := CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY, PChar(pSignerCert^.pCertInfo.SubjectPublicKeyInfo.Algorithm.pszObjId), 0);
     // здесь у pOidInfo pszOID = 1.2.643.7.1.1.1.2, что соответствует группе { CRYPT_PUBKEY_ALG_OID_GROUP_ID  } и константе в ней szOID_CP_GOST_R3410_12_512 (взято из wincryptex)
     AlgID := CertOIDToAlgId(pOidInfo^.pszOID); // получаю CALG_GR3410_12_512 (11837) а надо CALG_GR3411_2012_512 (32802)
    // запоминаю нужные данные
    ....
  until (pCertContext = nil);

И я понимаю, что ищу не то, что надо искать данные именно для хэш-алгоритма, но при этом не могу понять, какими процедурами это можно сделать, используя контекст конкретного сертификата. Подскажите пожалуйста.
С уважением, Александр.
17 авг 18, 10:46    [21645600]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Также столкнулся с ситуацией, что не работает формирование ЭЦП в Windows 10

type
  TByteArray = array of Byte;

function TfrmSignatureFromCertificate.GetSignature(CanonText: string;
  Cert: PCCERT_CONTEXT; AlgID: integer): string;

var
  Prov: HCRYPTPROV;
  Hash: HCRYPTHASH;
  BufLen: DWORD;
  keySpec: DWORD;
  callerFree: BOOL;
  sigData, reversedData: TByteArray;

  function ReversedBytes(const ABytes: TByteArray): TByteArray;
  var
    I: Integer;
    P: Windows.PByte;
  begin
    SetLength(Result, Length(ABytes));
    P := Windows.PByte(Result);
    for I := Length(ABytes) - 1 downto 0 do
    begin
      P^ := ABytes[I];
      Inc(P);
    end;
  end;

begin
  Result:='';
  KeySpec := 0;

  if (not CryptAcquireCertificatePrivateKey(Cert,
    CRYPT_ACQUIRE_COMPARE_KEY_FLAG, nil, @Prov, @keySpec, @callerFree)) or (not callerFree) then
  begin
    raise Exception.Create('CryptAcquireCertificatePrivateKey');
  end;

  CryptCreateHash(Prov, algID, nil, 0, @Hash);
  CryptHashData(Hash, PByte(CanonText), Length(CanonText), 0);
  BufLen:=0;
  CryptSignHash(Hash,keySpec,nil,0,nil,@BufLen); // и вот здесь получаю отлуп. BufLen = 0;
  if BufLen>0 then
  begin
    SetLength(sigData, BufLen);
    CryptSignHash(Hash,keySpec,nil,0, PByte(sigData),@BufLen);
  end;
  ReversedData := ReversedBytes(sigData);
  SetLength(Result, BufLen);
  Move(PByte(ReversedData)^, PByte(Result)^, BufLen);
  CryptDestroyHash(Hash);
  CryptReleaseContext(Prov,0);
end;


На версиях ниже 10 всё работает нормально. Подскажите, в чём может быть дело?
20 авг 18, 17:09    [21648446]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

GetLastError для CryptHashData что-то же сообщает?
На ошибки проверки кто будет писать?

p.s. raise Exception.Create - сильно... GetLastError не угодил?
20 авг 18, 22:49    [21648731]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,

CryptHashData - всё нормально. Пробовал и GetLastError - возвращает "Неправильный вызов функции" на CryptSignHash. При этом на других версиях винды всё нормально.

Exception.Create ставил для отладки, чтобы видеть, в каких функциях происходили ошибки. Так их быстрее отыскивать.
21 авг 18, 10:40    [21649053]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

по-твоему должны все гадать, что у тебя там в переменных?

CSP какой?
21 авг 18, 12:42    [21649309]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,

CSP - Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
AlgID - CALG_GR3411 (32798)

Тот же результат и для
CSP - Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
AlgID - CALG_GR3411_2012_256 (32801)
21 авг 18, 13:40    [21649468]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

CryptSignHash - второй параметр - "за что отвечает" и почему прошит в коде 0?

пример:
https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=91520#post91520



p.s.
Если пишешь на форуме КРИПТО-ПРО и чтобы там отвечали - пиши с проверкой результата каждой функции
+ код ошибки.
21 авг 18, 19:19    [21649914]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,

Он проинициализирован в ноль. После вызова функции CryptAcquireCertificatePrivateKey он принимает значение 1 - AT_KEYEXCHANGE. За ссылку спасибо.
...
Немного подправил, всё равно та же самая ошибка на Windows 10 - "Неверный вызов функции". Такое чувство, что подписывание на Windows 10 осуществляется как-то по-другому, чем на других версиях.
22 авг 18, 10:57    [21650415]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken
sql2012,

Он проинициализирован в ноль. После вызова функции CryptAcquireCertificatePrivateKey он принимает значение 1 - AT_KEYEXCHANGE. За ссылку спасибо.
...
Немного подправил, всё равно та же самая ошибка на Windows 10 - "Неверный вызов функции". Такое чувство, что подписывание на Windows 10 осуществляется как-то по-другому, чем на других версиях.


Код ошибки?
22 авг 18, 22:58    [21651310]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

сборка CSP какая? последняя?
22 авг 18, 23:00    [21651311]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,
Разобрались. Дело было не в версии Windows и не в моей программе. Просто истекла лицензия. Продлили и всё заработало.
27 авг 18, 10:09    [21654610]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
обычно:
0x8007065b (1627) - Ошибка исполнения функции

+ периодически CSP показывает диалог на ввод лицензии, если не вызывать явно в silent-режиме.
27 авг 18, 15:16    [21655092]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
fssinfected
Member

Откуда:
Сообщений: 3
Коллеги, сталкивались ли вы на тестовом контуре https://docs-test.fss.ru/ws-insurer-crypto-v11/FileOperationsLnPort с ошибкой:

ru.ibs.cryptoprto.jcp.wrapper.eln.ws.client.generated.CryptoException_Exception: The prefix "soapenv" for element "soapenv:Body" is not bound. class org.apache.xml.security.encryption.XMLEncryptionException

На просто подписанное сообщение без шифрования сервис https://docs-test.fss.ru/ws-insurer-v11/FileOperationsLnPort отвечает нормально. При попытке использовать с шифрованием вот такая проблема, на стороне ФСС расшифрование проходит, а дальше вот такая история с пространством имён...

Куда бы вы копали?
29 окт 18, 11:59    [21717835]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
fssinfected
Member

Откуда:
Сообщений: 3
Еще одна жертва этих же граблей:



истина где-то рядом :)
1 ноя 18, 10:52    [21721203]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
fssinfected
Member

Откуда:
Сообщений: 3
Уппс, ссылку неправильно вставил: http://www.cyberforum.ru/web-services-wcf/thread1807834.html
1 ноя 18, 10:55    [21721207]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Anatole
Member

Откуда:
Сообщений: 3
maratvg,

Добрый день. Вам удалось использовать библиотеку из состава arm_fss? Я пытался вызвать ее на C#, но получаю error exception.
20 ноя 18, 13:19    [21739035]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
Anatole,

Про шарп сказать ничего не могу. Подключал к делфи. Всё работало
21 ноя 18, 06:41    [21739645]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Anatole
Member

Откуда:
Сообщений: 3
maratvg,

а могли бы показать, как Вы реализовали эти вызовы в delphi. м.б. скинете фрагмент кода напрямую abakkav@yandex.ru
21 ноя 18, 09:27    [21739703]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
Anatole,

1. сгенерить из GostCryptography.dll GostCryptography_TLB.pas (TlbExp.exe, tlibimp.exe).
2. в GostCryptography_TLB.pas будут созданы классы TGostEncryptSOAP, TGostDecryptSOAP, которые собственно и использовались.
+ для примера
function EncryptSOAP(const ASignedXml: WideString; const ACertName: string): WideString;
var
  GostEncryptSOAP: TGostEncryptSOAP;
begin
  GostEncryptSOAP := TGostEncryptSOAP.Create(nil);
  try
    GostEncryptSOAP.Connect;
    Result := GostEncryptSOAP.encryptMsg(CP_GR3410_2001_PROV_A, ACertName, ASignedXml);
  finally
    GostEncryptSOAP.Free;
  end;
end;
21 ноя 18, 15:15    [21740223]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Anatole
Member

Откуда:
Сообщений: 3
maratvg,

Спасибо, за разъяснение, идея понятна.
Примерно тоже самое пытался делать и я, но наконец-то понял, что Вы говорите о библиотеке для организации страхователя (из arm_fss), а я пытаюсь использовать библиотека для медицинской организации (из fss_mo). Возможно, здесь какие-то нюансы. Буду пытаться пробиться дальше.

Да, еще вопрос, a aCertName - это "Фонд социального страхования Российской Федерации" или имя файла *.cer
22 ноя 18, 07:39    [21740768]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
aCertName - это "Фонд социального страхования Российской Федерации". , т.е. то самое имя, которое прописано в сертификате.
22 ноя 18, 13:09    [21741211]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
maratvg,

А Вы не могли бы выложить сюда, или прислать мне на почту GostCryptography_tlb.pas? Дело в том, что у меня не получается сгенерировать его с помощью tlibimp из ARM_FSS\GostCryptography.dll - выдаёт ошибку. При этом, когда я пытаюсь посмотреть "внутренности" длл-ки с помощью tdump.exe, то не вижу в нём нужного функционала.
+
Turbo Dump Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
Display of File GOSTCRYPTOGRAPHY.DLL

Old Executable Header

DOS File Size 31400h (201728. )
Load Image Size 450h ( 1104. )
Relocation Table entry count 0000h ( 0. )
Relocation Table address 0040h ( 64. )
Size of header record (in paragraphs) 0004h ( 4. )
Minimum Memory Requirement (in paragraphs) 0000h ( 0. )
Maximum Memory Requirement (in paragraphs) FFFFh ( 65535. )
File load checksum 0000h ( 0. )
Overlay Number 0000h ( 0. )

Initial Stack Segment (SS:SP) 0000:00B8
Program Entry Point (CS:IP) 0000:0000


Portable Executable (PE) File

Header base: 00000080

CPU type 80386
Flags 2102 [ executable linenumbers symbols backwards 32bit library ]
DLL flags 8540 [ ]
Linker Version B.0
Time stamp 56B473B9 : Fri Feb 05 13:04:41 2016
O/S Version 4.0
User Version 0.0
Subsystem Version 4.0
Subsystem 0003 [ Windows character ]
Object count 00000003
Symbols offset 00000000
Symbols count 00000000
Optional header size 00E0
Magic # 10B
Code size 00030C00
Init Data size 00000600
Uninit Data size 00000000
Entry RVA 00032B7E
Image base 10000000
Code base 00002000
Data base 00034000
Object/File align 00002000/00000200
Reserved 00000000
Image size 00038000
Header size 00000200
Checksum 00000000
Stack reserve/commit 00100000/00001000
Heap reserve/commit 00100000/00001000
Number interesting RVAs 00000010
Name RVA Size
------------------ -------- --------
Exports 00000000 00000000
Imports 00032B2C 0000004F
Resources 00034000 00000328
Exceptions 00000000 00000000
Security 00000000 00000000
Fixups 00036000 0000000C
Debug 000329F4 0000001C
Description 00000000 00000000
Global Ptr 00000000 00000000
TLS 00000000 00000000
Callbacks 00000000 00000000
Bound Imports 00000000 00000000
Import Addr Table 00002000 00000008
Delayed Imports 00000000 00000000
COM Runtime 00002008 00000048
reserved 00000000 00000000

Object table:
# Name VirtSize RVA PhysSize Phys off Flags
-- -------- -------- -------- -------- -------- --------
01 .text 00030B84 00002000 00030C00 00000200 60000020 [CER]
02 .rsrc 00000328 00034000 00000400 00030E00 40000040 [IR]
03 .reloc 0000000C 00036000 00000200 00031200 42000040 [DIR]

Key to section flags:
C - contains code
D - discardable
E - executable
I - contains initialized data
R - readable

******************************************************************************
Section: Import
ImportLookUpTblRVA:00032B54
Time Stamp: 00000000
Forwarder Chain: 00000000 (index of first forwarder reference)

Imports from mscoree.dll
_CorDllMain

******************************************************************************
Section: Resources
Flags: 00000000
Time Stamp: 00000000
Major Version: 0000
Minor Version: 0000

Resources:
Type Name Lang Id
--------------------------------------------
[0 named entries, 1 ID entries]
type: Version (16) (next directory @00000018)

[0 named entries, 1 ID entries]
type: Cursor (1) (next directory @00000030)

[0 named entries, 1 ID entries]
type: Unknown (0) (data @00000048)
Offset: 00034058
Size: 000002D0
Code Page: 00000000
Reserved: 00000000



3 дек 18, 10:26    [21751800]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
Shuraken,

Видимо вы пропустили первый шаг: TlbExp.exe
4 дек 18, 08:03    [21752561]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
maratvg,

Нет, не забыл, там тоже ошибка
TlbExp : error TX0000 : Невозможно загрузить файл или сборку "file:///C:\FSSRF\A
RM_FSS\gostcryptography.dll" или один из зависимых от них компонентов. Сборка со
здана в более поздней версии среды выполнения чем текущая, и не может быть загру
жена.
4 дек 18, 12:43    [21752796]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
Shuraken,

Нужно версию SDK более свежую

+
D:\GostCryptography>ft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\TlbExp.exe" D:\GostCryptography\GostCryptography.dll
Microsoft (R) .NET Framework Assembly to Type Library Converter 4.6.1055.0
Copyright (C) Microsoft Corporation. All rights reserved.

Assembly exported to 'D:\GostCryptography\GostCryptography.tlb'

D:\GostCryptography>rogram Files\Microsoft SDKs\Windows\v7.1\Bin\TlbExp.exe" D:\GostCryptography\GostCryptography.dll
Microsoft (R) .NET Framework Assembly to Type Library Converter 3.5.30729.1
Copyright (C) Microsoft Corporation. All rights reserved.

TlbExp : error TX0000 : Невозможно загрузить файл или сборку "file:///D:\GostCryptography\GostCryptography.dll" или один
из зависимых от них компонентов. Сборка создана в более поздней версии среды выполнения чем текущая, и не может быть за
гружена.
4 дек 18, 14:45    [21752991]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
maratvg,

Огромное спасибо, установил.
4 дек 18, 15:26    [21753093]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
maratvg,

правда, там описание функционала отличается от того, что написали Вы. Можете объяснить назначение pSenderCertName (function encryptMsg(const pProvName: WideString; const pCertName: WideString;
const pSenderCertName: WideString; const pSOAPMsg: WideString): WideString;)?
На всякий случай прилагаю архив с моим сгенерированным pas-файлом.

К сообщению приложен файл (GostCryptography.rar - 12Kb) cкачать
4 дек 18, 17:15    [21753412]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
С этим разобрался - взял GostCryptography из папки FssTools, а не ARM_FSS. Правда, теперь там другая проблема: сообщение "Операция не может быть выполнена с текущим ключом", после чего слетают все настройки хранилища сертификатов и приходится перезагружать компьютер. Так что всё весело.
5 дек 18, 11:55    [21754098]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
Shuraken,

Работал только со старой длл-кой, сейчас нет надобности, поэтому что там поменялось не слежу.
5 дек 18, 14:35    [21754421]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken
С этим разобрался - взял GostCryptography из папки FssTools, а не ARM_FSS. Правда, теперь там другая проблема: сообщение "Операция не может быть выполнена с текущим ключом", после чего слетают все настройки хранилища сертификатов и приходится перезагружать компьютер. Так что всё весело.


Через CSP контейнер (по сертификату) тестируется без проблем?
5 дек 18, 19:35    [21754872]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,

в смысле, нормально ли подписывается и принимается ФСС? Да, там всё нормально, но реализовано не через GostCryptography.
6 дек 18, 10:07    [21755402]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Очередные грабли с ЭЛН по ФСС. На сей раз шифрование.
Подписанные запросы на получение и отправку данных без проблем обрабатываются тестовым сервером ФСС. Работаю над шифрованием. Вот с ним и возникла проблема.
За основу взял готовый код tkolomiets Электронный больничный ЭЛН. Допилил его под Делфи 7, на которой работаю и стал пробовать шифровать и отсылать на тестовый сервер ФСС. В результате всё время возникает ошибка

ru.ibs.cryptoprto.jcp.wrapper.eln.ws.client.generated.CryptoException_Exception: Не удалось расшифровать сообщение. Возможно сообщение зашифровано на ключе отличном от ключа уполномоченного лица ФСС. Проверьте правильность и актуальность ключа уполномоченного лица ФСС.

С сертификатами всё в порядке, с криптопровайдером тоже. В чём ошибка, понять не могу. В аттаче образец подписанного сообщения, зашифрованного и код. Буду признателен, если посмотрите и укажете на проблему.

С уважением, Александр.

К сообщению приложен файл (EncryptSignMessage.rar - 29Kb) cкачать
18 дек 18, 16:51    [21767394]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Кто может подсказать аналоги следующих функций для Делфи 7?

TNetEncoding.Base64.EncodeBytesToString
TEncoding.Ansi.GetString
TNetEncoding.Base64.DecodeStringToBytes
TEncoding.Default.GetBytes

А то наткнулся на них в аттаче по подписанию и шифрованию ЭЛН, и не уверен, что правильно подобрал аналоги.
19 дек 18, 20:04    [21768838]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
rgreat
Member

Откуда:
Сообщений: 4693
Shuraken,

К сообщению приложен файл (Base64.pas - 7Kb) cкачать
19 дек 18, 20:14    [21768848]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
alekcvp
Member

Откуда:
Сообщений: 1268
rgreat,

Во-первых, это плохой юнит, уже разбирали.

procedure Base64Encode(const InBuffer; InSize: Cardinal; var OutBuffer); register; overload;
var
  ByThrees, LeftOver: Cardinal;
asm
  mov ESI, [EAX]
  mov EDI, [ECX]
  mov EAX, EBX // <<-- что за значение тут в EBX ?..
  mov ECX, $03
  xor EDX, EDX
  div ECX
  mov ByThrees, EAX 
  ...


Во-вторых, в дельфи есть родной: 2009-XE - EncdDecd.pas, XE2+ - Soap.EncdDecd.pas и ещё вот это.

В-третьих, если родной не нравится можно из какого-нибудь synops'а взять.
19 дек 18, 20:48    [21768884]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
alekcvp
rgreat,

во-вторых, в дельфи есть родной: 2009-XE - EncdDecd.pas, XE2+ - Soap.EncdDecd.pas и ещё вот это.

В-третьих, если родной не нравится можно из какого-нибудь synops'а взять.


Я говорил о Делфи 7. В нём да, есть encddecd, и честно говоря, не совсем понял, как соотнести его
procedure EncodeStream(Input, Output: TStream);
procedure DecodeStream(Input, Output: TStream);
function EncodeString(const Input: string): string;
function DecodeString(const Input: string): string;

с тем, что я написал

TNetEncoding.Base64.EncodeBytesToString
TEncoding.Ansi.GetString
TNetEncoding.Base64.DecodeStringToBytes
TEncoding.Default.GetBytes
19 дек 18, 23:26    [21768991]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
alekcvp
Member

Откуда:
Сообщений: 1268
Shuraken
Я говорил о Делфи 7. В нём да, есть encddecd, и честно говоря, не совсем понял, как соотнести его

TNetEncoding.Base64.EncodeBytesToString
TEncoding.Ansi.GetString
TNetEncoding.Base64.DecodeStringToBytes
TEncoding.Default.GetBytes


Base64:

uses
  EncdDecd;

const
  Data = 'PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8c3RyaW5nPtiq2LPYqjwvc3RyaW5nPg==';

var
  bin: string;

begin
  bin := DecodeString(Data); //  в bin - двоичные данные
  ...

А вот вместо TEncoding, скорее всего, придётся писать свою обёртку над MultiByteToWideChar и WideCharToMultiByte.
20 дек 18, 11:28    [21769279]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
alekcvp
Member

Откуда:
Сообщений: 1268
alekcvp
А вот вместо TEncoding, скорее всего, придётся писать свою обёртку над MultiByteToWideChar и WideCharToMultiByte.

Ну или так (не проверял):
var
  ansi: string;
  def: widestring;
begin
  ansi := 'это кодировка винды (обычно 1251)';
  def := widestring(ansi); // в def теперь unicode
  ...
20 дек 18, 11:33    [21769283]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3032
Обертки, что бы долго не мучатся (взяты из JCL):

function StringToWideStringEx(const S: ansistring; CodePage: word): WideString;
var
 InputLength, OutputLength: NativeInt;
begin
 InputLength  := Length(S);
 OutputLength := MultiByteToWideChar(CodePage, 0, PAnsiChar(S), InputLength, nil, 0);
 SetLength(Result, OutputLength);
 MultiByteToWideChar(CodePage, 0, PAnsiChar(S), InputLength, PWideChar(Result), OutputLength);
end;

function WideStringToStringEx(const WS: WideString; CodePage: word): ansistring;
var
 InputLength, OutputLength: NativeInt;
begin
 InputLength  := Length(WS);
 OutputLength := WideCharToMultiByte(CodePage, 0, PWideChar(WS), InputLength, nil, 0, nil, nil);
 SetLength(Result, OutputLength);
 WideCharToMultiByte(CodePage, 0, PWideChar(WS), InputLength, PAnsiChar(Result), OutputLength, nil, nil);
end;
20 дек 18, 12:35    [21769369]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
alekcvp
А вот вместо TEncoding, скорее всего, придётся писать свою обёртку над MultiByteToWideChar и WideCharToMultiByte.


А функции из этого файла подойдут?

К сообщению приложен файл (Encoding.rar - 12Kb) cкачать
20 дек 18, 13:51    [21769500]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Друзья, прошу помощи с расшифровкой.
Мне удалось отправить сообщение в ФСС и получить зашифрованный ответ. Теперь бьюсь над расшифровкой. Сначала попробовал сделать через GostCryptography.dll, указывая тип провайдера из сертификата, которым подписывал сообщение
procedure TEncodeDecodeFSS(ProvCSP: string; EncryptMessage: string);
begin
    GostSoap := TGostDecryptSOAP.Create(Self);
    try
      GostSoap.Connect;
      try
          mSignature.Lines.Text := GostSoap.decryptMsg(ProvCSP, EncryptMessage);
      finally
        GostSoap.Disconnect;
      end;
    finally
      FreeAndNil(GostSoap);
    end;
end;

получаю ошибку "Данные шифра не указаны".

Попробовал по другому, застрял на ошибке "Плохие данные":

    CheckCryptoCall(CryptGetUserKey(ACryptoProvider, AT_KEYEXCHANGE, @hPrivateKey));
//    CheckCryptoCall(CryptAcquireCertificatePrivateKey(rec^.Cert, CRYPT_ACQUIRE_COMPARE_KEY_FLAG, nil, @hPrivateKey, @keySpec, @callerFree));

    // Формирование BLOB-ов публичного и сессионного ключей ФСС на основе зашифрованного ключа из ответа ФСС
    GetResponseKeysBlobs(ASOAPResponse, remotePublicKeyBlob, remoteSessionKeyBlob);

    // Получение ключа согласования импортом открытого ключа ФСС (отправителя)
    // на локальном закрытом ключе (получателя).
    // ошибка происходит здесь
    CheckCryptoCall(CryptImportKey(ACryptoProvider, @remotePublicKeyBlob[0], Length(remotePublicKeyBlob), hPrivateKey, 0, @hAgreeKey));

при этом подозреваю, что ошибку допустил где-то здесь:

procedure TfrmSignatureFromCertificate.GetResponseKeysBlobs(
  ASOAPResponse: IXMLDocument; out APublicKeyBlob,
  ASessionKeyBlob: TByteArray);

const OpenPublicKeyBlob: array[0..35] of byte =
      ($06,       // bType = PUBLICKEYBLOB
       $20,       // bVersion = 0x20
       $00, $00,
       $23, $2E, $00, $00, // KeyAlg = ALG_SID_GR3410EL
       $4D, $41, $47, $31, //Magic = GR3410_1_MAGIC
       $00, $02, $00, $00, // BitLen = 512
       // bASN1GostR3410_94_PublicKeyParameters
       $30, $12,
       $06, $07 ,
       $2A, $85, $03, $02, $02, $24, $00,
       $06, $07,
       $2A, $85, $03, $02, $02, $1E, $01);

  trBlob:  array[1..71] of byte =
  ($01, $20, $00, $00, $1E, $66, $00, $00,
   $FD, $51, $4A, $37, $1E, $66, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, // ключ
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
   $30, $09, $06, $07,
   $2A, $85, $03, $02, $02, $1F, $01); // UKM (157,8)
var
  i: integer;
  transportNode: IXMLNode;
  transport, publicKey, sessionKey,
  sessionSV, sessionMAC: TByteArray;
  trText: string;
  enc: TUTF8Encoding;
begin
  try
    transportNode := ASOAPResponse.DocumentElement
                     .ChildNodes[1]  // Body
                     .ChildNodes[0]  // EncryptedData
                     .ChildNodes[1]  // KeyInfo
                     .ChildNodes[0]  // EncryptedKey
                     .ChildNodes[2]  // CipherData
                     .ChildNodes[0]; // CipherValue

 //изначальный код
{    transport := TNetEncoding.Base64.DecodeStringToBytes(transportNode.Text);}
//мои переделки под Delphi7
    enc := TUTF8Encoding.Create;
    try
      transport := TByteArray(enc.GetBytes(transportNode.Text));
      trText := Q_Base64Decode(enc.GetString(TBytes(transport)));
    finally
      FreeAndNil(enc);
    end;
    SetLength(transport, length(trText));
    system.Move(Windows.PByte(trText)^, Pointer(transport)^, length(trText));

    publicKey := Copy(transport, 93, 64);
    sessionKey := Copy(transport, 7, 32);
    sessionMAC := Copy(transport, 41, 4);
    sessionSV := Copy(transport, 159, 8);

//изначальный код
{    APublicKeyBlob := 
      [
       $06,       // bType = PUBLICKEYBLOB
       $20,       // bVersion = 0x20
       $00, $00,
       $23, $2E, $00, $00, // KeyAlg = ALG_SID_GR3410EL
       $4D, $41, $47, $31, //Magic = GR3410_1_MAGIC
       $00, $02, $00, $00, // BitLen = 512
       // bASN1GostR3410_94_PublicKeyParameters
       $30, $12,
       $06, $07 ,
       $2A, $85, $03, $02, $02, $24, $00,
       $06, $07,
       $2A, $85, $03, $02, $02, $1E, $01
      ] + publicKey;



    // сборка SessionKey BLOB из статической части и параметров сессионного ключа
    ASessionKeyBlob :=
    [
     $01, // bType = SIMPLEBLOB
     $20, // bVersion = 0x20
     $00,$00 ,
     $1E,$66 ,$00 ,$00, // KeyAlg = CALG_G28147
     $FD,$51 ,$4A ,$37, // Magic = G28147_MAGIC
     $1E,$66 ,$00 ,$00] // EncryptKeyAlgId = CALG_G28147
     + sessionSV + sessionKey + sessionMAC +
    [// ASN.1 Sequence + OID Header
       $30 ,$09 ,$06 ,$07,
     // OID_GOST_R28147_89_CryptoPro_A_ParamSet 1.2.643.2.2.31.1
     $2A ,$85 ,$03 ,$02 ,$02 ,$1F ,$01
    ];   }
//мои переделки под Delphi7
    SetLength(APublicKeyBlob, 100);
    for i := 0 to 35 do
      APublicKeyBlob[i] := OpenPublicKeyBlob[i];
    for i := 1 to 64 do
      APublicKeyBlob[i + 35] := publicKey[i];
    setLength(ASessionKeyBlob, 134);
    for i := 1 to 71 do
      ASessionKeyBlob[i] := trBlob[i];
    for i := 1 to 8 do
      ASessionKeyBlob[i+16] := sessionSV[i];
    for i := 1 to 32 do
      ASessionKeyBlob[i+24] := sessionKey[i];
    for i := 1 to 4 do
      ASessionKeyBlob[i+56] := sessionMAC[i];
  finally
    SetLength(sessionSV, 0);
    SetLength(sessionMac, 0);
    SetLength(sessionKey, 0);
    SetLength(publicKey, 0);
    SetLength(transport, 0);
  end;
end;


У кого стоит Embarcadero, проверьте пожалуйста, какой результат возвращает функция TNetEncoding.Base64.DecodeStringToBytes(transportNode.Text);
Если ей на вход поступает вот такое значение (CipherValue):
MIGkMCgEINMuXESbgvBOY8udqVlHxbfpPgcKAS5Ew6HTwpGhz269BASOb6SYoHgGByqFAwICHwGgYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAZMGkZ+ODNscutZgYgesDlGkN5AiubvNOhdJOaIZK+QRoVkMZnq22foPv660Khhs9zj5BTwx5u1HOITYmgEj1fwQIkfNcLhh/iDk=

С уважением, Александр.
24 дек 18, 11:11    [21771827]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
maratvg
в GostCryptography_TLB.pas будут созданы классы TGostEncryptSOAP, TGostDecryptSOAP, которые собственно и использовались.
+ для примера
function EncryptSOAP(const ASignedXml: WideString; const ACertName: string): WideString;
var
  GostEncryptSOAP: TGostEncryptSOAP;
begin
  GostEncryptSOAP := TGostEncryptSOAP.Create(nil);
  try
    GostEncryptSOAP.Connect;
    Result := GostEncryptSOAP.encryptMsg(CP_GR3410_2001_PROV_A, ACertName, ASignedXml);
  finally
    GostEncryptSOAP.Free;
  end;
end;


Если несложно, приведите пожалуйста, пример расшифровки. Для шифрования Ваш код подошёл, но пока не могу понять, как расшифровывать. Делаю так, подставляя разные параметры в decryptMsg, но каждый раз выходит одна и та же ошибка "Данные шифра не указаны".
    GostSoap := TGostDecryptSOAP.Create(Self);
    try
      GostSoap.Connect;
      try
        soapRequestDoc := LoadXMLDocument('FSSEncryptXML.xml');
        try
          decryptMessage := GostSoap.decryptMsg(CP_GR3410_2001_PROV_A, soapRequestDoc.DocumentElement.XML);
        finally
          SoapRequestDoc := nil;
        end;
      finally
        GostSoap.Disconnect;
      end;
    finally
      FreeAndNil(GostSoap);
    end;
24 дек 18, 19:42    [21772423]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Ура, удалось разобраться с GostDecryptSOAP. Оказывается, ему надо было "скармливать" не всё сообщение, а лишь EncryptedData с содержимым. Но тут возникла другая проблема. Ошибка исчезла, но расшифровка не происходит. Подаёшь на вход зашифрованное сообщение, и его же получаешь на выходе.
Что самое интересное, вот такой код показывает, что обе функции работают нормально. Подаю на вход подписанный xml, указываю свой сертификат и вижу зашифрованное сообщение, после чего расшифровываю его и вижу исходное сообщение.

  EncSoap := TGostEncryptSOAP.Create(Self);
  try
    EncSoap.Connect;
    try
      EncryptedResponse := EncSoap.encryptMsg(CP_GR3410_2001_PROV_A, CertName, SignedXML);
      mEncryptedResponse.Text := EncryptedResponse;
    finally
      EncSoap.Disconnect;
    end;
  finally
    FreeAndNil(EncSoap);
  end;

  DecSoap := TGostDecryptSOAP.Create(Self);
  try
    DecSoap.Connect;
    try
      DecryptedResponse := DecSoap.decryptMsg(CP_GR3410_2001_PROV_A, EncryptedResponse);
      mDecryptedResponse.Text := DecryptedResponse;
    finally
      DecSoap.Disconnect;
    end;
  finally
    FreeAndNil(DecSoap);
  end;

А вот зашифровав сообщение сертификатом ФСС, ничем расшифровать его не могу. Кто-нибудь может объяснить, с чем это может быть связано.
25 дек 18, 03:11    [21772626]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

для расшифровки нужен закрытый ключ.
25 дек 18, 11:11    [21772747]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,

Это понятно, у меня сертификат с закрытым. Но дело в том, что расшифровка не происходит, если использовать GostDecryptSOAP.decryptMsg(aCertProv, aProvMsg). Первым параметром я указываю провайдера сертификата с закрытым ключом, вторым - ответ, полученный от ФСС. И подав зашифрованные данные на вход, я получаю их же на выходе. И у меня складывается ощущение, что эта функция просто не знает, как расшифровать.
Когда же я это делаю низкоуровневыми функциями, то ломаюсь с ошибкой "Плохие данные" при получении сессионного ключа.

    CheckCryptoCall(CryptGetUserKey(ACryptoProvider, AT_KEYEXCHANGE, @hPrivateKey));

    // Формирование BLOB-ов публичного и сессионного ключей ФСС на основе зашифрованного ключа из ответа ФСС
    GetResponseKeysBlobs(ASOAPResponse, remotePublicKeyBlob, remoteSessionKeyBlob);

    // Получение ключа согласования импортом открытого ключа ФСС (отправителя)
    // на локальном закрытом ключе (получателя)
    CheckCryptoCall(CryptImportKey(ACryptoProvider, @remotePublicKeyBlob[0], Length(remotePublicKeyBlob), hPrivateKey, 0, @hAgreeKey));

    // Установка параметра PRO_EXPORT алгоритма ключа согласования
    keyParam := CALG_PRO_EXPORT;
    CheckCryptoCall(CryptSetKeyParam(hAgreeKey, KP_ALGID, @keyParam, 0));

    // Получение сессионного ключа импортом сессионного ключа ФСС (отправителя) на ключе согласования
    // Вот здесь и происходит ошибка.
    CheckCryptoCall(CryptImportKey(ACryptoProvider, @remoteSessionKeyBlob[0], Length(remoteSessionKeyBlob), hAgreeKey, 0, @hSessionKey));


И я пытаюсь разобраться, что надо подать на вход функции GostDecryptSOAP, чтобы получить расшифрованные данные, и в чём причина ошибки "плохие данные" при работе с низкоуровневыми функциями. В этом я и прошу помочь мне.
В аттаче dll и обёртка для делфи

К сообщению приложен файл (GostCryptography.rar - 79Kb) cкачать
25 дек 18, 11:30    [21772769]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
maratvg
Member

Откуда: 74
Сообщений: 106
Shuraken,

Насколько помню в ответе от ФСС надо подменить их сертификат своим перед расшифровкой. Нашел вот такую процедуру. Попробуйте сделать что-то похожее.

+

function DecryptXml(AXml: IXmlDocument; const AOwnerCertName {это сертификат НАШЕЙ организации}: string): string;
var
  S: string;
  Node: IXmlNode;
begin
  Node := FindPath(AXml, '/SOAP-ENV:Envelope/SOAP-ENV:Body/xenc:EncryptedData/ds:KeyInfo/xenc:EncryptedKey/ds:KeyInfo/ds:X509Data/ds:X509Certificate');
  if Node = nil then
    Exit;
  Node.Text := GetCertCertificate(AOwnerCertName); 
  Node := FindPath(AXml, '/SOAP-ENV:Envelope/SOAP-ENV:Body/xenc:EncryptedData');
  S := Node.XML;
  S := DecryptSOAP(S); // вызов GostDecryptSOAP.decryptMsg
  S := '<?xml version=''1.0'' encoding=''UTF-8''?>' + S;
  Result := S;
end;

// получение сертификата в base64 кодировке по переданному имени сертификата
function GetCertCertificate(const ACertName: string): AnsiString;
var
  Cert: PCCERT_CONTEXT;
begin
  Cert := FindCertificate(ACertName);
  if Cert <> nil then
    try
      Result := EncodeBase64(Cert.pbCertEncoded, Cert.cbCertEncoded);
    finally
      CertFreeCertificateContext(Cert);
    end;
end;
25 дек 18, 14:05    [21772951]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
maratvg
Shuraken,

Насколько помню в ответе от ФСС надо подменить их сертификат своим перед расшифровкой. Нашел вот такую процедуру. Попробуйте сделать что-то похожее.



Спасибо за совет, попробовал, но получил ошибку "плохие данные". Использовал сертификат с закрытым ключом, который по структуре совпадает с сертификатом ФСС. Попробовал другие - та же самая картина. Интересно, а чьим открытым ключом они шифруют ответные сообщения. Я-то предполагал, что они расшифровывают закрытым ключом, берут открытый сертификат из подписи сообщения и шифруют им. И в этом случае в ответном сообщении я увижу открытый ключ своего сертификата. Но нет.
25 дек 18, 15:13    [21773023]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Занятно. Удалось выяснить следующую особенность.
При формировании сообщения внутрь него вкладывается публичный сертификат пользователя. После подписания сообщения оно шифруется сертификатом ФСС и отправляется на их сервер. Там сообщение расшифровывается их закрытым ключом, проверяется ЭЦП и формируется ответное сообщение. В него вкладывается публичный сертификат (по идее, тот же самый, которым я шифровал сообщение), подписывается и шифруется.
Если я правильно понял, шифровать они должны моим публичным сертификатом, взятым из подписанного сообщения. Поправьте, если я не прав. И после отправки я расшифровываю его своим закрытым ключом и обрабатываю.
Так вот особенность заключается в том, что я шифрую сообщение сертификатом ФСС с открытым ключом ГОСТ Р 34.10-2001 (512 bit), вкладывая внутрь свой сертификат с открытым ключом, а тестовый сервер, насколько я понял, шифрует ответное сообщение сертификатом ФСС с открытым ключом ГОСТ Р 34.10-2012 256 бит - по крайней мере, в узле <ds:X509Certificate></ds:X509Certificate> содержится именно он.
И когда я пытаюсь расшифровать данные своим сертификатом, он их расшифровать не может и ошибки не выдаёт.
Когда я подменяю сертификаты в сообщении и пытаюсь их расшифровать - ругается на плохие данные.

И как исправить эту ситуацию?
25 дек 18, 19:48    [21773303]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
maratvg,

благодарю Вас, получился нужный результат. Спасибо также форуму КриптоПро, где объяснили, что ещё надо сделать. Вы всё сказали правильно - действительно в ответе надо подменить их публичный сертификат своим. Но только до того, как отправить зашифрованное сообщение на сервер, надо в нём заменить их публичный сертификат своим, который и будет использоваться для шифрования. В этом случае ответ будет зашифрован моим сертификатом, и GostDecryptSOAP спокойно это расшифрует.
Теперь надо будет выяснить, почему GostDecryptSOAP работает исключительно с сертификатами по гост-2001.
26 дек 18, 16:52    [21774023]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Jornada
Member

Откуда: Санкт-Петербург
Сообщений: 10
Shuraken,
Приветствую. Можно как то лично связаться с Вами? Тоже бьюсь ключами 2012 года. Я там письмо отправил на ваш регистрационный ящик, ответьте плиз..
26 дек 18, 17:31    [21774062]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Jornada,

Shuraken28@yandex.ru
26 дек 18, 21:23    [21774271]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Друзья!
Может кто-нибудь из вас проверить, как работают функции encryptMsg и decryptMsg? Выдают ли ошибку? А то я зарегистрировал типы, пытаюсь вызвать функции шифрования и дешифровки, а мне лезут ошибки. При этом в одной из предыдущих версий длл всё работает нормально. Поскольку здесь стоит ограничение в 150 Кб, выложил архив на яндекс-диск.

С уважением, Александр.

GostCryptography2020.rar
27 дек 18, 18:24    [21775116]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

без тестового проекта... без xml... серьезно?
27 дек 18, 23:36    [21775325]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,

Да, согласен. Вот проект. При запуске загружает список личных сертификатов с открытым ключом по гост-2001, гост-2012 256 бит и гост-2012 512 бит. При нажатии на кнопку "Зашифровать" пытается зашифровать xml из проекта выбранным сертификатом. Я не могу зашифровать сообщение сертификатами с гост-2012, а лишь одним сертификатом с гост-2001. Прошу проверить, будет ли шифроваться сообщение у вас сертификатами с гост-2012.

С уважением, Александр.

К сообщению приложен файл (EncryptMessage.rar - 8Kb) cкачать
28 дек 18, 02:11    [21775370]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

правильно всё сделал?
взял и поставил арм - http://fss.ru/ru/fund/download/55818/
получил тестовые сертификаты
скомпилировал и запустил приложение

2001 - Успешно
2012 - Набор ключей не определен.
2012-Strong - Набор ключей не определен.

для других ключей - выдает разные ошибки (исключения\плохой UID что-то там...)

К сообщению приложен файл. Размер - 36Kb
28 дек 18, 10:32    [21775497]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
sql2012
Member

Откуда: РФ
Сообщений: 656
Shuraken,

если из delphi запускать, падает в asm, потом выдает в итоге: Плохие данные

К сообщению приложен файл. Размер - 37Kb
28 дек 18, 10:39    [21775508]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
sql2012,

да, всё верно. Значит, проблема в их длл. Что самое странное, их арм работает с сертификатом фсс по гост-2012 256, я проверял, и данные нормально загружались. А когда пытаешься это сделать самостоятельно, то лезут ошибки... странно, почему так получается?
28 дек 18, 10:42    [21775512]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Jornada
Member

Откуда: Санкт-Петербург
Сообщений: 10
Shuraken,

Только сегодня в группе ФСС писали, что брали DLL не из состава их ПО, а версию с гитхаба рахработчика. Тот вариант работает с сертификатом ФСС 2012 года
28 дек 18, 19:37    [21776026]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Jornada
...брали DLL не из состава их ПО, а версию с гитхаба рахработчика.

А можно ссылочку?
29 дек 18, 19:47    [21776604]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Пытаюсь разобраться с GostCryptography. Скачал версию с гитхаба разработчика: GostCryptography, батником собираю, получаю dll (во вложении). Пытаюсь regasm-ом зарегистрировать - пишет "ни одного типа не найдено". TlbExp создаёт GostCryptography.tlb, но он пустой (также во вложении).
Версия DLL (gostcryptography2020.dll во вложении), поставляемая с АРМ ФСС совпадает по номеру с версией разработчика (2.0.2), но больше на 6Кб и весь необходимый функционал у неё есть, который нормально регистрируется, нормально экспортируется в tlb-файл, нормально переводится в Делфи. Но при попытке шифрования через GostEncryptSOAP выдаёт ошибку: ASN.1 encoded byte array contains invalid structure "GostCryptography.ASN1.PKI.GOSTR34102001.GOSTR34102001PublicKeyParameters". При этом ошибка возникает как при использовании сертификата ФСС с открытым ключом по гост-2001, так и с ключом по гост-2012. Стоит КриптоПро и всё.
Что самое интересное, АРМ ФСС этой ошибки не выдаёт и спокойно загружает тестовые данные как на сертификате по гост-2001, так и по гост-2012.

Если несложно, проверьте пожалуйста, какая длл создаётся у вас при использовании версии с сайта разработчика? В ней также, как и у меня, отсутствуют ссылки на используемый функционал?
И такой вопрос: есть ли у кого-нибудь код шифрования сообщения при помощи gostcryptography.dll, но без использования класса GostEncryptSOAP. Если есть, можете поделиться?

С уважением, Александр.
15 янв 19, 12:43    [21785552]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
Подведу свои итоги. Огромное спасибо пользователю tkolomiets и его посту с рабочим кодом Электронный больничный ЭЛН, а также пользователю Jornada, который любезно предоставил транспортную структуру для шифрования и расшифровки по гост-2012. С его разрешения выкладываю её сюда

Транспортная структура для шифрования
transportBlob :=
[$30, $81, $A9, $30, $28, $04, $20] +
       sessionKey +
       [$04, $04] +
       sessionMAC +
       [$A0, $7D,
        $06, $09, $2A, $85, $03, $07, $01, $02, $05, $01, $01,
        $A0, $66,
        $30, $1F,
        $06, $08, $2A, $85, $03, $07, $01, $01, $01, $01,
        $30, $13,
        $06, $07, $2A, $85, $03, $02, $02, $24, $00,
        $06, $08, $2A, $85, $03, $07, $01, $01, $02, $02,
        $03, $43, $00, $04, $40] +
       publicKey +
       [$04, $08] +
       sessionSV;


Для расшифровки ответа, зашифрованного сертификатом с открытым ключом по гост-2012 изменения такие:
    publicKey := Copy(transport, 98, 64);  //   93, 64 открытый ключ отправителя
    sessionKey := Copy(transport, 7, 32);   // 7, 32 зашифрованный сессионный ключ
    sessionMAC := Copy(transport, 41, 4);     // 41, 4 MAC сессионного ключа
    sessionSV := Copy(transport, 164, 8);  // 159, 8  синхропосылка (UKM)

 

APublicKeyBlob :=
        [
       $06,       // bType = PUBLICKEYBLOB
       $20,       // bVersion = 0x20
       $00, $00,
       $23, $2E, $00, $00, // KeyAlg = ALG_SID_GR3410EL
       $4D, $41, $47, $31, //Magic = GR3410_1_MAGIC
       $00, $02, $00, $00, // BitLen = 512
       // bASN1GostR3410_94_PublicKeyParameters
       $30, $13,
        $06, $07, $2A, $85, $03, $02, $02, $24, $00,
        $06, $08, $2A, $85, $03, $07, $01, $01, $02, $02
      ] + publicKey;


ASessionKeyBlob :=
    [
     $01, // bType = SIMPLEBLOB
     $20, // bVersion = 0x20
     $00,$00 ,
     $1E,$66 ,$00 ,$00, // KeyAlg = CALG_G28147
     $FD,$51 ,$4A ,$37, // Magic = G28147_MAGIC
     $1E,$66 ,$00 ,$00] // EncryptKeyAlgId = CALG_G28147
     + sessionSV + sessionKey + sessionMAC +
    [// ASN.1 Sequence + OID Header
       $30 ,$0B ,$06 ,$09,
     // OID_GOST_R28147_89_CryptoPro_A_ParamSet 1.2.643.7.1.2.5.1.1
     $2A ,$85 ,$03 ,$07 ,$01 ,$02 ,$05, $01, $01
    ];


Теперь выкладываю все полезные ссылки для тех, кто будет заниматься этим вопросом в будущем.
ASN редактор. Программа для проверки структуры зашифрованного сообщения. С её помощью легко увидеть, правильно ли сформированы x509certificate, ciphervalue, encryptedmessage зашифрованного сообщения.
Сервер проверки электронной подписи КриптоПро DSS. Незаменимый помощник при проверке корректности ЭЦП.
КриптоПро. Тестовый УЦ для разработчиков. Здесь можно взять тестовые сертификаты с нужными гост-ами.
Шифрование XML через Crypto API - крайне полезная тема для разработчиков на Делфи

Примеры
Подписанный запрос к тестовому контуру с сертификатом по гост-2001
+

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><soapenv:Header><wsse:Security soapenv:actor="http://eln.fss.ru/actor/insurer/3103275205"><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/insurer/3103275205">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</wsse:BinarySecurityToken><ds:Signature><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/><Reference URI="#REGNO_3103275205"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></Transforms><DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/><DigestValue>IvD2Pq9ACPrY8wSLmsuYBwvV/uO6800d1pGkYbGuA8U=</DigestValue></Reference></SignedInfo><ds:SignatureValue>JxA+qB6HtsVpqAuIWNAJ+HxaXPxT4MJYXVUcGn41MonrSGd1oTZ2btsvI0SszpDwIdn2dW4aZzS53oiepUv8/A==</ds:SignatureValue><ds:KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#http://eln.fss.ru/actor/insurer/3103275205" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature></wsse:Security></soapenv:Header><soapenv:Body wsu:Id="REGNO_3103275205"><getPrivateLNData xmlns="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl"><regNum>3103275205</regNum><lnCode>900000002772</lnCode><snils>00000060006</snils></getPrivateLNData></soapenv:Body></soapenv:Envelope>


Ответ на него из ФСС
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><SOAP-ENV:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" S:actor="http://eln.fss.ru/actor/fss/ca/1027739443236"><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/fss/ca/1027739443236">MIIJRDCCCPOgAwIBAgIQAdQ2GMc2z0AAAABhA+gAAjAIBgYqhQMCAgMwggHYMRgwFgYFKoUDZAES
DTEwMjc3Mzk0NDMyMzYxPTA7BgNVBAkMNNCe0YDQu9C40LrQvtCyINC/0LXRgNC10YPQu9C+0Los
INC0LiAzLCDQutC+0YDQvy4g0JAxGjAYBggqhQMDgQMBARIMMDA3NzM2MDU2NjQ3MQswCQYDVQQG
EwJSVTEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQsDEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCw
MR0wGwYJKoZIhvcNAQkBFg5pbmZvLXVjQGZzcy5ydTFnMGUGA1UECgxe0KTQvtC90LQg0YHQvtGG
0LjQsNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3QuNGPINCg0L7RgdGB0LjQudGB0LrQ
vtC5INCk0LXQtNC10YDQsNGG0LjQuDEuMCwGA1UECwwl0KbQtdC90YLRgNCw0LvRjNC90YvQuSDQ
sNC/0L/QsNGA0LDRgjFnMGUGA1UEAwxe0KTQvtC90LQg0YHQvtGG0LjQsNC70YzQvdC+0LPQviDR
gdGC0YDQsNGF0L7QstCw0L3QuNGPINCg0L7RgdGB0LjQudGB0LrQvtC5INCk0LXQtNC10YDQsNGG
0LjQuDAeFw0xODA4MTcxMDU1MDBaFw0xOTA4MTcxMDU1MDBaMIIBojEuMCwGA1UECwwl0KbQtdC9
0YLRgNCw0LvRjNC90YvQuSDQsNC/0L/QsNGA0LDRgjEaMBgGCCqFAwOBAwEBEgwwMDc3MzYwNTY2
NDcxGDAWBgUqhQNkARINMTAyNzczOTQ0MzIzNjFnMGUGA1UECgxe0KTQvtC90LQg0YHQvtGG0LjQ
sNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3QuNGPINCg0L7RgdGB0LjQudGB0LrQvtC5
INCk0LXQtNC10YDQsNGG0LjQuDEzMDEGA1UECQwq0J7RgNC70LjQutC+0LIg0L/QtdGA0LXRg9C7
0L7QuiDQtNC+0LwgM9CwMRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMQswCQYDVQQIDAI3NzEL
MAkGA1UEBhMCUlUxZzBlBgNVBAMMXtCk0L7QvdC0INGB0L7RhtC40LDQu9GM0L3QvtCz0L4g0YHR
gtGA0LDRhdC+0LLQsNC90LjRjyDQoNC+0YHRgdC40LnRgdC60L7QuSDQpNC10LTQtdGA0LDRhtC4
0LgwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAAUyu0lp+U6y5q498v/OHz/wa
GkTJcuaUm5Pq5VLzbQruTuAVlkAtzbUV64Vvh3cFnTgiqyrde55bgGW17eqqNIEJADAzRTgwMDAy
o4IEvDCCBLgwDgYDVR0PAQH/BAQDAgPYMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAd
BgNVHSAEFjAUMAgGBiqFA2RxATAIBgYqhQNkcQIwMgYFKoUDZG8EKQwn0JrRgNC40L/RgtC+0J/R
gNC+IENTUCDQstC10YDRgdC40Y8gNC4wMIIBoAYFKoUDZHAEggGVMIIBkQxv0KHRgNC10LTRgdGC
0LLQviDQutGA0LjQv9GC0L7Qs9GA0LDRhNC40YfQtdGB0LrQvtC5INC30LDRidC40YLRiyDQuNC9
0YTQvtGA0LzQsNGG0LjQuCAo0KHQmtCX0JgpICJWaVBOZXQgQ1NQIDQiDFrQn9GA0L7Qs9GA0LDQ
vNC80L3Ri9C5INC60L7QvNC/0LvQtdC60YEgIlZpUE5ldCDQo9C00L7RgdGC0L7QstC10YDRj9GO
0YnQuNC5INGG0LXQvdGC0YAgNCIMXNCX0LDQutC70Y7Rh9C10L3QuNC1INC+INGB0L7QvtGC0LLQ
tdGC0YHRgtCy0LjQuCDihJYgMTQ5LzMvMi8yLTIwNTIg0L7RgiAyOS4wMS4yMDE0INCz0L7QtNCw
DGTQodC10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQv
MTI4LTI5MzIg0L7RgiAxMCDQsNCy0LPRg9GB0YLQsCAyMDE2INCz0L7QtNCwMAwGA1UdEwEB/wQC
MAAwgYAGCCsGAQUFBwEBBHQwcjBwBggrBgEFBQcwAoZkaHR0cHM6Ly9lLXRydXN0Lmdvc3VzbHVn
aS5ydS9TaGFyZWQvRG93bmxvYWRDZXJ0P3RodW1icHJpbnQ9RDgxMjZGQzdFM0UxNDVDOEM2RkJD
NjAzMDFBN0E1Q0Y1N0ZBN0Y5OTA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vd3d3LmZzcy5ydS91
Yy9HVUNfRlNTX1JGXzIwMTguY3JsMIIBhgYDVR0jBIIBfTCCAXmAFHryiNHPYJWHd6dCQtPPPybq
PWumoYIBUqSCAU4wggFKMR4wHAYJKoZIhvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYT
AlJVMRwwGgYDVQQIDBM3NyDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAx
PzA9BgNVBAkMNjEyNTM3NSDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXRgNGB0LrQsNGP
LCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgxGDAW
BgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQzNzUxQTA/BgNV
BAMMONCT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3R
gtGAggsAou/wWAAAAAAC2TAbBgNVHREEFDASgRBnLnByeWFtb3ZAZnNzLnJ1MB0GA1UdDgQWBBQj
MUVEQp0eyKC9SajlVfaiT9qVCDAIBgYqhQMCAgMDQQBGE9BPJ6jI/Cfc5R4is0t8BrStEiZqOUSo
XFJGC1QuiqTcPELHUjg4b7FUfDjDyqjtkYmbEEmBRqwt1Gq7dxcO</wsse:BinarySecurityToken><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><Reference URI="#OGRN_1027739443236"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><DigestValue>A/poqW4GZTngqxJorb+6XzAuIZDv4ORGbjJqiMMBXYM=</DigestValue></Reference></SignedInfo><SignatureValue>ARcWgx9vz2taWnDCpP8Ecylp+mFz+hAu6NXLJ0/V2ei5rcxRG4+20E60D2/1fpSfjQxDUTf4Ogr1
dMP/ljRR+Q==</SignatureValue><KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#http://eln.fss.ru/actor/fss/ca/1027739443236" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature></wsse:Security></SOAP-ENV:Header><S:Body wsu:Id="OGRN_1027739443236"><ns1:getPrivateLNDataResponse xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><ns1:FileOperationsLnUserGetPrivateLNDataOut><ns1:REQUEST_ID>GETLNINS_3103275205_2019_01_22_00039</ns1:REQUEST_ID><ns1:STATUS>1</ns1:STATUS><ns1:DATA><ns1:OUT_ROWSET><ns1:ROW><ns1:SNILS>00000060006</ns1:SNILS><ns1:SURNAME>Вандерхузе</ns1:SURNAME><ns1:NAME>Яков</ns1:NAME><ns1:PATRONIMIC>Петрович</ns1:PATRONIMIC><ns1:BOZ_FLAG>0</ns1:BOZ_FLAG><ns1:LPU_EMPLOYER>ООО МОСКВА</ns1:LPU_EMPLOYER><ns1:LPU_EMPL_FLAG>1</ns1:LPU_EMPL_FLAG><ns1:LN_CODE>900000002772</ns1:LN_CODE><ns1:PRIMARY_FLAG>1</ns1:PRIMARY_FLAG><ns1:DUPLICATE_FLAG>0</ns1:DUPLICATE_FLAG><ns1:LN_DATE>2018-07-30</ns1:LN_DATE><ns1:LPU_NAME>МБУЗ «ГКБ № 1»</ns1:LPU_NAME><ns1:LPU_ADDRESS>г. Белгород, просп. Белгородский, д. 9</ns1:LPU_ADDRESS><ns1:LPU_OGRN>1023101681745</ns1:LPU_OGRN><ns1:BIRTHDAY>1990-01-01</ns1:BIRTHDAY><ns1:GENDER>0</ns1:GENDER><ns1:REASON1>01</ns1:REASON1><ns1:DATE1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:DATE2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV1_AGE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV1_MM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV2_AGE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV2_MM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:PREGN12W_FLAG xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:HOSPITAL_DT1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:HOSPITAL_DT2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_DT1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_DT2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_DT3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_INVALID_GROUP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:TREAT_PERIODS><ns1:TREAT_FULL_PERIOD><ns1:TREAT_PERIOD><ns1:TREAT_DT1>2018-07-30</ns1:TREAT_DT1><ns1:TREAT_DT2>2018-08-01</ns1:TREAT_DT2><ns1:TREAT_DOCTOR_ROLE>ТЕРАПЕВТ</ns1:TREAT_DOCTOR_ROLE><ns1:TREAT_DOCTOR>БОБКОВ Р В</ns1:TREAT_DOCTOR></ns1:TREAT_PERIOD></ns1:TREAT_FULL_PERIOD></ns1:TREAT_PERIODS><ns1:LN_RESULT><ns1:RETURN_DATE_LPU>2018-08-02</ns1:RETURN_DATE_LPU><ns1:OTHER_STATE_DT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/></ns1:LN_RESULT><ns1:LN_STATE>060</ns1:LN_STATE><ns1:EMPLOYER>ООО "Алекта"</ns1:EMPLOYER><ns1:EMPL_FLAG>1</ns1:EMPL_FLAG><ns1:EMPL_REG_NO>3103275205</ns1:EMPL_REG_NO><ns1:EMPL_PARENT_NO>31031</ns1:EMPL_PARENT_NO><ns1:APPROVE1>Федоров Марат Васильевич</ns1:APPROVE1><ns1:APPROVE2>Зверев Алексей Владимирович</ns1:APPROVE2><ns1:BASE_AVG_SAL>.00</ns1:BASE_AVG_SAL><ns1:BASE_AVG_DAILY_SAL>.00</ns1:BASE_AVG_DAILY_SAL><ns1:INSUR_YY>0</ns1:INSUR_YY><ns1:INSUR_MM>2</ns1:INSUR_MM><ns1:NOT_INSUR_YY>0</ns1:NOT_INSUR_YY><ns1:NOT_INSUR_MM>0</ns1:NOT_INSUR_MM><ns1:FORM1_DT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:RETURN_DATE_EMPL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:DT1_LN>2018-07-30</ns1:DT1_LN><ns1:DT2_LN>2018-08-01</ns1:DT2_LN><ns1:EMPL_PAYMENT>918.30</ns1:EMPL_PAYMENT><ns1:FSS_PAYMENT>.00</ns1:FSS_PAYMENT><ns1:PAYMENT>918.30</ns1:PAYMENT><ns1:LN_HASH>F64250581DCD416A73B1EFEFE9CB6246</ns1:LN_HASH></ns1:ROW></ns1:OUT_ROWSET></ns1:DATA></ns1:FileOperationsLnUserGetPrivateLNDataOut></ns1:getPrivateLNDataResponse></S:Body></S:Envelope>



Подписанный запрос по гост-2012
+

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><soapenv:Header><wsse:Security soapenv:actor="http://eln.fss.ru/actor/insurer/3103275205"><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/insurer/3103275205">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</wsse:BinarySecurityToken><ds:Signature><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/><Reference URI="#REGNO_3103275205"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></Transforms><DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/><DigestValue>UO4BS25sULx0BG2slNi9TOZO4x3ScNiMrdy0cLsW2kk=</DigestValue></Reference></SignedInfo><ds:SignatureValue>OswyDB4RKUjlPWt2DW/DZbsRCnX55hTDkuWwJtlmv4JJQnANH16HxCYviQMIwIacfj/dxUtqvwH4Yq3wzbZPMw==</ds:SignatureValue><ds:KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#http://eln.fss.ru/actor/insurer/3103275205" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature></wsse:Security></soapenv:Header><soapenv:Body wsu:Id="REGNO_3103275205"><getPrivateLNData xmlns="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl"><regNum>3103275205</regNum><lnCode>900000002772</lnCode><snils>00000060006</snils></getPrivateLNData></soapenv:Body></soapenv:Envelope>

Ответ ФСС на него
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><SOAP-ENV:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" S:actor="http://eln.fss.ru/actor/fss/ca/1027739443236"><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/fss/ca/1027739443236">MIIIJTCCB9KgAwIBAgIRAMR1DVsR5NuA6BHzyun8ReUwCgYIKoUDBwEBAwIwggEfMRwwGgYJKoZI
hvcNAQkBFg11Y0B2b3NraG9kLnJ1MRgwFgYFKoUDZAESDTExNjc3NDYyODkyNDgxGjAYBggqhQMD
gQMBARIMMDA3NzI5NDk4ODEzMQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCw
MRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMTEwLwYDVQQJDCjRg9C70LjRhtCwINCj0LTQsNC7
0YzRhtC+0LLQsCwg0LTQvtC8IDg1MSkwJwYDVQQKDCDQpNCT0JHQoyDQndCY0JggwqvQktC+0YHR
hdC+0LTCuzEpMCcGA1UEAwwg0KTQk9CR0KMg0J3QmNCYIMKr0JLQvtGB0YXQvtC0wrswHhcNMTgx
MDA4MTIwNTU4WhcNMTkxMDA4MTIxNTU4WjCCAZQxGDAWBgUqhQNkARINMTAyNzczOTQ0MzIzNjEa
MBgGCCqFAwOBAwEBEgwwMDc3MzYwNTY2NDcxNDAyBgNVBAkMK9Ce0YDQu9C40LrQvtCyINC/0LXR
gNC10YPQu9C+0LosINC00L7QvCAz0LAxHzAdBgkqhkiG9w0BCQEWEGcucHJ5YW1vdkBmc3MucnUx
CzAJBgNVBAYTAlJVMQswCQYDVQQIDAI3NzEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQsDFnMGUG
A1UECgxe0KTQvtC90LQg0YHQvtGG0LjQsNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3Q
uNGPINCg0L7RgdGB0LjQudGB0LrQvtC5INCk0LXQtNC10YDQsNGG0LjQuDFnMGUGA1UEAwxe0KTQ
vtC90LQg0YHQvtGG0LjQsNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3QuNGPINCg0L7R
gdGB0LjQudGB0LrQvtC5INCk0LXQtNC10YDQsNGG0LjQuDBmMB8GCCqFAwcBAQEBMBMGByqFAwIC
JAAGCCqFAwcBAQICA0MABECEkSwF1tUQy0VCXJxoCCHcWH40247CTla0jJli3jNSjdcj0pc3YjxM
/cND94wWL7K4Olk8msDN7zGNgcCwmIZno4IEZzCCBGMwDgYDVR0PAQH/BAQDAgPYMB0GA1UdJQQW
MBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHSAEFjAUMAgGBiqFA2RxATAIBgYqhQNkcQIwNgYF
KoUDZG8ELQwrItCa0YDQuNC/0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8gNC4wKTCCAQgG
BSqFA2RwBIH+MIH7DCsi0JrRgNC40L/RgtC+0J/RgNC+IENTUCIgKNCy0LXRgNGB0LjRjyA0LjAp
DCoi0JrRgNC40L/RgtC+0J/RgNC+INCj0KYiINCy0LXRgNGB0LjQuCAyLjAMT9Ch0LXRgNGC0LjR
hNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQpC8xMjQtMzAxMCDQvtGC
IDMwLjEyLjIwMTYMT9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjR
jyDihJYg0KHQpC8xMjgtMjk4MyDQvtGCIDE4LjExLjIwMTYwggFgBgNVHSMEggFXMIIBU4AUjMT1
xwUOCKrWHyz8rQaXa1sowluhggEspIIBKDCCASQxHjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlh
ei5ydTELMAkGA1UEBhMCUlUxGDAWBgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMu
INCc0L7RgdC60LLQsDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+
0LwgNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgxGDAWBgUq
hQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQzNzUxLDAqBgNVBAMM
I9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4ggsA1FjD1QAAAAAADDAdBgNVHQ4E
FgQUqFxeJxIJdDYfxXvNkZpupHIZNkYwJwYJKwYBBAGCNxUKBBowGDAKBggrBgEFBQcDAjAKBggr
BgEFBQcDBDBxBgNVHR8EajBoMDGgL6AthitodHRwOi8vdWMudm9za2hvZC5ydS9jZHAvdm9za2hv
ZF9nb3N0MTIuY3JsMDOgMaAvhi1odHRwOi8vY2RwMS52b3NraG9kLnJ1L2NkcC92b3NraG9kX2dv
c3QxMi5jcmwwgYIGCCsGAQUFBwEBBHYwdDA3BggrBgEFBQcwAoYraHR0cDovL3VjLnZvc2tob2Qu
cnUvY2RwL3Zvc2tob2RfZ29zdDEyLmNydDA5BggrBgEFBQcwAoYtaHR0cDovL2NkcDEudm9za2hv
ZC5ydS9jZHAvdm9za2hvZF9nb3N0MTIuY3J0MCsGA1UdEAQkMCKADzIwMTgxMDA4MTIwNTU4WoEP
MjAxOTEwMDgxMjA1NThaMAoGCCqFAwcBAQMCA0EAzvp/kUQBSGrurEz478+bY4+lVNYtR3pqB4m+
0CC9atS12eG0QCb7HQ52TSiv4OddD7alVOSS8WEL6OSLah0B3Q==</wsse:BinarySecurityToken><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/><Reference URI="#OGRN_1027739443236"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/></Transforms><DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/><DigestValue>5XioyqGpcqgwp6/uJkgfa0wMN45lFDi8mLoXZW09tX0=</DigestValue></Reference></SignedInfo><SignatureValue>qLlMSwSR5Ptmq8Cthb9trAm+9ySfMXU46o6HBZK0Y7bJ0z0CoTYAVMmp1Yt20eszIQlqW1OCfp1I
xlTHOoirYA==</SignatureValue><KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#http://eln.fss.ru/actor/fss/ca/1027739443236" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature></wsse:Security></SOAP-ENV:Header><S:Body wsu:Id="OGRN_1027739443236"><ns1:getPrivateLNDataResponse xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><ns1:FileOperationsLnUserGetPrivateLNDataOut><ns1:REQUEST_ID>GETLNINS_3103275205_2019_01_22_00040</ns1:REQUEST_ID><ns1:STATUS>1</ns1:STATUS><ns1:DATA><ns1:OUT_ROWSET><ns1:ROW><ns1:SNILS>00000060006</ns1:SNILS><ns1:SURNAME>Вандерхузе</ns1:SURNAME><ns1:NAME>Яков</ns1:NAME><ns1:PATRONIMIC>Петрович</ns1:PATRONIMIC><ns1:BOZ_FLAG>0</ns1:BOZ_FLAG><ns1:LPU_EMPLOYER>ООО МОСКВА</ns1:LPU_EMPLOYER><ns1:LPU_EMPL_FLAG>1</ns1:LPU_EMPL_FLAG><ns1:LN_CODE>900000002772</ns1:LN_CODE><ns1:PRIMARY_FLAG>1</ns1:PRIMARY_FLAG><ns1:DUPLICATE_FLAG>0</ns1:DUPLICATE_FLAG><ns1:LN_DATE>2018-07-30</ns1:LN_DATE><ns1:LPU_NAME>МБУЗ «ГКБ № 1»</ns1:LPU_NAME><ns1:LPU_ADDRESS>г. Белгород, просп. Белгородский, д. 9</ns1:LPU_ADDRESS><ns1:LPU_OGRN>1023101681745</ns1:LPU_OGRN><ns1:BIRTHDAY>1990-01-01</ns1:BIRTHDAY><ns1:GENDER>0</ns1:GENDER><ns1:REASON1>01</ns1:REASON1><ns1:DATE1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:DATE2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV1_AGE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV1_MM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV2_AGE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:SERV2_MM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:PREGN12W_FLAG xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:HOSPITAL_DT1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:HOSPITAL_DT2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_DT1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_DT2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_DT3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:MSE_INVALID_GROUP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:TREAT_PERIODS><ns1:TREAT_FULL_PERIOD><ns1:TREAT_PERIOD><ns1:TREAT_DT1>2018-07-30</ns1:TREAT_DT1><ns1:TREAT_DT2>2018-08-01</ns1:TREAT_DT2><ns1:TREAT_DOCTOR_ROLE>ТЕРАПЕВТ</ns1:TREAT_DOCTOR_ROLE><ns1:TREAT_DOCTOR>БОБКОВ Р В</ns1:TREAT_DOCTOR></ns1:TREAT_PERIOD></ns1:TREAT_FULL_PERIOD></ns1:TREAT_PERIODS><ns1:LN_RESULT><ns1:RETURN_DATE_LPU>2018-08-02</ns1:RETURN_DATE_LPU><ns1:OTHER_STATE_DT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/></ns1:LN_RESULT><ns1:LN_STATE>060</ns1:LN_STATE><ns1:EMPLOYER>ООО "Алекта"</ns1:EMPLOYER><ns1:EMPL_FLAG>1</ns1:EMPL_FLAG><ns1:EMPL_REG_NO>3103275205</ns1:EMPL_REG_NO><ns1:EMPL_PARENT_NO>31031</ns1:EMPL_PARENT_NO><ns1:APPROVE1>Федоров Марат Васильевич</ns1:APPROVE1><ns1:APPROVE2>Зверев Алексей Владимирович</ns1:APPROVE2><ns1:BASE_AVG_SAL>.00</ns1:BASE_AVG_SAL><ns1:BASE_AVG_DAILY_SAL>.00</ns1:BASE_AVG_DAILY_SAL><ns1:INSUR_YY>0</ns1:INSUR_YY><ns1:INSUR_MM>2</ns1:INSUR_MM><ns1:NOT_INSUR_YY>0</ns1:NOT_INSUR_YY><ns1:NOT_INSUR_MM>0</ns1:NOT_INSUR_MM><ns1:FORM1_DT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:RETURN_DATE_EMPL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/><ns1:DT1_LN>2018-07-30</ns1:DT1_LN><ns1:DT2_LN>2018-08-01</ns1:DT2_LN><ns1:EMPL_PAYMENT>918.30</ns1:EMPL_PAYMENT><ns1:FSS_PAYMENT>.00</ns1:FSS_PAYMENT><ns1:PAYMENT>918.30</ns1:PAYMENT><ns1:LN_HASH>F64250581DCD416A73B1EFEFE9CB6246</ns1:LN_HASH></ns1:ROW></ns1:OUT_ROWSET></ns1:DATA></ns1:FileOperationsLnUserGetPrivateLNDataOut></ns1:getPrivateLNDataResponse></S:Body></S:Envelope>



Подписанный и зашифрованный запрос. Подпись и шифрование по гост-2001
+

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#"><EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"/><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"><EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"/><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo><CipherData><CipherValue>MIGkMCgEIInk/aCburp818gt3L0zCpfeQ6G100K/VFrn0RXjlel7BAQM8bU2oHgGByqFAwICHwGgYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAox4KfdVNG9dWBngbED49g7XlCwc9VoOMY/9oN5eK661rGXufmGHKDLZvRdkkP20B23zZpsmZARxdhzC+kYDzQwQIYY+5ANiyS/U=</CipherValue></CipherData></EncryptedKey></KeyInfo><CipherData><CipherValue>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</CipherValue></CipherData></EncryptedData></soapenv:Body></soapenv:Envelope>

Зашифрованный и подписанный ответ ФСС.
<?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"><xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"/><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"><xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"/><ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIIJTCCB9KgAwIBAgIRAMR1DVsR5NuA6BHzyun8ReUwCgYIKoUDBwEBAwIwggEfMRwwGgYJKoZI
hvcNAQkBFg11Y0B2b3NraG9kLnJ1MRgwFgYFKoUDZAESDTExNjc3NDYyODkyNDgxGjAYBggqhQMD
gQMBARIMMDA3NzI5NDk4ODEzMQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCw
MRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMTEwLwYDVQQJDCjRg9C70LjRhtCwINCj0LTQsNC7
0YzRhtC+0LLQsCwg0LTQvtC8IDg1MSkwJwYDVQQKDCDQpNCT0JHQoyDQndCY0JggwqvQktC+0YHR
hdC+0LTCuzEpMCcGA1UEAwwg0KTQk9CR0KMg0J3QmNCYIMKr0JLQvtGB0YXQvtC0wrswHhcNMTgx
MDA4MTIwNTU4WhcNMTkxMDA4MTIxNTU4WjCCAZQxGDAWBgUqhQNkARINMTAyNzczOTQ0MzIzNjEa
MBgGCCqFAwOBAwEBEgwwMDc3MzYwNTY2NDcxNDAyBgNVBAkMK9Ce0YDQu9C40LrQvtCyINC/0LXR
gNC10YPQu9C+0LosINC00L7QvCAz0LAxHzAdBgkqhkiG9w0BCQEWEGcucHJ5YW1vdkBmc3MucnUx
CzAJBgNVBAYTAlJVMQswCQYDVQQIDAI3NzEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQsDFnMGUG
A1UECgxe0KTQvtC90LQg0YHQvtGG0LjQsNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3Q
uNGPINCg0L7RgdGB0LjQudGB0LrQvtC5INCk0LXQtNC10YDQsNGG0LjQuDFnMGUGA1UEAwxe0KTQ
vtC90LQg0YHQvtGG0LjQsNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3QuNGPINCg0L7R
gdGB0LjQudGB0LrQvtC5INCk0LXQtNC10YDQsNGG0LjQuDBmMB8GCCqFAwcBAQEBMBMGByqFAwIC
JAAGCCqFAwcBAQICA0MABECEkSwF1tUQy0VCXJxoCCHcWH40247CTla0jJli3jNSjdcj0pc3YjxM
/cND94wWL7K4Olk8msDN7zGNgcCwmIZno4IEZzCCBGMwDgYDVR0PAQH/BAQDAgPYMB0GA1UdJQQW
MBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHSAEFjAUMAgGBiqFA2RxATAIBgYqhQNkcQIwNgYF
KoUDZG8ELQwrItCa0YDQuNC/0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8gNC4wKTCCAQgG
BSqFA2RwBIH+MIH7DCsi0JrRgNC40L/RgtC+0J/RgNC+IENTUCIgKNCy0LXRgNGB0LjRjyA0LjAp
DCoi0JrRgNC40L/RgtC+0J/RgNC+INCj0KYiINCy0LXRgNGB0LjQuCAyLjAMT9Ch0LXRgNGC0LjR
hNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQpC8xMjQtMzAxMCDQvtGC
IDMwLjEyLjIwMTYMT9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjR
jyDihJYg0KHQpC8xMjgtMjk4MyDQvtGCIDE4LjExLjIwMTYwggFgBgNVHSMEggFXMIIBU4AUjMT1
xwUOCKrWHyz8rQaXa1sowluhggEspIIBKDCCASQxHjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlh
ei5ydTELMAkGA1UEBhMCUlUxGDAWBgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMu
INCc0L7RgdC60LLQsDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+
0LwgNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgxGDAWBgUq
hQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQzNzUxLDAqBgNVBAMM
I9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4ggsA1FjD1QAAAAAADDAdBgNVHQ4E
FgQUqFxeJxIJdDYfxXvNkZpupHIZNkYwJwYJKwYBBAGCNxUKBBowGDAKBggrBgEFBQcDAjAKBggr
BgEFBQcDBDBxBgNVHR8EajBoMDGgL6AthitodHRwOi8vdWMudm9za2hvZC5ydS9jZHAvdm9za2hv
ZF9nb3N0MTIuY3JsMDOgMaAvhi1odHRwOi8vY2RwMS52b3NraG9kLnJ1L2NkcC92b3NraG9kX2dv
c3QxMi5jcmwwgYIGCCsGAQUFBwEBBHYwdDA3BggrBgEFBQcwAoYraHR0cDovL3VjLnZvc2tob2Qu
cnUvY2RwL3Zvc2tob2RfZ29zdDEyLmNydDA5BggrBgEFBQcwAoYtaHR0cDovL2NkcDEudm9za2hv
ZC5ydS9jZHAvdm9za2hvZF9nb3N0MTIuY3J0MCsGA1UdEAQkMCKADzIwMTgxMDA4MTIwNTU4WoEP
MjAxOTEwMDgxMjA1NThaMAoGCCqFAwcBAQMCA0EAzvp/kUQBSGrurEz478+bY4+lVNYtR3pqB4m+
0CC9atS12eG0QCb7HQ52TSiv4OddD7alVOSS8WEL6OSLah0B3Q==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo><xenc:CipherData><xenc:CipherValue>MIGkMCgEIHLcvAKKvMdNXPZUIDVGsgaPudtv/ZBw451tAZhMqCG5BARTCH2YoHgGByqFAwICHwGg
YzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAT72YUADGXFSY/Aee2GXtoHbu3d+8
HSZyfix74xzZ8E9MNXHfzLVjpCJ5JBuDuK1OMcRqppF8Nlms0niYwr6dPwQIQq9tJBEBPBs=</xenc:CipherValue></xenc:CipherData></xenc:EncryptedKey></ds:KeyInfo><xenc:CipherData><xenc:CipherValue>AKLfd+TOkPyih4HKX4FGP9Wg1sb4kM9xTWP1Jg1rZ7ZmALEzLSkdIKxbu1gn7DVQlTbQGrA8H27n
DJgQokfZF387G0wMPu2ZBDHg/yyvQfdlAFZYt302YaC1RllCPXcUBYzF66vEkIdyd6GZ5pksftgi
/OzVt93/pgJ+VrEKw34F5wCfQChFV7g/EGG/+B8mMRJyeqO3w5Ew7IkHS9hgxhdO7Asq7f711OQA
QcJwPFNDerQoNEfhH8KAHGrP5RYtyGatErmWWDxnFgZg1Hxg9vMpyP2LNclQS8VV3IC08LS9QEDk
VFyCpf5E1IcoSIBTBhEb2OoNkDL5YpC88xJoCSSluXxsiG5plhIVdgqJIypbP/WJ6uCs2Rw38Axc
8gUmYWeFbGa0WiyBt7Ev5sR3o13MdkLGcOELE1ygpmLIPUyaJPkvDGzlEH9lCYkdpJ4avRMbaorO
0fGuX4BV2+7AqMZoTTUdvP2EUUnJun8BBsV2SZZWWDE1WnM9JGvgW9pokQMPmlUmuRn+8EsqH70b
7QJDWPxm41rw+wGc2UEs7gTAl7Ym7p2b1kQ7gQ6J4dYY1tPRQHkE3enCxRroZ98dQ9KiN4A0hBAu
tYEDE/GeH1imGmcx9P3VEQtlNYGIGgG3qr9kCKgbgEFqBelUg+V3zntQzp//XmqQejduPH9mKAYN
iGSI1li3hAy81fmYRDEONdt1cHJU5MxkRMv5KxGZEvxOVREJxgxtiiCHxEDU5uPXzZLbssXwUzFU
ljGcJBJ7zeRaUUg95FdJC4WXTuibNMX+8nGeNqM5iak/JuOEyj+MYlq4NGLUuu8Ng3BON9Z/pzW1
YR+0AzzMJmuAUZ1DiK8e5A4hggTV9DdSW72qtxSzat3kGDzYUu9E4p6Q+CA76WnXTPWTGrA/A+hf
xS6c65ABiVS2JDCfpFa3yDqLGIKLPHsXeF9nDktF5XNnEu3YOz55KEH7qW4y/uUOhd3MW5NUBpDe
T92s6gozAutAwJgegRystJMlqUxGQkfl0V6GIiMILbTWchWyms7fuY39f+Z72QzynpsfMjs7Dcx/
z/oJYU1+cXUZPHTu5f36fFqGZTg/OOG+MH5N2xM43rcTvHiVuzl3gmUOel7PmbJYCOws08cdU04C
773Y+yYHN7eVGjZQtmUXXlUFMha8ilclny6OEVybNTv3rS9FW+q/8m6w8GbCiqZqgcdRGDW8bZmt
7sWkUv5EK9YmGhf4bCcWW3GxONsauq3IsMsMIM6/D4FSBL5NuOBJgcLimvhC9gqk95fCHKhWKrEe
KnTuQ/dMzZ3VgiuAZAi/01csTl26YrBGLFZ1xmj9Yp6tf2L9BPCVrNYblmGD2Mf7FvGkxhh+7pC6
Qtykc1pHf3rvD4eUFINHeLQ+KaW02NVnyhLKe53ylMPIe+ObQBRbR0tWo/A7gX56+ILeWiWCZnGB
i0lgOu5hoTeSl2D47reN5cJHFNEAjjODKfUvA6gkpAQOrzIMkZgqDN9Zj+cWvKhcCuhQkQyR+TPN
6df6hx/C+jP7ryRJYs/syRJnMcLemahEjsZ8lfJc02WNUMErXelI2D5UNClllcYWhxwdq0goce/q
cXbtmRdFMpjRYekR7lHQKlvyqdRODMhyeyv5sDR9E1VzQBVopfVoUe1XibZQgkRcgomKXc5aMQoJ
iJrvioAkNTiVU/0h/2tAC3p2j8rXrIkmc/162lam29gziCoDCA7W9Lh7+jfCR7JOjUlNnsZD1OAI
fCvRa10Wo56+wqYjC6NaLKg8+47pICUS1mG/Azhq/CbLxareIcWI7Euzo0jqjeAf3ZytGCCj6n7k
rd9Q9Lwfp5EV8no3NAib9ihDmr6OTVWI7Bfa+mTMdIBGfy1Qv3MgE39IO6ID/hMKBZUpl0TRI9GY
QDXB7CmIdvZwj+KUIt61vD/bJepeV/YtWxj2M88VOJUnbPrkzKJ/NjokfOc94i9edo/RCkTYwMxx
cxf1ElPZyMIsW4qBSHOr4Y4Jalm+CLBRKK/G/aJSN+l5IUuIlxUYt82GG1etK8Eh5PQ3JT/ETRIG
AEAd0R59XkKDYlKDIcw4RfK9co0SPods60cpBH/gCGFoSzzsV3Gn0UsxTl73raQVmNfglepvCeVZ
2fUOhf/YO+k+os0u6x78IOEBzxC4SSISRtKgvvu823TQrvlVhI1do6kL8Ml0Enw23w3o0hDdiJNL
a7ALeL0OsaxOU4U7LB+lUZ2PSpa0GHmDi7kP1kchUjdCr2ABT3Pdss9Y0tK0wZtokwR6scWjgOT7
nDUlrUEc2V5jzbg7kLMbDSst7v2+g4yDb/EtOB/dgR7iGzvl0B+osqvGjZIp5VExtc4/XQX19lQR
EiaIjXBO2RrvB4cEWae78OEY2XvmGVPiKfNcDBqXD2nR/7KP8ZNmxrgU2LvPodNzTKNWrvKsh7Wq
wVPRvfZXp5lJYCXBUgrYG2mNisOSNJfb/75SnZbvFC9wM1SCcdY9eFOGZ/OacWmxc3lZ7Sf2gRkm
hnstYii7GrWKfyg7B5ybtfx2sA1CF4IT+tT7Df4FCO5/WoBmu/BpSOGy5CLLMbjFGTQsO4K8FqZw
/Q0xeR8LtzUYgqY6ciPmI/rDf4ONhL1tvhlmjDAAwFq9DQe7kT9xeYzL2LcW9eL0GnMk/Snpb3oB
rYiRBwO1b5wvGLWEqLev6NfjV0d7SkegLTNIJAnfc6SoSf8KsHMPPpgICz6cnaI2QKlvLzFw4qEt
QkQUPprx6kqgmsYR4IugEjHa89k+lH4jkwyfvezbfTAi3v6qbP4OmHIS2gd8kcVXgmawQv/jfBFX
jUKlWgyWkgMsi9aHhesDIOH6K1ydJJX0GVBMIdUiFXEbXQF0XHGgWzMJd8VVULlE5bIGdE8ngOAH
oHrE33A5SVC79oRuZW6MzieNgAfUjrgeBTJLQXGpqQmsUAtglBXB5VrSzuIZWIjg8ioqL5Vw4jFN
weUvps5nH0gEx39NqFzVCEqXDJ3ssgyVYV3Cyj1hHprixdNmdhpmD5rV/quwLzg5uHNLAUiWi2lk
ykDJGEC9ige4aIu9yaVRjX2O1kx82HMWeMzfq6B2Z2msZCj0JLZ0Z4WL+o02UEOUEsm6wSptDvy9
lg2bN2bOP6Vzl3gscGSRi038XIQPwP8ws4zuluvK4vijDti3IKWgRobeWHV/RLcRUQYuf7RJw7Y+
28Ot2JFw/eXT7ldRgoTlpnEduaSlYByRuenIocCTafkp59w1Yw6pKDJB/d8rHYxbofrSUBq2vu8L
dAhL99n47uzjA+HnREbuA+i7n3t/e2eWolZBHKTeiG55lZht3UaC6WWAcPtT7L33sqzr7zhOjfX1
4gwez73GiNWAUbcLk6tjC2VQMC2NZbdm5BRb518Hsb3+2dvzDWahxxvVlSUvy86PBjdZB6g/PSDz
4V4/CozHEKmO7iHxahZBHdy8p61c0qojcgiGlo3DX3aNrow+JVMIuqQ5x5Q/rXdzyGVbU8etbdFV
cbvFCSRJ0iDDnpScK8bJZiCI1yKPO2q/YQWTbQQzozdkS8yYKBxRBQ2V6i+gbUweYABpBVVxRw3z
5ZR+sRK9ckOtpfC6Zd304gLFy4Kcfn0urbwRzVfMqDiRIpCYpuT44zDPEXf6BiZy+Ed7AURqtVMJ
J7skrLG/OC8wwEacVU1KrDDFzqPg1rRd9aSAC4JNqvuoe5S88mXGTghhiY63lw97ZilacxompHW7
22gJg3VEFSOggM5SUHCDpUIhYii/iQuyVxc7LkswdK5MBG8h4ZQOkSZ/40m6IDRe4KsfvASk0bgS
Ub7aWO/EVfhDdqPt1O5U8Fmo88rbhrd6f2/R56k516HMEO19afo529KxN5aEvW3b7X1jIdrluXKA
QwWilvCOV1OGtAOf9d1qLnt0uDpV92yDF5RaNHzJniMRZF4Jr+nprBykZc6H/TyYO1WvhjvHEza5
anUlk/eoO3Bete9n/wwkfLRs9ugw0716TDX94Q+rK2cAaxEqIywoufoANsxArs/zknP4l7sHsV5B
1jfFB11vXwiX5z+y3YDiJ4cfbMtxF02BR0meXBpdAFbJ1ktQeDOZ9hYATzGZxEH9a4oBGr5WPjps
2zoBApvL+uugkQ0+vwZivvXmea3IByIHvXBWD5cgyZJ0EX1RN7vulo049FPtJJg/1xMyaXzxO2Xv
yhkRbWCwcZlvJT/Zyec3e/w1F0S5Fqso6c/WkKMH4vmrmKTAyI+nOuDPUMq236wkfnvIjw+kccBK
GUYdJkCPN5jhLRbYEHGnwmVmvigxW+xQ7Zdqv2qlop34y6H5v45tDWNw/sj2hrRF7YrmWX107Z0p
qEHCIJdDA8woCr6cVEGIman3MgBgxXY+q5A9bmlbZwVzV98gMebme93fMHQdKe9X8a0dWh2YzSaO
FwZRsWohIbIa4TRtFDycR+G1FMh/XuK9zIZFenjkE4ZPnwPtRGSPb5CohKCKg/F2TvJMWFmH5liC
/jFkze4pYcv+c4uOyW1aPf50HU2Upt3MeqZnT044nG1H0WKgtPnHgfecChbgurrq/WnOcvnQlDxx
+l+d9RZ3oovzJGWLlR4f3Orf9PPl9j8LC2d1fbiHVQPWJFLZdzrb81E/qOxQxBbIJ9hlf3TDUnYP
5hsZWeQMXPln/MbIwXW4IAx+V6EIRwd6kTASuhkK7IS4oeN4hRFHBv43tsqNCARE6eA1hXCl+PQA
C1zIypC8ICHyM7jdjjFBXXOtmaTzswr9N6Jf0UrXGLqJbV4OU8A74+r56Uj9org7RKM58K8VvZrm
lH0Tqlex3AW8Lo9fERaKM1MF1OX6m4+rKtjMh8W9Y3jSpfmsN+E5smBsPDEJx2/hzbHp1x8+CNxH
0+WrfhNTZNZ9glA0LchbR9TcxtZ73sKd8G7ty6KBw8znVsO2e4sBmpklyczt3pviCB2ozFsaL8Mt
MBXNBWhHgLZuTL7z7XMsG6eO84Lir9UcZl5mM+74sdszOPoiiMTfKrPzVx0wSZ1Anqt6++33FnkI
XRMVGKaCZHMJnm7xTkJESnqB7TU1tZwQsaRcslr9Mt7A9c/d276xAedOho47HdvdsZiQtIuC58mO
hewyIl+wKIV0ef5ASwLFkXL5c2PU5s9zCwlnafbT1VPrUQ9+q9rpLSG4a05aqMTewiroLu4rJqws
36aeWOCLhuRs3WfsX31sa46Qor/9CqSa7/FKmXawHLBvWeSBEhQvtyQpIMnUSDBEvT8FTA2txREX
znvRIKf132wVKjyj44kAhAxKBkpW2TTWSRmDWv9stVuE7y+ArOkh5hJR59D25dAUzLcFa6eYcnYG
ClKVbce4GKUE4A3Iu7NTgn7F0ylTkwO1OV5o/YOdn18ldd6z8DGpehS8jeksLDeMveK5slHaBg0f
3sv0GsG5TZpggoI6IzEtpKcb1slXnz8G1vg/JyHZgDrkST9vLBtfAeDzkdbZ+fCULBwZc2k8rrB0
22/b1i2YQbcN+jEmPeEDgduH30eLncBeH2N8ehtgmQGWuayi2cL/lTMCodmy/EddF1lYjs0B2cxn
yL6uQewKu9Wvr+YhzuXbvTSXLlknQb8gngxrCdxh3yPNJhmDcmCMAFJEhbm9Tg5nphSSxt4bGy6/
iVf73ncJN3aooxmoTptbJNT2aLxcWGe2zwSp0f0KEFikFuI7TJvh3cyH+4Qj2pAp3MQmkvf7iHZX
oC1RYJnyYj469aUDOspBWgi7OEE15bskPWS0+8ZGTDTfTZxEjaIlEdvtiyXlqep2RDuduieuJCDW
7My4dC9K0lvmkU6yXRsGeI6H7lwpGQs/1YtYrVtluZslRqo0rRAjZ1Z91f78MYiRLDtRgPSeul0+
ZZ2jpvR1+BtuT+pOWq+qwGMnCTseG3CMN5gh/m5qF3yh0GThc74e9i7qi/FPOsIpyO78AbZWGNte
6TqSDcR3+nFh2K0OI11zAuHHEnsP2HN82rXrwzhDuIP4Cc5wSeC0CgWI9H22ICLXUb2wHmdiUi0R
ft1/sS+sRkhhfOxI9eHHCv3awoWbuuA6mHxBuv1ewcKEKmeycxwi4N728D1AHlLUt4IJ9f8bM6ME
EWEquPwQZ2lqTq5sDa4fmfBJcPGseCIlhDZMCdZw1hmynPELV33TYiUObhG+GzPF9HveVGmIf43l
0jVsWYYtjQRAw/+Wa53mxqAfcCQEmtSnPt92+iToYNzCUvbfoZnohtHS5KJRY4GZgo6D0TLq+OuJ
ELS/0dM4TavRwr9pOlOVpI1Cqo00XIgfPolQfv2e+KqIZ1R4QzqaKW+9Uol7nWtv2crxhU7+nqtr
HCsYrJurfpRTM7M/bHAzMvbLm21ALYFinogbUXqWxgDSjrYgK5aMTiAVKIdL6NxmD0L9157QYEyW
slPB17EJMtU1rsekNSCpUXJm1r3evyEDC1CuZoqeF45cY2lHEWsdzVnN1wJY6pdirM1C4TMKopf1
Uqxb6OsTI7UGdYB1GnFjl+FkRwSu53kQduSsaaTehoVI4ZY0rfNLnfRLwUOQEQp07jLNWoWgnZhF
ZGZkTu5NFKIxNraaErr6MIsbCTh0eIzPQ/7XgVyLh8x/z+RMrj0icKv8XucnSwKziIsUijfvQs87
1UPPUUMK5lSfMNgru4djeSbSiS9FNTBPP/IeN2Q1DlA6JgI1z5RzXW5RwSQw+wSACK6xCqWwpMbr
PNjrNTsd+RCJRGbgnO8iCsLYlFAWRWbYNv6fefQxA0x3Kgm+Zk3G95mxFJTOMjBZnC7mrf5APqIP
T9gfah5bA5BbvrTUl9D1GYVmrFCscs8TQShE+mTS20EPC5XUAXBSvFF5B8hHkEs12WettL1ZmpR0
rP15sX+yU38fSCyrPw1EhPe/tvjaSuHajLrTuRCOPdatSrRnAPUk6yfwaDJ/CQBjhN8BoKTpkWnC
AgrK79FQrIzdOcwYSF8mcdf6nqIMSGbplhJLNYk0fHWnUE79yHygnpnyxZfdKGq5kgrqRMaHOf4B
Z9QaPaZpDXHyQ1Jcp57fizEx/sj1H8sUvYjv9GELTIGkzcNrvabtwaFAAPaYRxZh5xnOFX1BHTMd
UYhScg4yOguW1CZUDG/IRfvw2PsJLZpdS/YKOX0r8KjfFsbniWiBJAO5ffgTZHYO6h/2rXaXTb2A
ThAgztF1ag2zZAKiWCvAyud2LSWnxEzjgc2dPGA6vyaGhvfcW9fShnQWsCwEzl+WndXI+BWHhdjd
XGyBuBTzENrVXRFy8fGz8nk2Xw2ZTfeM1vXcI04TW9CIguqUwIGKyFBV8so8+YU/qp0EQZHpCWZ4
5wHmXPB+JcF7G9xEtcV8z8s9gsI6RlIwk84CMZUkpv1zdT7Lo3a7G5utK7q6sCOIGJXAmCTlzo4G
dJaXeCw4HB0UG44NAwmOHS6aKkHT6mOG1s6PQeyHbNolx/i1Xs8oMiZYpy3NizVaktvgfHiqYdVQ
S+/EQOcAUqjtnprWG0msLqH6QmooOFUqu1KBSNtw65fnC5Jy8BaWndiDs+NGEx4R76GugkzgwpyU
ViCoa3ldies/QO/deheTeSgBvHyheWtBbEcZhNMSyC5XvdL+yFY+szDlDzIUkozuYxBRdaCIOoAC
8Ac+Gi9kUVwzcCKztaaGDwzqIQxSmETXAUWgjRFNeiWmUxmZbCaWKaMJRds2YeWMDP8O1so41Bxz
Kru6LyrmaFwYX4kMLDn3Xse9Y2+bJc2JPu4HoIjHJA3WT8PzUeDYCzX9n+K62LP6X2W84L7alDNL
cQ4jPSzKsWl5l+RWT1OBX8ST/wXxeUAQHvu2gGOdgVlyJx9dPOgjdu8dAhPk4MBAD8ju6QMa1l00
a0cFa6VJqc90JCeqWmm3a9IYToXAG+nIm0pIARAl9YUQDpjycGxHekJ0eQK1b9uIRaQxOD7hEcbT
EWcncmCsoe97bDkRAuARMNwIEbvJI3nhTNX/iUPbIGtC5ZACkMCiovYTJmN0cBf1MI6sqMPnp8Al
HHHCosZ6dD364wi1wTPDL72qYcQI9kmPlQcQAxMKgktLv1z3whAjU53Wp1VymWVgmhQ+U8up8hDY
db7XQbdVANAQUi4wNhMHnIbYQ7ZzE/ACTZygczW966FoJIzDxGksvstxSq0rUpnYOtQF6oUNNXfH
Vukt+FdA7mTHnXxmVEMMTzVLREWw6ozzF1NayeBiuOxt7wQ7nVX6of4A+FZuk41Y8ej4/euLSRw1
/1rMTthnrW+HgSa9GauhF/yvyCN3fSGdpg7v0msLw/ghqm5Sv56fntIUGr/x3tnP28htJbJ1yvEh
+x1PMoTTrQVkZMUMCUJcXd6qhW5AGpaXP5MP9kp+xiiX85pLbd+8IviQVQo1AgHnUiCMo1Oan3TP
+O6LA+8YJZW4Oq6BS/8GfBiXMT2wFwNRCWzVubt2PZFdmvfcAdykpiN2FEpiGgqRfTbhN5saZWUH
hR15eQ51nobFMc03An8y3xT3LJYq5NPSwPwpoN90oB6rKxz3Bc2AQR3O3E7jLzThCHXw8s46kws3
eHQM/p9BiwhJFPwrBhdYjKXnyVMUdgfJrfbQxv3WKNgxnP2vtwzGiXD6H0hkrCwYzmZOlPUhKQo8
lOOVdkh7oLaiwWC2VMb00Gqsi7GSXdQNqtL2EUWG4vOwJa1a8bmnPod2pCQuU9rgs/mQKZHtcRVB
sTD+m6r0o54ip/4d67UXB7kYOR9VEvwHKu5iX99Zd7hf2B062DXfcV8+s9oaEMwkoCAabdJW2L+g
sJBV3ptv0Max8yAwbSATG4fTOf+mdaAGAc4Rl1LRwTnENJXgdhlAR5c4km12vgnHsSIn2RtADu0H
/Ob1XaDQNwtHaT8ri5J7BkRPEiHthD0RpW/R/oJx2iRYcFNXdrbc7SVmCD2kEftORnWsYn9GCL0a
lAtzdnUiZsCxQxEm5D36/UUY+1EOSRWNAhBHXjJ/w7NVNNnQsVzX8wt3vfpR5RxXE11caPdmjNkF
q5PXjhm78vVrkYE1cW94tLgx0znvXU+IcbqCtm0PR2zgQsLStFL10xS+KeN07t0V5u3E3yP1ltO5
Fmnm66NQB7UY7D7077cFlaLys+9uboTrahuFVNxOUSOjVv1FGpkPSuDsQlD4KtBp4w+ID6q5oiNh
3hcMJwcN6djPbuHMyswCRW1y1WXATb6RP32IvlDX9FdbkxCxzdOrJ4JG4m6HrUxGCFp7lNxOiiRg
uAzZ5pPfAWFSInYnHPMDvvJdTvu7mEoB/WWEtoGu4MCe+usifsk/uKKynC0I5/Nk32IDcX4An1eu
bo/H3TRIcs25c9DwkL42eHq3iY19U5smK9qMrWe1nDfabqKqblSgVxxmtKr3Nfa3rIyGYjoSXVcI
0Ic1GY66GFel9QBK9rStL5SJjPqoztsYeK6cZ/8+eRZm/rh2kbsneJ/fleRn8xBR17WCiBJUnAkK
w8vwydRTdz+j1eAT30v8RQJIr9uuuVVM63MIMbX07eEVsfuuSj5GppEoEpcWp4pGMVqv1olmAo0Z
WbHp6JcTPSqG7jPGd6YWtwyW/gdKyW2kAlCj2YTH5UAhTOU+d9euhPTzc/W2tRHHh4mFDgwqMslZ
3DmKpqxXPKb4hn7b995YsmxTtPc5Y+nHdjjLgwIJNLIHe70X83ZZ0+kZo8grL35fcCXJmJdMBjer
Vp46v53cNfFc4b99Iyvrup68jJ3G+oIeZovFMIciAcDASilZ0i4k45FPlFjaOtCINc2fBsYiQGEF
MYEyqPAm2jakAAqlEFZrK5zSGfFzDb+hNrut7xw/h5iRjEDP/24TSDp9CMB3F1R2dvAR/bfopGvi
n5ufx0LVakFtL/H0fvEZ2KiPGrPVbGmK7fv1/Oma40vNHtGdv/gY8HV8lbs7rd83H5y/OETWRfo0
opVu8otHsfhwnItpJ5VRhBnuhbEwTR2N+uBOqudGrDjdEXDnnEwlVFy+/vKh/Hns9qAgPUZhmwF5
4jK8OdCa1exU672avyJymblm8QUq3x6KT5NIMkOxFh1kKEGAqzrum5Dm9dxJbGRgRH/3ZjQPk9By
sRTjd7RBzdtiiD+IojsgDFvn0wDDPnQKs0QgbzzKsUgoOYfmldaNfXwgnGinUrA+zQJWN8PqZVK1
eGYslXfJ2LKxcCmk8f+GcULV8Byp+eRkPQcAZ0rJ/k3aYTstRxLbylMlwSW8wBMRdFBgwCKyDOOP
s6S/BGmHcEZhoShKkouwwYv/qps55OaAzel3ReEWD8cHcG16V4szjMOQ0RBJSBAMlxzZ4e34UPKT
EmwEi3HNb5g3xLeYzKsn900udWXjt5dL7waNavzh5R804VqEFnAgeJkPdYcht9CGqJGPtZLk68i7
fiyIXwmkBNvFV5HT58U/qb0S0ddsFF7kEOKVDkgARMqvZck0j5b12Wm4lYXduL1SMX22j0od+FhE
PWiOMzYb+MkZSWjWCeW92EZXBGsJS9AFi5xYxl7W9zSlf3uTMuO63F/qz5kDdG4zlbYOsf1sNBXE
Jg32vsLrtI8pFFWC46LKC0U7aD007QE+DS7C28kv0s/78ubqVWFm6X9pXkoQJ0R2qXXrNP4+Xkhh
PH7DH+Ku9oPJarrt1lfrYGQnYiFyQnCt1/Kubawe1QHPxbzb3K8ygHFuBEfLNxs+dEk+6vq65Ovt
215Xv1MEL2ST8DCpZcWMvZ6PjJuOtXDtAhkkrGPOoR+5pHqfx0NqBXMPiYAEvK6y8Wg+DjxpNNFD
NBGRQG01p35hCt90oZsF1LCH7Xc3A+Lit4oUrAFVqPQ8AImg4VdPjFRu2f0REm4UlHtruaDvhBHk
G4MC8saRDbKZ8mKrYN0SLRAkNw0qgRm8j7zciR3JUuFcpVlKzqXuxhNHxKgUUdd2ADLBpA/YX71X
PdrQa/fUJj2wOhS7YMYDhaZT/L6aTUds9Ao7NKkgOcgTtmRxihgR2CeKXHKLX7U2jX2FwmUz4apq
AHmmD6GkA1O52rC/sDkCuW4bSzBenjZ/VfIVfVoTHS73wbkXjRBy+vz7CLsoM30SM7Xf/4iIYxY1
JCri9W6hr/HtWc3H4419hZ6PPIeqFncCSC4Z7PyRmK0iMO74ncOlWaScDKySKcPzbrh8RbYL9M4D
xZC74QZgc7XOcOV1gco5LZFJP7AtFw4E7Zy2hBL7gRCzEnIJqFtWfxsAFbFhzEXtcX/K/B+/NTPt
dhGusMMDhWWF2wsX/wMdLgVlaahl60ajolNEC4W6soW2upGHRbLBJJIsIvx3nsomOiPitSxEDY0o
O1wfb/peCv2wPHI7z/evh/OI+CUSCXTehdgG9PIo4PYRcCKmZr+W3+tkzggGSAB9Nr/ap4qxQk53
uyG6ZuSbsE1qQL1Rt1QKneRQdNdEZWiffLXPmWqq9b9XmxGYB3nz+awdyiJJUbQpQiwzMuyGt0lS
3pCYChHVTc1ZEW2p3e0gori71dnETjS/NeU9ftLE/hQT6H9FUXFFWk5CDhztPMWkVltrNKed3dOY
/Do9d6u444Y0ztXa5UwOieO8katXZ+jehTFNjxYCLv3fhtB/qUrrzy0TWb29V/eR3tmW1n/jA/Fa
AVl4WVjewr2nv/axVcZT77CjjbETEFZ29oWuYmscwyATuM4J6hWwhvTjzEEd1jb5sRXeVzN8eGMl
jG35mNS4/zqOL/fsG0VOkK9bsufhXkD0/xDiYVNyZYtrbT0S+hkmm0k9D0o958oTSWs3QcCCyw6H
paOwE0kQgGO9JqCbC3jYwz1U0UbOoMYyx7eZ8yZMJXj2aXhPojRpdByXvECAiXz86AwTIRF9i5a7
ibKh40+jJaToMdL2bhhGNk/DGcB+3IcLc+ClXCH6TUE4PdU64LQSW8gHRN0oCHI7QvqoXe+pBeSL
NOXIz9/rpCbkrLmflayc+APb8qDjgsLVa6ZcQr9uA+4dbkDMPuOsOVIHfcvNP8MnFohRPZ8ZanBi
l3yr10B34/8ocpVVOvVKIUbiHTQwQC7vF7A+YrPxxX4uVW5cWrPC8bEmSX3mMr9JV6/zqVG9gbAg
GXvc8dcxKOinK+MRe+qWLZ/znRhnMnADZ7gywxoVGlUxHjR1Qs+M5NCOGb30firhxCFzzUCKWCJk
UTTQDlbZBjfaOa3cBrfCcRKOLGLDDozoBcYxf4EK/2JBH5fpIIRcc7RTn/cNh5sX41F0wSAv2/Jr
ICJ2Yd+r2j4CGxAxf7Ew9lyXjK4JfZlgs/Zslg24YahhV9IqCEnj/Q==</xenc:CipherValue></xenc:CipherData></xenc:EncryptedData></SOAP-ENV:Body></SOAP-ENV:Envelope>



Подписанный и зашифрованный запрос. Подпись и шифрование по гост-2012
+

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#"><EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"/><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"><EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"/><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo><CipherData><CipherValue>MIGpMCgEIBhzDohtCSggDSkauyib1G1qgO5aSr+uQybfPbbllOwMBAQWfUkDoH0GCSqFAwcBAgUBAaBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABEAHFVbCbIkTzeEVf82+xojjtUIjIPM1SsbLfqVMlo3aM2ZwSYkdCwwSuxu4BN1CB89isprSzgqdQZ/uAtQ43T8mBAiGg9axmeXiZA==</CipherValue></CipherData></EncryptedKey></KeyInfo><CipherData><CipherValue>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</CipherValue></CipherData></EncryptedData></soapenv:Body></soapenv:Envelope>

Ответ ФСС.
<?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"><xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"/><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"><xenc:EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"/><ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIIJTCCB9KgAwIBAgIRAMR1DVsR5NuA6BHzyun8ReUwCgYIKoUDBwEBAwIwggEfMRwwGgYJKoZI
hvcNAQkBFg11Y0B2b3NraG9kLnJ1MRgwFgYFKoUDZAESDTExNjc3NDYyODkyNDgxGjAYBggqhQMD
gQMBARIMMDA3NzI5NDk4ODEzMQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCw
MRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMTEwLwYDVQQJDCjRg9C70LjRhtCwINCj0LTQsNC7
0YzRhtC+0LLQsCwg0LTQvtC8IDg1MSkwJwYDVQQKDCDQpNCT0JHQoyDQndCY0JggwqvQktC+0YHR
hdC+0LTCuzEpMCcGA1UEAwwg0KTQk9CR0KMg0J3QmNCYIMKr0JLQvtGB0YXQvtC0wrswHhcNMTgx
MDA4MTIwNTU4WhcNMTkxMDA4MTIxNTU4WjCCAZQxGDAWBgUqhQNkARINMTAyNzczOTQ0MzIzNjEa
MBgGCCqFAwOBAwEBEgwwMDc3MzYwNTY2NDcxNDAyBgNVBAkMK9Ce0YDQu9C40LrQvtCyINC/0LXR
gNC10YPQu9C+0LosINC00L7QvCAz0LAxHzAdBgkqhkiG9w0BCQEWEGcucHJ5YW1vdkBmc3MucnUx
CzAJBgNVBAYTAlJVMQswCQYDVQQIDAI3NzEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQsDFnMGUG
A1UECgxe0KTQvtC90LQg0YHQvtGG0LjQsNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3Q
uNGPINCg0L7RgdGB0LjQudGB0LrQvtC5INCk0LXQtNC10YDQsNGG0LjQuDFnMGUGA1UEAwxe0KTQ
vtC90LQg0YHQvtGG0LjQsNC70YzQvdC+0LPQviDRgdGC0YDQsNGF0L7QstCw0L3QuNGPINCg0L7R
gdGB0LjQudGB0LrQvtC5INCk0LXQtNC10YDQsNGG0LjQuDBmMB8GCCqFAwcBAQEBMBMGByqFAwIC
JAAGCCqFAwcBAQICA0MABECEkSwF1tUQy0VCXJxoCCHcWH40247CTla0jJli3jNSjdcj0pc3YjxM
/cND94wWL7K4Olk8msDN7zGNgcCwmIZno4IEZzCCBGMwDgYDVR0PAQH/BAQDAgPYMB0GA1UdJQQW
MBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHSAEFjAUMAgGBiqFA2RxATAIBgYqhQNkcQIwNgYF
KoUDZG8ELQwrItCa0YDQuNC/0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8gNC4wKTCCAQgG
BSqFA2RwBIH+MIH7DCsi0JrRgNC40L/RgtC+0J/RgNC+IENTUCIgKNCy0LXRgNGB0LjRjyA0LjAp
DCoi0JrRgNC40L/RgtC+0J/RgNC+INCj0KYiINCy0LXRgNGB0LjQuCAyLjAMT9Ch0LXRgNGC0LjR
hNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQpC8xMjQtMzAxMCDQvtGC
IDMwLjEyLjIwMTYMT9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjR
jyDihJYg0KHQpC8xMjgtMjk4MyDQvtGCIDE4LjExLjIwMTYwggFgBgNVHSMEggFXMIIBU4AUjMT1
xwUOCKrWHyz8rQaXa1sowluhggEspIIBKDCCASQxHjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlh
ei5ydTELMAkGA1UEBhMCUlUxGDAWBgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMu
INCc0L7RgdC60LLQsDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+
0LwgNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgxGDAWBgUq
hQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQzNzUxLDAqBgNVBAMM
I9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4ggsA1FjD1QAAAAAADDAdBgNVHQ4E
FgQUqFxeJxIJdDYfxXvNkZpupHIZNkYwJwYJKwYBBAGCNxUKBBowGDAKBggrBgEFBQcDAjAKBggr
BgEFBQcDBDBxBgNVHR8EajBoMDGgL6AthitodHRwOi8vdWMudm9za2hvZC5ydS9jZHAvdm9za2hv
ZF9nb3N0MTIuY3JsMDOgMaAvhi1odHRwOi8vY2RwMS52b3NraG9kLnJ1L2NkcC92b3NraG9kX2dv
c3QxMi5jcmwwgYIGCCsGAQUFBwEBBHYwdDA3BggrBgEFBQcwAoYraHR0cDovL3VjLnZvc2tob2Qu
cnUvY2RwL3Zvc2tob2RfZ29zdDEyLmNydDA5BggrBgEFBQcwAoYtaHR0cDovL2NkcDEudm9za2hv
ZC5ydS9jZHAvdm9za2hvZF9nb3N0MTIuY3J0MCsGA1UdEAQkMCKADzIwMTgxMDA4MTIwNTU4WoEP
MjAxOTEwMDgxMjA1NThaMAoGCCqFAwcBAQMCA0EAzvp/kUQBSGrurEz478+bY4+lVNYtR3pqB4m+
0CC9atS12eG0QCb7HQ52TSiv4OddD7alVOSS8WEL6OSLah0B3Q==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo><xenc:CipherData><xenc:CipherValue>MIGpMCgEIMzlR63Twir/wVBqGYdxQVNvo9K1MI48ESsTwvwCAeZlBARSLqlSoH0GCSqFAwcBAgUB
AaBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABEAVaxBI+blTV/HxFTlEcsjx
cWqFyMsGiNR5rbOTicuYrC1d0RHLWysFWV3nKSwrgndHuM1RGkaMnsAIUzxb6rqjBAjw86B+KYGZ
Sg==</xenc:CipherValue></xenc:CipherData></xenc:EncryptedKey></ds:KeyInfo><xenc:CipherData><xenc:CipherValue>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
8fkvVw64jl30Fnmm+g8jRvnWGwqg+g==</xenc:CipherValue></xenc:CipherData></xenc:EncryptedData></SOAP-ENV:Body></SOAP-ENV:Envelope>

22 янв 19, 14:35    [21791175]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
я пытаюсь что-то отправить в фсс
soap не использую
просто подготовил xml
и куда его отправлять?
на https://docs.fss.ru/ws-insurer-crypto-v11/FileOperationsLnPort ?
если туда, то выдает ошибку 500
23 янв 19, 22:18    [21792692]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000,
Вы отправляли данные на реальный контур. Так и задумано? По этому адресу отправляется подписанное и зашифрованное сообщение. Сообщение зашифровано реальным, а не тестовым сертификатом удостоверяющего лица ФСС? Можете сюда выложить отправляемый xml?
24 янв 19, 10:13    [21792955]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
я тут оказывается в начале пути)
это жесть)
на https://docs-test.fss.ru/ws-insurer-v11/FileOperationsLnPort смог отправить и получить ответ, только там на каждый ответ
ORA-20001: Номер 910002662200 недействителен
т.е. так понимаю, что текущих больных там нет?
на D7 ничего толкового найти не могу
хэш подсчитал внешней утилитай rhash, в base64 не могу подобрать, все время разное получается
и надо считать внутри body или начиная с "<S:Body" ?
24 янв 19, 14:45    [21793402]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
<S:Body wsu:Id="REGNO_ххххххххх">
<ns1:getPrivateLNData xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://ru/ibs/fss/ln/ws/FileOperationsLnInternal.wsdl">
<ns1:regNum>ххххххххх</ns1:regNum>
<ns1:lnCode>хххххххх</ns1:lnCode>
<ns1:snils>хххххххх</ns1:snils>
</ns1:getPrivateLNData>
</S:Body>[SRC XML][/SRC]

какой текст нужно хешировать?
24 янв 19, 14:57    [21793423]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000,

Вы действительно в самом начале пути. Для начала надо вдумчиво изучить документацию для разработчиков с сайта ФСС. Там даются хорошие объяснения по поводу формирования ЭЦП.
Перед хэшированием блок Body из Вашего крайнего поста необходимо каноникализировать. В принципе, попробуйте достать библиотеку компонент clever internet suite версии не ниже 9, где эти механизмы прекрасно работают. Также в этой теме выложен прекрасный рабочий пример Crypto, который хоть и написан под использование в Rad Studio, но довольно легко переносится на Делфи 7.
24 янв 19, 15:23    [21793491]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,

в примере c14n_TLB.pas нет
24 янв 19, 16:02    [21793572]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000,

Там есть dll, которую надо зарегистрировать с помощью RegAsm из папки c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\, затем создать tlb-файл с помощью c:\Program Files\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\, после чего экспортировать с помощью tlibimp
24 янв 19, 16:14    [21793583]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,

RegAsm зарегистрировать
а NETFX 4.6.1 Tools\ какой утилитой создавать tlb ?
или может проще скинуть готовый pas ?
24 янв 19, 16:40    [21793619]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
спасибо, создал с помощью tlbexp
24 янв 19, 16:43    [21793625]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
какой хэш после канонизации должен получиться для:
<S:Body wsu:Id="REGNO_1203000637">
<ns1:getPrivateLNData xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://ru/ibs/fss/ln/ws/FileOperationsLnInternal.wsdl">
<ns1:regNum>1203000637</ns1:regNum>
<ns1:lnCode>910002662200</ns1:lnCode>
<ns1:snils>03179154751</ns1:snils>
</ns1:getPrivateLNData>
</S:Body>
</S:Envelope>



yZcMfUeQDp68J3qsSQc7Gv+d7E/lPgsIMa0f8NGmK1s= ?
25 янв 19, 14:44    [21794332]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken
user100000,
В принципе, попробуйте достать библиотеку компонент clever internet suite версии не ниже 9, где эти механизмы прекрасно работают.

установил 9.0. Есть пример использования функции канонизации на нем?
25 янв 19, 16:25    [21794427]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000,


каноникализации. Да, есть. В этих компонентах есть весь функционал. Разбирайтесь.
25 янв 19, 16:40    [21794440]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,

вот есть исходный body

<S:Body wsu:Id="REGNO_1203000637">
<ns1:getPrivateLNData xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://ru/ibs/fss/ln/ws/FileOperationsLnInternal.wsdl">
<ns1:regNum>1203000637</ns1:regNum>
<ns1:lnCode>910002662200</ns1:lnCode>
<ns1:snils>03179154751</ns1:snils>
</ns1:getPrivateLNData>
</S:Body>


помогите, какой будет хэш DigestValue?
yZcMfUeQDp68J3qsSQc7Gv+d7E/lPgsIMa0f8NGmK1s= ?
25 янв 19, 20:01    [21794559]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000,
Будьте любезны, приведите код формирования DigestValue. Без него ничем помочь не могу.
26 янв 19, 14:28    [21794793]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
timtut123
Member

Откуда:
Сообщений: 1
Shuraken, Здравствуйте. Насколько я понимаю, Вы реализовывали все на Delphi 2007. Передо мной сейчас стоит та же задача, что и перед вами: интеграция функционала ФСС в ИС нашей организации. Могу ли я написать вам на почту и задать несколько вопросов?
29 янв 19, 00:21    [21796382]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
timtut123,

Я реализовывал это всё на Делфи 7. Можете задавать. Shuraken28@yandex.ru
31 янв 19, 01:57    [21798369]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,

а можете свой проект выложить?
2 фев 19, 13:04    [21800377]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000,

Нет. Условия контракта.
4 фев 19, 15:00    [21801354]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
запустил тут пример выложенный crypto.zip
пишет: набор ключей не определен, хотя в криптопро все есть
6 фев 19, 17:25    [21802921]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000,

Обычно эта ошибка происходит, когда используются 2 сертификата с разными гостами. Например, сертификат ФСС - гост-2001, а свой сертификат по гост-2012.
6 фев 19, 18:53    [21802999]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
оставил только
Сертификат уполномоченного лица 2019
(алгоритм ГОСТ Р 34.11-2001/34.10-2001)
http://cabinets.fss.ru/FSS_PROD_CERT_2019.cer
Теперь пишет:
не удалось расшифровать сообщение. Возможно сообщение зашифровано на ключе отличном от ключа уполномоченного лица ФСС. Проверьте правильность и актуальность ключа уполномоченного лица ФСС
6 фев 19, 19:35    [21803039]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
user100000,
оказывается там на test

исправил на :
// defWSDL = 'https://docs-test.fss.ru/WSLnCryptoV11/FileOperationsLnPort?WSDL';
// defURL = 'https://docs-test.fss.ru/WSLnCryptoV11/FileOperationsLnPort';
// defSvc = 'FileOperationsLnImplService';
// defPrt = 'FileOperationsLnPort';

defWSDL = 'https://docs.fss.ru/WSLnCryptoV11/FileOperationsLnPort?WSDL';
defURL = 'https://docs.fss.ru/WSLnCryptoV11/FileOperationsLnPort';
defSvc = 'FileOperationsLnImplService';
defPrt = 'FileOperationsLnPort';


Теперь "Error message"
6 фев 19, 20:40    [21803074]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
res := fssService.getNewLNNumRange('1033302003833',3);

if res.STATUS = 0 then
raise Exception.Create('Error Message');
6 фев 19, 20:54    [21803080]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
некорректная подпись головной органищации ЭЦП неверна. INVALID_SIGNATURE ЭП недейстаительна
6 фев 19, 21:21    [21803094]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
огрн лпу не найден в справочнике

это на другой сервси что-ли стучится? для медиц. организаций?
6 фев 19, 21:22    [21803096]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
поменял на:
defWSDL = 'https://docs.fss.ru/ws-insurer-crypto-v11/FileOperationsLnPort?WSDL';
defURL = 'https://docs.fss.ru/ws-insurer-crypto-v11/FileOperationsLnPort';
defSvc = 'FileOperationsLnImplService';
defPrt = 'FileOperationsLnPort';

"cannot find dispatch method for getLNData"
6 фев 19, 21:40    [21803099]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
импортировать заново WSDl, метод getPrivateLNData появился
Теперь ORA-20001 Отсутствует подпись головной организации *рукалицо
6 фев 19, 22:36    [21803114]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Тоже пытаюсь сделать, пока без результата. У кого вышло\выйдет - пишете на thpg@yandex.ru, заплачу за работающий код.
6 фев 19, 23:02    [21803123]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
При вызове в том примере
InitContext(@hCryptoProvider, PROV_GOST_2001_DH, 'KeyContainer');
или
InitContext(@hCryptoProvider, PROV_GOST_2012_256, 'KeyContainer'); // такой сертификат в рутокене
выходит окошко криптопро для выбора сертификата, оно видит рутокен, но пишет "Файл не найден", видимо, не видит там некоего нужного ему сертификата. С другими программами сертификат в таком же окне криптопро выбирается без проблем. Не видно, чтобы были указаны параметры поиска сертификата, то есть, должен ведь выбираться любой? У вас это работает?
6 фев 19, 23:38    [21803133]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
все ок работает)
7 фев 19, 00:32    [21803143]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Вместо "KeyContainer" вставил реальное имя контейнера типа "\\.\Aktiv Rutoken lite 0\12345678@2019-01-17-ООО XXX", и пошло уже дальше новые забавные ошибки показывать - "Указан неправильный алгоритм".
7 фев 19, 01:23    [21803153]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Для 2012 поменял CALG_GR3411 на CALG_GR3411_2012_256:

// CheckCryptoCall(CryptCreateHash(ACryptoProvider, CALG_GR3411, 0, 0, @Result));
CheckCryptoCall(CryptCreateHash(ACryptoProvider, CALG_GR3411_2012_256, 0, 0, @Result));

В результате этого прошел квест до "пишет: набор ключей не определен, хотя в криптопро все есть" когда уже начинает работать с сертом ФСС. Серт скачен свежий, и вроде нужный (2012) отсюда https://cabinets.fss.ru/eln.html
7 фев 19, 01:57    [21803158]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
На Win2008server exe примера падает через раз
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0000005
Похоже проблема в c14n.dll ?
7 фев 19, 01:58    [21803159]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
user100000, удалось это решить "ORA-20001: Отсутствует подпись головной организации"?
7 фев 19, 03:54    [21803168]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
thpg,

это не правильный xml запроса, в примере все сделано для медиц. организаций и для тестового сервера
7 фев 19, 04:20    [21803170]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
скинь c14n.dll если не жалко, а то оно у меня через раз работает
7 фев 19, 04:21    [21803172]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
user100000
thpg,

это не правильный xml запроса, в примере все сделано для медиц. организаций и для тестового сервера


Это я сразу увидел, но думал, что общий формат xml одинаковый. А можете скинуть уже переделанные regiemk_fss_encrypt_body.xml и regiemk_fss_sign_envelope.xml, если есть?
7 фев 19, 04:33    [21803173]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Там "смешно", что сервис сперва проверяет формат СНИЛС и т.п., а потом уже пишет про эту "головную организацию". То есть, успешно расшифровывает сообщение, парсит, проверяет корректность переданных данных (причем, не просто по xsd, а своим кодом), и уже потом что-то пишет про некую подпись, которая выше по уровню разворачивания конверта.
7 фев 19, 04:40    [21803175]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Shuraken
Подписанный и зашифрованный запрос. Подпись и шифрование по гост-2012


У вас в сообщениии нет тега Header, а сразу Body - это в самом деле так работает, и Header со всей требухой не нужен вообще?
7 фев 19, 05:20    [21803179]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
thpg
user100000
thpg,

это не правильный xml запроса, в примере все сделано для медиц. организаций и для тестового сервера


Это я сразу увидел, но думал, что общий формат xml одинаковый. А можете скинуть уже переделанные regiemk_fss_encrypt_body.xml и regiemk_fss_sign_envelope.xml, если есть?


там поменять в regiemk_fss_sign_envelope

/actor/mo на /actor/insurer
и OGRN на REGNO
7 фев 19, 05:33    [21803181]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000
Shuraken,
скинь c14n.dll если не жалко, а то оно у меня через раз работает


Я не использовал эту библиотеку. Каноникализацию делал вручную.

thpg
У вас в сообщениии нет тега Header, а сразу Body - это в самом деле так работает, и Header со всей требухой не нужен вообще?

В зашифрованном сообщении он не требуется, согласно спецификации, а вот в подписанном - нужен.
7 фев 19, 12:07    [21803376]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
можете скинуть функцию канонизации?

еще: почему-то На Win2008server exe примера падает через раз
ругается на dhcpcsvc.dll
7 фев 19, 13:55    [21803485]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
user100000
Shuraken,
можете скинуть функцию канонизации?


Не могу.
7 фев 19, 14:30    [21803532]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Всем огромное спасибо, получил тестовый больничный в ответе с gost2012.
8 фев 19, 00:19    [21803932]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
user100000
Member

Откуда:
Сообщений: 25
Shuraken,
ну ты жадный
использовал с форума криптопро uXMLHelper.pas
и все переписал без wsdl и soap
просто отправка на indy
и теперь в терминале w2008 не крашится
8 фев 19, 12:31    [21804243]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Хорошо, что у них SSL хоть не гостовский с сертификатом, как у ГИС ЖКХ.
8 фев 19, 19:29    [21804810]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
prParseReestrFile на тестовом контуре должен работать?

Шлет непонятную ошибку:
"ORA-20001: ORA-20111: ERR_912 #Ошибка обработки файла. Не указана версия реестра."

Что за "версия реестра" не ясно, нет такого в доках. Обычная "version" заполнена как "1.1".

Если есть работающий нешифрованный xml с prParseReestrFile - поделитесь, пожалуйста.
9 фев 19, 01:10    [21805007]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Дошло - там может быть много больничных, и каждый из них отдельно подписывается, другой блок надо брать.
9 фев 19, 01:29    [21805012]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Три подписи, подписывает ноду ROW, вроде всё как в доках, а та же ошибка на prParseReestrFileResponse на тестовом стенде:
<ns1:MESS>ORA-20001: ORA-20111: ERR_912 #Ошибка обработки файла. Не указана версия реестра.</ns1:MESS>

У вас это работает?
9 фев 19, 05:53    [21805045]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Сделал тоже напрямую без WSDL и заработало. Delphi сообщение собирает как-то не так, как они ждут.

А может есть на тестовом стенде больничные, данные по которым можно обновлять, чтобы не было ошибок? Секретные какие-нибудь.
10 фев 19, 06:22    [21805534]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
thpg
prParseReestrFile на тестовом контуре должен работать?

Шлет непонятную ошибку:
"ORA-20001: ORA-20111: ERR_912 #Ошибка обработки файла. Не указана версия реестра."

Что за "версия реестра" не ясно, нет такого в доках. Обычная "version" заполнена как "1.1".

Если есть работающий нешифрованный xml с prParseReestrFile - поделитесь, пожалуйста.


Попробуйте этот.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><soapenv:Header><wsse:Security soapenv:actor="http://eln.fss.ru/actor/insurer/3103275205/900000025008"><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/insurer/3103275205/900000025008">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</wsse:BinarySecurityToken><ds:Signature><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/><Reference URI="#ELN_900000025008"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></Transforms><DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/><DigestValue>7vgtr29f5ARofdKDBE6X85A2FUP4flCBzkWGxeo1daQ=</DigestValue></Reference></SignedInfo><ds:SignatureValue>M4rd53fuMV2WvWMDcdt+cZo6/l/KBH9zHfcLQWi5PW1SxI8ZE/I2O16GmoNKxLFiY4Q2ZVLIPM9Vx6hLPzSiHw==</ds:SignatureValue><ds:KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#http://eln.fss.ru/actor/insurer/3103275205/900000025008" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature></wsse:Security><wsse:Security soapenv:actor="http://eln.fss.ru/actor/chief/3103275205/900000025008"><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/chief/3103275205/900000025008">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</wsse:BinarySecurityToken><ds:Signature><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/><Reference URI="#ELN_900000025008"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></Transforms><DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/><DigestValue>7vgtr29f5ARofdKDBE6X85A2FUP4flCBzkWGxeo1daQ=</DigestValue></Reference></SignedInfo><ds:SignatureValue>5LF/xtmRU3m2kBYu8DSXdlBIlS4jiqtdE9ieSx4vOip201ulp6Iw3nfzQ9sEILoBU6hPAMEo16lbAbtoGU3lyQ==</ds:SignatureValue><ds:KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#http://eln.fss.ru/actor/chief/3103275205/900000025008" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature></wsse:Security><wsse:Security soapenv:actor="http://eln.fss.ru/actor/accountant/3103275205/900000025008"><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="http://eln.fss.ru/actor/accountant/3103275205/900000025008">MIIIzzCCCHygAwIBAgIQU2WMAJmp35RCLytQruSVSjAKBggqhQMHAQEDAjCCAVsxIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1MRgwFgYFKoUDZAESDTEwMzc3MDAwODU0NDQxGjAYBggqhQMDgQMBARIMMDA3NzE3MTA3OTkxMQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxLzAtBgNVBAkMJtGD0LsuINCh0YPRidGR0LLRgdC60LjQuSDQstCw0Lsg0LQuIDE4MSUwIwYDVQQKDBzQntCe0J4gItCa0KDQmNCf0KLQni3Qn9Cg0J4iMWswaQYDVQQDDGLQotC10YHRgtC+0LLRi9C5INC/0L7QtNGH0LjQvdC10L3QvdGL0Lkg0KPQpiDQntCe0J4gItCa0KDQmNCf0KLQni3Qn9Cg0J4iINCT0J7QodCiIDIwMTIgKNCj0KYgMi4wKTAeFw0xODExMTUwODIxMTBaFw0xOTAyMTUwODMxMTBaMIIBTTEYMBYGBSqFA2QBEg05OTk5ODIzNDU2NzAwMR8wHQYDVQQMDBbQv9GA0L7Qs9GA0LDQvNC80LjRgdGCMSkwJwYDVQQLDCDQv9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQsNC90LjQtTEYMBYGA1UECgwP0J7QntCeICLQkdCY0KIiMTQwMgYDVQQJDCvQv9GA0L7RgdC/0LXQutGCINCf0YDQvtGB0LLQtdGJ0LXQvdC40Y8sIDg1MSYwJAYDVQQHDB3QodCw0L3QutGCLdCf0LXRgtC10YDQsdGD0YDQszELMAkGA1UEBhMCUlUxMDAuBgNVBCoMJ9CQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LXQtdCy0LjRhzEbMBkGA1UEBAwS0JLQuNC90L7QutGD0YDQvtCyMREwDwYDVQQDDAhUZXN0LTI1NjBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABECh97yApaKIFr8Q280mdzqD9KuLlfHnFK+wozT5Zfb1cV8nqxhbTwvbRl7m1ujf1KrfYlmPAJ9H12xiResB1C1Bo4IFHTCCBRkwDgYDVR0PAQH/BAQDAgP4MB8GCSsGAQQBgjcVBwQSMBAGCCqFAwICLgAIAgEBAgEAMB0GA1UdDgQWBBTCeqlswjMT2FQTA7Yq9kgGgE8tHDAmBgNVHSUEHzAdBggrBgEFBQcDAgYIKwYBBQUHAwQGByqFAwICIgYwMgYJKwYBBAGCNxUKBCUwIzAKBggrBgEFBQcDAjAKBggrBgEFBQcDBDAJBgcqhQMCAiIGMIGnBggrBgEFBQcBAQSBmjCBlzA4BggrBgEFBQcwAYYsaHR0cDovL3Rlc3RjYTIwMTIuY3J5cHRvcHJvLnJ1L29jc3Avb2NzcC5zcmYwWwYIKwYBBQUHMAKGT2h0dHA6Ly90ZXN0Y2EyMDEyLmNyeXB0b3Byby5ydS9haWEvYmI3ZWZjNDEyZDRhN2ViYjEyMGYwNGMyMDU1YjRjZWMzMmYwY2Y1Yi5jcnQwHQYDVR0gBBYwFDAIBgYqhQNkcQIwCAYGKoUDZHEBMCsGA1UdEAQkMCKADzIwMTgxMTE1MDgyMTEwWoEPMjAxOTAyMTUwODIxMTBaMIIBQwYFKoUDZHAEggE4MIIBNAw00KHQmtCX0JggItCa0YDQuNC/0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8gNC4wKQxa0J/QkNCaICLQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAgItCa0YDQuNC/0YLQvtCf0YDQviDQo9CmIiDQstC10YDRgdC40LggMi4wDE/QodC10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI0LTMwMTAg0L7RgiAzMC4xMi4yMDE2DE/QodC10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI4LTI5ODMg0L7RgiAxOC4xMS4yMDE2MCwGBSqFA2RvBCMMIdCh0JrQl9CYICLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIjBgBgNVHR8EWTBXMFWgU6BRhk9odHRwOi8vdGVzdGNhMjAxMi5jcnlwdG9wcm8ucnUvY2RwL2JiN2VmYzQxMmQ0YTdlYmIxMjBmMDRjMjA1NWI0Y2VjMzJmMGNmNWIuY3JsMIIBnAYDVR0jBIIBkzCCAY+AFLt+/EEtSn67Eg8EwgVbTOwy8M9boYIBY6SCAV8wggFbMSAwHgYJKoZIhvcNAQkBFhFpbmZvQGNyeXB0b3Byby5ydTEYMBYGBSqFA2QBEg0xMDM3NzAwMDg1NDQ0MRowGAYIKoUDA4EDAQESDDAwNzcxNzEwNzk5MTELMAkGA1UEBhMCUlUxGDAWBgNVBAgMDzc3INCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMS8wLQYDVQQJDCbRg9C7LiDQodGD0YnRkdCy0YHQutC40Lkg0LLQsNC7INC0LiAxODElMCMGA1UECgwc0J7QntCeICLQmtCg0JjQn9Ci0J4t0J/QoNCeIjFrMGkGA1UEAwxi0KLQtdGB0YLQvtCy0YvQuSDQv9C+0LTRh9C40L3QtdC90L3Ri9C5INCj0KYg0J7QntCeICLQmtCg0JjQn9Ci0J4t0J/QoNCeIiDQk9Ce0KHQoiAyMDEyICjQo9CmIDIuMCmCEBPh6gAeqCeoSagYaiuocE4wCgYIKoUDBwEBAwIDQQB+ANyhJPoqwuDeTjaIVdAoeaLeQoN3V1mvoNSOMs3BLWhz3sn7upZ2R/wFTa1zF7zKuvui/0+kguz4sskrcgEp</wsse:BinarySecurityToken><ds:Signature><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/><Reference URI="#ELN_900000025008"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></Transforms><DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/><DigestValue>7vgtr29f5ARofdKDBE6X85A2FUP4flCBzkWGxeo1daQ=</DigestValue></Reference></SignedInfo><ds:SignatureValue>qB2ikbZ1NbN/cK0qCDLkyvb5yWEuWCDKloUefeDl8HX4/cFM9/nIyjD5Sw1m9eFXkQYGycW+X3FwZjkF1tnKCA==</ds:SignatureValue><ds:KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI="#http://eln.fss.ru/actor/accountant/3103275205/900000025008" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature></wsse:Security></soapenv:Header><soapenv:Body><prParseReestrFile xmlns="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl"><request><regNum>3103275205</regNum><pXmlFile><ROWSET xmlns:tns="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" tns:author="developer" tns:email="test@mail.ru" tns:phone="1112233" tns:software="IT_Develop" tns:version="1.1" tns:version_software="2.0.4.52"><ns1:ROW xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" wsu:Id="ELN_900000025008"><ns1:LN_CODE>900000025008</ns1:LN_CODE><ns1:SNILS>13480229343</ns1:SNILS><ns1:EMPLOYER>Предприятие</ns1:EMPLOYER><ns1:EMPL_FLAG>0</ns1:EMPL_FLAG><ns1:EMPL_REG_NO>3103275205</ns1:EMPL_REG_NO><ns1:EMPL_PARENT_NO>31021</ns1:EMPL_PARENT_NO><ns1:APPROVE1>Иванов Иван Иванович</ns1:APPROVE1><ns1:APPROVE2>Петрова Тамара Ивановна</ns1:APPROVE2><ns1:BASE_AVG_SAL>0</ns1:BASE_AVG_SAL><ns1:BASE_AVG_DAILY_SAL>100</ns1:BASE_AVG_DAILY_SAL><ns1:INSUR_YY>0</ns1:INSUR_YY><ns1:INSUR_MM>0</ns1:INSUR_MM><ns1:NOT_INSUR_YY>0</ns1:NOT_INSUR_YY><ns1:NOT_INSUR_MM>0</ns1:NOT_INSUR_MM><ns1:FORM1_DT xsi:nil="true"/><ns1:RETURN_DATE_EMPL>2018-11-13</ns1:RETURN_DATE_EMPL><ns1:DT1_LN>2018-11-10</ns1:DT1_LN><ns1:DT2_LN>2018-11-12</ns1:DT2_LN><ns1:EMPL_PAYMENT>100</ns1:EMPL_PAYMENT><ns1:FSS_PAYMENT>1000</ns1:FSS_PAYMENT><ns1:PAYMENT>0</ns1:PAYMENT><ns1:LN_HASH>6FA8907382F5E11CC8A21938FAAAD2A6</ns1:LN_HASH><ns1:CORRECTION_REASON>06</ns1:CORRECTION_REASON><ns1:CORRECTION_NOTE>Обновлённые данные</ns1:CORRECTION_NOTE></ns1:ROW></ROWSET></pXmlFile></request></prParseReestrFile></soapenv:Body></soapenv:Envelope>
10 фев 19, 13:19    [21805626]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Shuraken, спасибо!

Еще один вопрос, если можно - для 34.10-2015-512 те хитрые "транспортные структуры" такие же остаются, или другие нужны? По идее, там же другая длина, и значит другое кодирование по asn.1 должно быть?
13 фев 19, 06:10    [21807958]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
Shuraken
Member

Откуда:
Сообщений: 618
thpg,

пожалуйста. Для 512 у них сертификата нет. Когда появится, тогда и буду смотреть. Сейчас работа идёт лишь с гост-2001 и гост-2012 256 бит.
13 фев 19, 10:10    [21808092]     Ответить | Цитировать Сообщить модератору
 Re: Электронный больничный ЭЛН  [new]
thpg
Member

Откуда:
Сообщений: 16
Вот это место долго парило - не проходили проверку правильные подписи вложенного xml при наличии в нем русского текста.

    
// Получение контента базового SOAP-запроса, который будет зашифрован перед отправкой получателю.
    encryptedData := TEncoding.Default.GetBytes(ASOAPRequest.DocumentElement.XML);


Исправляется элементарно.
    encryptedData := TEncoding.UTF8.GetBytes(ASOAPRequest.DocumentElement.XML);
14 фев 19, 06:43    [21809046]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
Все форумы / Delphi Ответить