Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы, WCF
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/501: Рейтинг темы: голосов - 501, средняя оценка - 4.71
 Аватар для Zmeishe
23 / 22 / 1
Регистрация: 31.08.2016
Сообщений: 178
21.12.2016, 14:08
Студворк — интернет-сервис помощи студентам
В свою программу тоже грузи из файла программно, а не через копипасту из текстового редактора.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.12.2016, 14:08
Ответы с готовыми решениями:

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (3)
Предыдущая тема: https://www.cyberforum.ru/web-services-wcf/thread1776736.html Кто нибудь знает откуда брать справочники NsiRef по...

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ
Здравствуйте! Передо мной стоит задача интеграции с системой ГИС ЖКХ (https://dom.gosuslugi.ru/) программой, написанной на языке...

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (5)
Предыдущая тема: https://www.cyberforum.ru/web-services-wcf/thread1840159.html И так мы Я и umatkot, Берёмся за реализацию всего этого...

718
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 10
21.12.2016, 14:32
Цитата Сообщение от Zmeishe Посмотреть сообщение
Если совпадёт, значит твоя проблема в использовании библиотеки libxml2.
Хеш сошёлся тютелька в тютельку.

А вот канонизация подкачала.
У меня вот такой блок для подписи пошёл. Очевидно в режиме exclusive у меня не спускаются namespace-ы тагов, только для параметров спускаются(xmlns:base - есть, xmlns:nsi-common - нет).. но почему - теологическая загадка.
XML
1
2
3
<nsi-common:exportNsiListRequest xmlns:base="http://dom.gosuslugi.ru/schema/integration/base/" Id="signed-data-container" base:version="10.0.1.2">
         <nsi-base:ListGroup>NSI</nsi-base:ListGroup>
      </nsi-common:exportNsiListRequest>
Что интересно аналогично у меня не сходятся и данные по SignedProperties, хотя тот канонизирется без exclusive.
0
 Аватар для Zmeishe
23 / 22 / 1
Регистрация: 31.08.2016
Сообщений: 178
21.12.2016, 15:14
Цитата Сообщение от beerbis Посмотреть сообщение
А вот канонизация подкачала.
Вот надёргал из разных кусков. Проверяй, думаю ничего не пропустил.

Работа с библиотекой libxml2
C++ (Qt)
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
    xmlDocPtr c14n_Doc;
    c14n_Doc = xmlParseMemory( xml.data(), xml.size() );
 
    int pos;
    int size;
    QString key;
    QByteArray array;
    std::string xmlPath;
    xmlChar *doc_txt_ptr = NULL;
 
    xmlXPathObjectPtr   xpathObj = NULL;
    xmlXPathContextPtr  xpathCtx = NULL;
 
    xmlPath = pathPattern.toStdString(); // например pathPattern = "(//. | //@* | //namespace::*)[ancestor-or-self::nsi-common:exportNsiListRequest]";
    xpathCtx = xmlXPathNewContext( c14n_Doc );
 
        QMap<QString, QString>::const_iterator it = p_docNameSpace.constBegin();
        while (it != p_docNameSpace.constEnd()) {
            key = it.key();
            pos = key.indexOf(":");
            if(pos > -1)
                key.remove(0, pos + 1);
 
            xmlXPathRegisterNs(xpathCtx, BAD_CAST QString(key).toStdString().c_str(), BAD_CAST  QString(it.value()).toStdString().c_str() );
            ++it;
        }
 
    xpathObj = xmlXPathEvalExpression(BAD_CAST xmlPath.c_str(), xpathCtx);
    if(xpathCtx) xmlXPathFreeContext(xpathCtx);
 
    size = xmlC14NDocDumpMemory(c14n_Doc, (xpathObj->nodesetval ? xpathObj->nodesetval: NULL), c14nM_mode, NULL, 0, &doc_txt_ptr);
    if (xpathObj) xmlXPathFreeObject(xpathObj);
 
    if( size > 0 )
    {
        array = QByteArray((char*) doc_txt_ptr, size); // результат
        xmlFree(doc_txt_ptr);
    }
 
    if(c14n_Doc) xmlFreeDoc( c14n_Doc );
Массив p_docNameSpace для первой хеш суммы выглядит так
QMap(
("xmlns:base", "http://dom.gosuslugi.ru/schema/integration/base/")
("xmlns:nsi-base", "http://dom.gosuslugi.ru/schema/integration/nsi-base/")
("xmlns:nsi-common", "http://dom.gosuslugi.ru/schema/integration/nsi-common/")
("xmlns:soap", "http://schemas.xmlsoap.org/wsdl/soap/"))

т.е. ключ, значение.

Переменная c14nM_mode равна либо XML_C14N_EXCLUSIVE_1_0, либо XML_C14N_1_0
1
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 10
21.12.2016, 19:13
Цитата Сообщение от Zmeishe Посмотреть сообщение
(//. | //@* | //namespace::*)
Безмерно благодарствую!
Что наиболее забавно, как водится, самым полезным оказался ни к чему не обязывающий кометарий.
Я в XPath не пропускал namespace-ы. Ну и в результате коконизация проходила не кононично.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 02:33
Ребята, а у хочу задать вопрос. Вы используете КриптоПро для доступа к ГОСТ?
Если нет, и вы уже так глубоко зашли в подписи, то как опытные, можете сказать: возможно ли избежать КриптоПро для формирования ГОСТ, например с помощью OPENSSL используя библиотеку gost?
Или в КриптоПро выставляются какие-то специальные параметры алгоритма(я подозреваю)?
0
32 / 30 / 0
Регистрация: 21.10.2016
Сообщений: 187
22.12.2016, 07:34
Я использую КриптоПро.
А так есть и те, кто openssl https://habrahabr.ru/post/300856/
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 07:56
muf, Тоже читал, но не пробовал - статья появилась немного не вовремя, если бы она была бы пораньше.... Там используется сама OPENSSL. А либа gost, кажется, ещё с исходниками, если я не ошибаюсь? Можно же самим же создать хоть на C#, хоть на С++ или там много печатать? Не делать криптопровайдер - это да, а внедрить алгоритм в код. только потом придётся сертифицировать своё решение)))
0
6 / 5 / 0
Регистрация: 10.03.2015
Сообщений: 58
22.12.2016, 08:19
А есть те, кто на JAVA подпись запросов реализовал?
1
 Аватар для Zmeishe
23 / 22 / 1
Регистрация: 31.08.2016
Сообщений: 178
22.12.2016, 08:36
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
только потом придётся сертифицировать своё решение
Мне безопасник пояснил.
Если в ФСБ`шном формуляре оценки соответствия на КриптоПРО и на КриптоПРО API SDK написано, что Linux+SSL+КриптоПРО+ещё чего-нибудь, тогда своё ПО, писанное для Linux уже сертифицировать не надо при использовании Linux+SSL+КриптоПРО+то самое.
Для винды так же.
А вот если вы свой виндовый софт и виндовый КриптоПРО запихиваете, например, в Linux через какой-нибудь WINE, то сертифицировать надо, если в ФСБ`шном формуляре о такой комбинации ничего не сказано.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 08:55
trawinka, Было дело - на Java, я тогда только начинал исследовать этот вопрос и пробовал всё подряд. Если взяться поконкретнее, то получится результат как на C# или как делают ребята выше - используется Криптопровайдер от КриптоПро. Кстати, при должном опыте, наверное, можно реализовать подпись и силами 1С. А вообще, цель - избавиться от КриптоПро. Но придётся проходить сертификацию самим. Вообще, это не настолько важно, пока можно попользоваться и КриптоПро, но чувствует моё сердце, что нужно, нужно это людям - и не нужно им КриптоПро(я не про обычных пользователей, а про разработчиков ПО и ИС).

Добавлено через 5 минут
Zmeishe, Там целый Криптопровайдер с интеграцией в систему - а желательно сделать только туль, который будет выполнять конкретную задачу. Ну а смысл мудрить с OPENSSL если уже используется Криптопровайдер? Масло получается. Я устанавливал на линуху КриптоПро и его .NET - всё работает без OPENSSL. Если Вы имеете ввиду только защищённый канал, то да, вероятно, там требуется она. Если просто подписывать и проверять, то точно - нет как сейчас на винде. Вообще, реализация, что на винде, что на линухе - одинаковая, только там для контейнера нужно то, что сейчас называется ...... Ох, как её тогда не хватало... Может кому пригодится - ребята просто молодцы, что сделали сие чудо.

Добавлено через 25 секунд
Вот оно

Добавлено через 8 минут
Не хочет грузиться (может и не зря)
P12FromGostCSP
0
 Аватар для Zmeishe
23 / 22 / 1
Регистрация: 31.08.2016
Сообщений: 178
22.12.2016, 09:00
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
Не хочет грузиться (может и не зря)
P12FromGostCSP
Сжать надо, чтоб грузилось
Вложения
Тип файла: rar P12FromGostCSP.rar (299.9 Кб, 23 просмотров)
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 09:04
Zmeishe, Я сжимал - что-то с нашим проксиком. Глючит постоянно.

Добавлено через 2 минуты
Zmeishe, кстати, я сделал маппинги)) Ох, теперь у меня много-много таблиц в базе))) Осталось понять, как их заполнять оптимально) С ГИС идёт много мусора и SVCUTIL этот мусор плодит в каждой сборке.
0
 Аватар для Zmeishe
