Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
10 дней назад
Илья
35 лет, Казахстан
10 дней в сервисе
Был онлайн 7 дней назад
10 дней назад

Необходимо реализовать формирование XML Digital Signatures (https://www.xml.com/pub/a/2001/08/08/xmldsig.html) на C++
Входные данные:
xml-документ в виде строки (необходимо подписать корневой элемент)
сертификат ЭЦП (файл p12 в виде base64 строки от двоичных данных)
пароль к сертификату (строка)
CanonicalizationMethod - алгоритм, применяемый для каноникализации xml ("http://www.w3.org/TR/2001/REC-xml-c14n-20010315")
DigestMethod - алгоритм вычисления хэша ("sha256")
SignatureMethod - алогоритм, используемый для генерирования и валидации подписи ("rsa-sha256")
На выходе должны получить подписанный xml-документ в виде строки


Пример на python с использованием библиотек OpenSSL, signxml, lxml


from OpenSSL import crypto
from signxml import XMLSigner, methods
from lxml import etree

data_to_sign = 'XML СТРОКА'

p12 = crypto.load_pkcs12(file("ФАЙЛ СЕРТИФИКАТА ЭЦП", 'rb').read(), "ПАРОЛЬ К СЕРТИФИКАТУ")

key = crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey())
cert = crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate())

root = etree.fromstring(data_to_sign)
signed_root = XMLSigner(methods.enveloped, signature_algorithm=u'rsa-sha256', digest_algorithm=u'sha256',
c14n_algorithm=u'http://www.w3.org/TR/2001/REC-xml-c14n-20010315').sign(root,
key=key, cert=cert)


output = etree.tostring(signed_root, encoding='utf8', method='xml')


Дополнительно необходимо все это оформить в виде внешней компоненты 1С
методика создания и пример https://its.1c.ru/db/metod8dev#content:3221:hdoc

Войдите в аккаунт, чтобы добавить заявку и открыть данные заказчика.

Заявки фрилансеров

10 дней назад
Трофим П.
56 лет, Россия
3 года в сервисе
Был онлайн 2 дня назад

Безопасный платеж

WebMoney

WebMoney

Похожие заказы

Для программистов ядра 8051 (cc2540 + bluetooth 4)

Необходимо реализовать ПО для cc2540. ПО выполняет функцию метки, то есть основная функция - advertising. Вспомогательные функции: чтение с помощью АЦП уровня бортовой батареи, перехват нажатия одной кнопки. Более подробно в прикрепленном файле или п...

Необходимо создать скрипт сайта (Apache, Debian 6)

необходимо создать скрипт сайта на Debiane, Apache: скрипт для одноплатного компьютера (наполнение простое), возможности: резервное копирование желательно всей OS на USB диск, отслеживание изменений файлов и их синхронизация в одну сторону: с OS на U...

Функция звонок с сайта

Необходимо реализовать функцию "звонок с сайта" (на ASTERISK ) на компьютер-сервер. Звонки с сайта должны быть многоканальные(многоканальность должна регулироваться), должна присутствовать очередь (кажд абонент может совершать звонки по 2 м...

Разработка программного обеспечения для микроконтроллеров ARM Cortex

Техническое задание на разработку программного обеспечения для микроконтроллеров ARMCortexM Название проекта, описание “ELC-SND”– комплекс устройств, осуществляющих распределенные измерения мощности и

Разработка ПО для POS терминала PC1000 (M100)

Необходимо: 1. реализовать имеющийся JSON протокол на C/C++ (есть SDK) с использованием HTTPS, GZip, DES-шифрования, используя многопоточность. 2. Написать GUI, реализованное на другом программном продукте 3. Среда передачи данных - GSM (есть SDK)

Разработка нейросети для определения пола по фотографии

Приветствую! Необходимо разработать нейросеть. Должна определять пол человека или людей на фотографии. В заявках обязательно укажите на каком стеке технологий готовы реализовать данный проект и почему, а так же сроки.

Программирование микроконтроллера ATMEGA 8A и SIM800, GPRS канал связи

Электронная плата с микроконтроллером ATMEGA 8A (10 входов - сухие контакты и 10 выходов - сухие контакты), имеющая набор интерфейсов на базе GSM-чипа SIM800 (SIM800 is a quad-band GSM/GPRS module that works on frequencies GSM 850MHz, EGSM 900MHz, DC...

Реализовать AutobahnCPP клиент для OpenWRT / LEDE

Имеется работающий прототип программы на PHP и на Python. Необходимо написать программу на C, c применением https://github.com/crossbario/autobahn-cpp и собрать в OPKG пакет для установки. Результат

Разработать веб систему для проведения совещаний

Необходимо разработать информационную систему для автоматизации проведения встреч, совещаний, заседаний. Требования (кратко) -Возможность проведения голосования по вопросам -Возможность автоматического и ручного формирования отчетов -Возможность лич

Рефакторинг кода на C#, изменение значений переменных

Необходимо отрефакторить исходный код модуля, вместо динамических значений констант указать константные значения усредненные. Протестировать. Сохранить версионность. Требования: Связь по скайпу или телефону голосом/чатом Базовые знания C#