Необходимо реализовать формирование XML Digital Signatures

Необходимо реализовать формирование 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


Бюджет: 5000 руб.
Компания: ГК Profi Soft
Вид предложения: Удаленная работа (разовый заказ)
Категория: Программирование

Добавлено: 30.11.2018 в 13:09




Сделайте предложение по проекту:


Для того чтобы ответить на предложение, вам необходимо авторизоваться или зарегистрироваться на сайте


Комментарии:
Kata Kata    30.11.2018   14:06:54     

Здравствуйте
Готова выполнить
Почта Kata1987@bigmir.net
Илья Грачёв    30.11.2018   14:13:31   

Добрый день! Сколько стоит Ваша работа?