Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание
Реализация TCP с поддержкой TLS 1.3 сервера и клиента, используя boost::asio.

Сервер принимает команду и строку.
Сервер обрабатывает одну команду: xml_sign. Для XML используются  Open Source библиотеки.
Команда xml_sign принимает на вход XML строку и формирует XML подпись, согласно алгоритму
формирования XML Signature (алгоритм подписи: RSAWithSHA1, Enveloped-signature transform method,
C14N canonicalization method).
Для криптографических операций используется напрямую OPENSSL, все примитивы для которых требуется
выделение/очистка памяти, используя функции OPENSSL,  обернуты в smart указатели.

Клиенту возвращается подписанное сообщение.

Клиентское приложение написано на Python, вызывает функции из С++ модуля.
В рамках С++ модуля  реализовано сетевое взаимодействие. Реализована функция которая принимает
из Python структуру содержания: command строка, value строка. C++ модуль сериализует команду и значение
в одну строку и посылает по сети серверу. Если команда xml_sign - верифицирует подпись, вернувшуюся от сервера.
В ответ возвращает в Python структуру: result bool, value строка.

Сборка через CMake.
В папке cert ключи/сертификаты для тестирования.


Зависимости
    xmlsec1
    xslt
    xml2
    ssl
    crypto


Сборка и установка
скопировать ключи и сертификаты из cert в /opt/cert
xml-файл для отправки и подписи: client/src.xml

cmake .
make

запуск сервиса
app/app

запуск клиента
cd client
python client.py


Важно: clang-ом не собирать.
Иначе вызов xmlSecCryptoDLLoadLibrary() возвращает !=0 (ошибка).

About

service for sign xml

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages