powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Электронный больничный ЭЛН
25 сообщений из 196, страница 1 из 8
Электронный больничный ЭЛН
    #39575182
maratvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Имеется подписанный файл (для удобства чтения отформатированный):
подписанный файл
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<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 сертификата: свой и ФСС.
С вычислением хеш-суммы и подписи разобрался. А вот шифрование не осилил.

Задача: этот подписанный файл зашифровать и поместить в файл:
структура зашифрованного файла
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<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)" - эти данные берутся из сертификата ФСС? Ведь шифровать файл надо их ключом?
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39575758
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39577372
maratvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012,

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

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

По примерам с сайта накидал вот такое:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
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?
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39577469
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39577471
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>CP_GR3410_2001_PROV_A, PROV_GOST_2001_DH

Такого не должно быть в коде,
в 2018 переход на ГОСТ-2012.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39578340
cutecode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже бьюсь над этим вопросом. Начал в сентябре и только к декабрю удалось сделать подпись. И теперь застрял на шифровании.
Я использую C++, openssl и xmlsec1

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


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

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

А вот шифровать данные надо открытым ключом ФСС, чтобы он смог расшифровать их своим закрытым ключом
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39578351
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cutecodeТоже бьюсь над этим вопросом. Начал в сентябре и только к декабрю удалось сделать подпись. И теперь застрял на шифровании.
Я использую C++, openssl и xmlsec1

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


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

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

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

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

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

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

С наступающим.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39578358
onets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cutecodeТоже бьюсь над этим вопросом. Начал в сентябре и только к декабрю удалось сделать подпись. И теперь застрял на шифровании. Я использую C++, openssl и xmlsec1
Мда, на .NET я подобное делал для ФССП в 2012-2013 годах за три месяца весь проект. В целом ничего сложного - крипто-про, их примеры и форумы. Были локальные проблемы, типа несовпадения хеш сумм, но все решалось отладкой, вдумчивыми чтением документации и форумов крипто-про. Или как подлезть к этому во внутренностях WCF, чтоб в итоге все заработало.

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

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

maratvg, cutecode
Попробуйте поискать примеры для делфей и C++ у крипто-про. Не думаю, что вас обделили в этом плане.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39578374
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onets,

ему уже был дан пример из руководства разработчика,
открыть SDK и посмотреть... что же там такого нужно написать на C++... видимо сложно.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39578641
cutecode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уж поверьте мне - сложно.
ибо вы тут сами пишите всякую "хрень"

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


то он не имеет ни какого представления об XML encryption. В шаблоне же XML явно указаны алгоритмы
Код: sql
1.
2.
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.

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


С Новым Годом
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39581034
maratvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cutecode,

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

На данный момент пользуюсь классами GostEncryptSOAP/GostDecryptSOAP из GostCryptography.dll из набора arm_fss.
Что примечательно, программисты ФСС видимо тоже не делфи не стали это всё реализовывать, раз юзают дотнетовскую длл-ку.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39581184
uranic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаю одну успешную реализацию на Delphi, с ноября 2017 все отправляют. Номера ЛН регистрируют и т.п. Вообщем полный цикл
Из сторонних библиотек используется JwaWinCrypt.pas (из JEDI, для доступа к CryptoAPI)