23 / 22 / 1
Регистрация: 31.08.2016
Сообщений: 178
22.12.2016, 09:24
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
этот мусор плодит в каждой сборке.
Лучшее - враг хорошего. По этой причине я делаю таблицы вручную, чтобы ничего лишнего не было и БД в помойку не превращать.
Иначе никому нельзя будет поручить, что-либо сделать в БД, отчёт например.
А делать абсолютно всё самому - это неправильно.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 09:26
Zmeishe, Я буду просто удалять руками лишнее - просто для создания скелета структуры мне бы пришлось перелопатить Альбом ТФФ, а теперь у меня классы идут сами - я их могу объединить или удалить, но это не добавлять с 0 ЛЯ... работы было бы там немерено - у меня файл маппингами ушёл за 5000 строк. Вот пример
Вложения
Тип файла: 7z HouseManagementServiceNhMap.7z (18.6 Кб, 16 просмотров)
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 09:29
Цитата Сообщение от Zmeishe Посмотреть сообщение
А делать абсолютно всё самому - это неправильно.
Согласен, надо ухитриться хоть что-то автоматизировать)))

Добавлено через 1 минуту
Надо проверять это дело и как раз с расщеплением проверю - как работает.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 09:44
Zmeishe, Наверное - лучшая новость за этот год. Но лучше доделать всё к виртуальным срокам - так как реально уже надоело возиться с одной и той-же системой.... Какой бы она совершенной и законченной ни была (по словам представителей Минсвязи)
0
13 / 11 / 0
Регистрация: 05.02.2016
Сообщений: 79
22.12.2016, 09:51
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
Если нет, и вы уже так глубоко зашли в подписи, то как опытные, можете сказать: возможно ли избежать КриптоПро для формирования ГОСТ, например с помощью OPENSSL используя библиотеку gost?
Если интересуют альтернативы, то у меня подписываются запросы с помощью эцп рутокен флеш и библиотеки от рутокена.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.12.2016, 10:31
miron_valentin, КриптоПро нет на машине? А как система Windows распознаёт сертификат в хранилище? Или в хранилище не помещаете, а работаете сразу с токеном? Странно то, что для работы вообще-то должна быть выстроена цепура доверия, видимо, она срабатывает в RuToken как-то?
Кстати, в Linux не очень приятно работать с Рутокеном - я как -то смотрел их драйвера - так и не получилось до конца дело довести в Linux- перешёл на винду.

