ГИС ЖКХ — подпись сообщений

Ранее уже описывал как поднять защищенный туннель с ГИС ЖКХ.Теперь настало время научится делать запросы. Для этого их необходимо подписывать. Подписывается тело сообщения XML заключенное внутри тега body:

Сохраню его в файл in.xml. Далее для работы понадобится сертификат в формате x.509, он выгружается в формате BASE64 из Крипто-про

Понадобится он в бинарном виде:

Далее собираем следующую рыбу:

digest1 считается как хеш-сумма по ГОСТу и выводится в виде BASE64 содержимым тега body (см. выше)

digest2 считается как хэш-сумма бинарного файла сертификата x509 и преобразованное в base64:

cat 509.bin | openssl dgst -engine gost -md_gost94  -binary | base64 >digest2

Далее заполняем блок SignedProperties, а в частности поля x509_issuer_name и x509_sn. Их можно получить соответственно командами:

Причем x509_issuer_name нужно привести к виду:

cn=Тестовый УЦ ООО \»КРИПТО-ПРО\»,o=ООО \»КРИПТО-ПРО\»,l=Москва,st=г. Москва,c=RU,street=ул. Сущёвский вал д.18,1.2.643.3.131.1.1=001234567890,1.2.643.100.1=1234567890123

Тег emailaddress, заменяется на 1.2.840.113549.1.9.1, inn на 1.2.643.100.4, а ogrn на 13 1.2.643.100.1

Теперь необходимо подписать то, что мы заполнили между тегами SignedInfo. У меня получилось что-то вроде:

Подпись осуществляется так:

openssl dgst -sign key.key -out to_sign.sig -binary to_sign

Подпись сохранилась в файл to_sign.sig, помещаем содержимое внутри тега SignatureValue и получившийся таким образом файл пробуем отправить в ГИС ЖКХ.


Некоторые заметки:

1) Как вытащить закрытый ключ с флешки с подписью — нужно воспользоваться утилитой P12FromGostCSP. Если вы пользовались чем-то другим, то с большой долей вероятностью получите ошибку:

2) Формировать подпись через КриптоПро — возможно, но ни у кого не получилось. Рабочий вариант только через OpenSSL. Почему — никто не знает.

3) Есть готовая утилита для формирования шапки с подписью написанная на Python 2.7. Я её перевел на Python3, сделав минимальные косметические изменения. В принципе работает. Скачать тут

1С: Тип не определен (Addln.КартинкаШтрихкода.BarCode)

Такая ошибка возникает в 1С на Linux если не установлена библиотека libpng.so Чтоб не гадать что именно нужно доустановить, можно сделать так:

Чтиво за последнее время

Лето, время спада активности в сфере ИТ. На уме дача, отпуск. Тепло и неохота сидеть за ПК и что-то творить. На работе тоже спад, ничего стоящего упоминания нет. Потому остаётся лишь постить чтиво.

Взрослое:

Карелин Сергей Витальвич. Барон Дубов 1-3. Сюжет: будущее, после катаклизма некоторые люди получили способности к магии. Ну и дальше приключения полуорка-получеловека. 18+. Оценка 4 из 5.

Марченко Ростислав Александрович. Злые звезды. Мура, не смог осилить. Оценка 2 из 5

Матисов Павел. Хозяин Оков 1-4. Сюжет: современник из нашего мира после смерти перерождается во вселенной с магией и богами в теле торговца-рабовладельца. Но тельце оказалось тщедушное. Ну и дальше его приключения. Читабельность 5 из 5

Козмодемьянов Виталий. Курьер. Сюжет: Будущее. Обычный курьер который доставляет посылки между звездными системами случайно получает симбиот древних. И в придачу единственную оставшуюся в живых представительницу древних предков человеческой рассы. Читабельность 4 из 5

Выборнов Юрий. Станция «Бякино». Сюжет: Постаппокалипсис. Зомби. Торговцы ходят между оставшимися островками цивилизации. Одна из них железнодорожная станция «Бякино». До конца не осилил, скучно. Читабельность 3 из 5

Буторин Андрей Русланович. Больное сердце. Сюжет: молодой человек с больным сердцем после смерти попадает в тело своего далёкого потомка..Тоже с больным сердцем. Ну и дальше приключения в космосе. Читабельность 4 из 5

Симонов Денис. Серия «Домовладелец». Аппокалипсис, Пришествие системы и всё такое. Главный герой получает уникальную способность которой нет ни у кого — «мой дом моя крепость». Читабельность 5 из 5

Детское:

Марион Айзек. Тепло наших тел. Продолжаем доблесно читать каждый вечер по пару-тройке страницы постаппокалипсис на тему зомби. Один из зомби — аномален. Он боле мене нормально думает и может конролировать свой голод. А еще влюблен в «живую». Читабельность 3 из 5

Mozilla Thunderbird и Exchange

Штатно этот почтовый клиент не поддерживает работу с этим сервисом. Что чрезвычайно странно. Возможно как-то связано как обычно с политикой Microsoft. Для того чтобы научить работать Thunderbird c Exchange необходимо воспользоваться расширениями. Коих ровно два. Которые по сути один с разными названиями. Которые платные. Которые оплатить нельзя потому что потому. Пришлось стать «благородным пиратом», потому что я не согласен с дискриминацией по национальной принадлежности. Ниже ссылка на «взломанную» версию данного плагина:

P.S. Как только появится возможность купить данное расширение, файл незамедлительно уберу, и расширение куплю.

Считаете ли вы этичным пользоваться взломанным ПО при отсутствии возможности приобрести лицензионное ПО из-за дискриминации по национальному признаку (санкции)

View Results

Загрузка ... Загрузка ...

Китайские Arduino Nano

Это Вася. Он потерял пол дня, по тысяче раз перепроверяя код, соединения и пр.пр.пр. А оно всё равно не работало.. Не будьте как Вася (с)

Ну а если подробнее, то развел вот такую простую платку:

Воплотил её в «железе»:

А оно возьми и не заработай при прошивке. Мало того, даже в мониторе порта при выставленном Serial.begin(9600); пишет без крякозябров только на скорости 2400

Убил всё утро на выяснение причины. Оказалось, что у китайского клона свои частоты работы кремния, а потому стандартные казалось бы скетчи где есть привязка к частотам процессора будут или не работать или работать не верно (датчики температуры, дисплеи и т.д.).

Решение: нужно прошивать плату выставив в Arduino IDE верную плату: LGT8F328P Для этого:

  • Запустить Arduino IDE,
  • перейти в Файл/Настройки/
  • В окошко “Дополнительные ссылки…” Вставить https://raw.githubusercontent.com/dbuezas/lgt8fx/master/package_lgt8fx_index.json
  • Нажать ОК
  • Перейти в Инструменты/Плата/Менеджер плат… Начать вводить в поиске “lgt8”. Выбрать и установить LGT8fx Boards
  • Теперь в списке плат Инструменты/Плата/ появится семейство плат Logic Green…
  • Выбираем свою плату

Для более полной совместимости, Clock Divider можно выставить в 2

Компилируем..прошиваем..и всё начинает работать. Внимательнее нужно быть Вася..

1 2 3 301