Весь процесс реализации затянулся на 4 месяца. (начали в середине июля, к середине октября были в тестовой эксплуатации).
К сожалению подробностей много рассказать не могу.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39586825
Dmitry19891
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Пытаюсь получить ответ из ФСС Сервис Страхователя с подписанием и шифрованием данных (версия 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
Откликнитесь, пожалуйста, кто имел опыт общения с этим сервисом.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39590270
Dmitry19891
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался. Я неправильно подписывал сообщение. Теперь другой вопрос, может кто знает
Тестовый Сервис ФСС ответил мне шифрованным сообщением. Я посылал запрос
getPrivateLNData("3103275205", "290195190104", "09365295200") (взял эти регнам,ЭЛН,СНИЛС из примера)
Но расшифровать его я не могу

Код: pascal
1.
2.
3.
4.
5.
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?
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39591317
Anvig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Если не трудно опишите, пожалуйста, поподробнее какой режим шифрования выбирали, какие параметры устанавливали.И если уж совсем набраться наглости, то можете выложить оба зашифрованных файл(запрос и ответ от сервиса) ?
А по поводу Вашего вопроса , насколько я понимаю, ключ от ФСС Вы уже получили в ответе.
Вы должны его загрузить к себе и расшифровать свои закрытым ключом.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39591357
cutecode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот еще 4 недели прошло, и пока все глухо. "Танцы с бубном" не помогают.
Пока только понял следующее, может кто поправит

1. генерируем 8 байт IV
2. генерируем 32 байт сессионного ключа
3. c помощью IV и сессионного ключа шифруем данные алгоритмом ГОСТ 89
4. к полученным зашифрованным данным добавляем префикс из IV (8 байт)
5. из последнего делаем 64encoding и записываем в XML файл
6. шифруем сессионный ключ, открытым ключом ФСС алгоритмом ГОСТ 2001
7. из последнего делаем 64encoding и записываем в XML файл
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39591952
Anvig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я, конечно, не спец в этом вопросе, потому что за весь январь мне так и не удалось послать шифрованное сообщение. Единственное мое достижение -сервис ФСС перестал материться на мой ключ, теперь ошибка в шифровании данных ) Но, по-моему, алгоритм не такой, как Вы написали
1.генерится сессионый ключ с IV с алгид Гост 89
2.на основе открытого ключа ФСС генерится ключ согласования с алгоритмом ГОСТ 2001
3. сессионный ключ шифруется полученным ключом согласования
4.данные шифруются уже зашифрованным ключом, потом в base64 и в XML
5.в XML ключ ложится в base64, но не по простому, а в виде структуры , описанной в госте 89
Поправьте, если я ошибаюсь. Так достало уже, от ФСС помощи никакой, с техподдержкой хрен свяжешься
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39592030
cutecode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это вы как я понял по примерам КриптоПро рассуждаете? я вообще не понимаю причом там ключ согласования.

Cогласно описанию
https://tools.ietf.org/html/draft-chudov-cryptopro-cpxmldsig-08
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 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 делал без всяки там "ключей согласования"
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39592189
Anvig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 или без него, у меня рез-т одинаковый.Ключ принимается, данные-нет. Возможно, что надо другой режим шифрования указать, отличный от дефолта, или доп параметры какие. Или я вообще не права,хз
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39592560
cutecode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вы писали, что вам удалось зашифровать сессионный ключ, можете поделиться кодом?
мой email stomatolog99@ mail.ru
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39593007
Anvig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а смысл? раз данные не расшифровываются(Error in execution of data crypting operation), значит, несмотря на то, что ключ принимается ФСС, он все равно неправильный(
Потому что в шифровании данных ошибку сделать сложно, там всего одна команда.Будет чем реально поделиться, поделюсь.
Может и прав был maratvg,когда ушел на Net.Вот только задача у меня-написать на С++
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39599548
Павел Ишенин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-либо продвинулся в теме шифрования больничных?

Подписание у нас тоже сделано в web. А вот на шифровании ровно теже вопросы.
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39653443
tamerlan00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maratvgcutecode,

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

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

Тоже использую эту библиотеку, но не смог найти таких классов GostEncryptSOAP/GostDecryptSOAP.
Я использовал класс GostEncryptedXml. Смог зашифровать и расшифровать своими ключами.
Также смог зашифровать, отправить на тестовый контур и получить зашифрованный ответ. Но не смог расшифровать =(
Бьюсь уже день.
Можете мне код (шифровки/дешифровки сообщения) выслать на почту alex_rpg@list.ru?
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39653698
maratvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tamerlan00,

В тот-то и удобство класса GostEncryptSOAP, что у него есть метод:
Код: pascal
1.
function encryptMsg(const pProvName: WideString; const pCertName: WideString; const pSOAPMsg: WideString): WideString; 

которому надо отдать имя провайдера, имя сертификата и подписанный xml в виде строки. В ответ он вернет зашифрованный xml.

То же самое с GostDecryptSOAP:
Код: pascal
1.
function decryptMsg(const pProvName: WideString; const pSOAPMsg: WideString): WideString;
...
Рейтинг: 0 / 0
Электронный больничный ЭЛН
    #39653710
tamerlan00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maratvgtamerlan00,

В тот-то и удобство класса GostEncryptSOAP, что у него есть метод:
Код: pascal
1.
function encryptMsg(const pProvName: WideString; const pCertName: WideString; const pSOAPMsg: WideString): WideString; 

которому надо отдать имя провайдера, имя сертификата и подписанный xml в виде строки. В ответ он вернет зашифрованный xml.

То же самое с GostDecryptSOAP:
Код: pascal
1.
function decryptMsg(const pProvName: WideString; const pSOAPMsg: WideString): WideString;



Ой, точно. Уже недели 2 копаюсь в GostCryptography, а GostCryptography.SOAP не замечал )))
Спасибо, буду пробовать ))
...
Рейтинг: 0 / 0
25 сообщений из 196, страница 1 из 8
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Электронный больничный ЭЛН
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]