:: Visual Foxpro, Foxpro for DOS
хэш по ГОСТ34.11-94
ggok56
Автор

Сообщений: 2
Дата регистрации: 18.10.2017
Здравствуйте.
Разбираюсь с веб-сервисом ФСС для электронных больничных. Застрял на формировании хэша элемента "S:Body" по алгоритму ГОСТ34.11-94.
С тестового кабинета ФСС скачал их корректный запрос (GETLNINS_3103275205_2017_10_12_00010_request.xml.xml). В нём элементу
<S:Body wsu:Id="REGNO_3103275205"><ns1:getPrivateLNData xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://ru/ibs/fss/ln/ws/FileOperationsLnInternal.wsdl" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:eln="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace"><ns1:regNum>3103275205</ns1:regNum><ns1:lnCode>290195190104</ns1:lnCode><ns1:snils>09365295200</ns1:snils></ns1:getPrivateLNData></S:Body>
соответствует хэш
<DigestValue>g2gM6UHHFESVK0JbH/yDCBOXlWQM2ZV24gGfEszLD1Y=</DigestValue>
Из темы forum.foxclub.ru сделал код Но получается совершенно другой хэш.
Пробовал и утилиты rhash,cpverify. Корректного хэша так и не добился.
Через soapUI тестировал GETLNINS_3103275205_2017_10_12_00010_request.xml.xml Если изменить "S:Body" (или DigestValue), то запрос не работает. Т.е. в запросе DigestValue действительно хранит хэш элемента S:Body.
Подскажите, пожалуйста, как в ФСС рассчитывают хэш? В их спецификации описывается, что применяется ГОСТ34.11-94 и base64.
Ratings: 0 negative/0 positive
Re: хэш по ГОСТ34.11-94
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
forum.foxclub.ru

forum.foxclub.ru

Ключевые моменты - каноникализация подписываемого куска XML-я (критически важно) и тупость авторов утилиты cpverify (переставляются полубайты в её выводе).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: хэш по ГОСТ34.11-94
ggok56
Автор

Сообщений: 2
Дата регистрации: 18.10.2017
Обе эти темы читал. Из них свой код и переделал

Цитата:
Ключевые моменты - каноникализация подписываемого куска XML-я (критически важно) и тупость авторов утилиты cpverify (переставляются полубайты в её выводе).
В том то и дело, что хэшируемый элемент s:body к каноническому виду приведён. Я его из запроса ФСС скопировал.
И эксперименты с soapUI показывают, что этот s:body соответствует
<DigestValue>g2gM6UHHFESVK0JbH/yDCBOXlWQM2ZV24gGfEszLD1Y=</DigestValue>
Ratings: 0 negative/0 positive
Re: хэш по ГОСТ34.11-94
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В "SOAP запросе" - т.е. в том что ты видишь, что по сети гуляет, подписываемая часть xml НЕ будет каноникализирована - там она вообще по сути "внутри" другого xml находится. Я не очень разбираюсь во всех этих правилах - что там и как должно быть... Но просто бегло взглянув - ns S не прописано в Body, да и вообще все ns прописаны во внутреннем теге. Не похоже что это "каноническая" форма...


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 36 (Гостей: 36)

© 2000-2024 Fox Club 
Яндекс.Метрика