Добавлено через 36 минут
miron_valentin, Могу ли я посмотреть ссылку на библиотеку от Рутокен, которой Вы пользуетесь, если она в открытом доступе?
0
13 / 11 / 0
Регистрация: 05.02.2016
Сообщений: 79
22.12.2016, 14:28
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
КриптоПро нет на машине? А как система Windows распознаёт сертификат в хранилище? Или в хранилище не помещаете, а работаете сразу с токеном?
Есть, но для других целей. В проекте ссылок на криптопро нет) Сразу с токеном работаю. Я ему подаю данные, он их шифрует.
Делаю все под виндой.
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
Могу ли я посмотреть ссылку на библиотеку от Рутокен, которой Вы пользуетесь, если она в открытом доступе?
Они ее почему-то в открытый доступ не выкладывают и дают только по просьбе на своем форуме. Могу скинуть, если не боитесь, а то кто-то уже высказывал свои опасения по поводу этой библиотеки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2016, 14:28

.NET 4.x Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (2)
Начало темы здесь: https://www.cyberforum.ru/web-services-wcf/thread1615223.html umatkot, Да, к этому и пришел....а на дворе 1 июля ...

Интеграция с ГИС ЖКХ и подпись SOAP без Крипто .NET и stunnel
Решил создать отдельную тему, так как в теме Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (4) - C# WCF уже можно заблудиться....

Осуществить подпись SOAP, по стандартам ГИС ГМП, принятого через TCP сокет
Здравствуйте. Требуется осуществить подпись SOAP, по стандартам ГИС ГМП, принятого через тсп сокет. Со второй частью все понятно, а вот с...

Ошибки интеграции ГИС ЖКХ
Я много тут читал форум по интеграции ГИС. На старте, впрочем, как и в последствии возникает много траблов с интеграцией. Есть идея вынести...

Soap, Java, Гис ЖКХ
Добрый день! Имеет ли кто опыт работы с soap в Java? Поставлена задача наладить работу с ГИС ЖКХ, До этого не работал с SOAP, почитал все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
480
Закрытая тема Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru