Awesome
⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
Возможности
- Кроссплатформенный сервер (Windows, Mac OS, Linux)
- Работа с API посредством JSON
- Подпись XML данных с помощью xmldsig
- Подпись Wsse для SmartBridge
- Поддержка OCSP и CRL
- Проверка валидности сертификатов (включая цепочку доверия)
- Поддержка работы с CMS ( Cryptographic Message Syntax )
- Поддержка TSP-меток в CMS
- Поддержка множественных подписей для xmldsig и CMS
- Возможность добавления подписей уже в существующие файлы CMS и XML
- Поддержка новых ЭЦП (ГОСТ 2015) и новых CRL
- Добавлены тесты на весь функционал
- Docker
Кому надо?
Если Вам необходимо реализовать подпись данных будь формата XML или любом другом произвольном формате, при этом на стороне сервера, Вы можете запустить NCANode на сервере и обращаться к нему посредством API (Http/RabbitMQ).
Кто использует?
Исходя из полученных писем от программистов, NCANode используется как в стартапах, так и в крупных страховых компаниях
СМИ об NCANode
https://profit.kz/news/56732/Otkritij-kod-Beeline-Hacktoberfest-v-Kazahstane/
Пример
Пример запроса (запрос информации о ключе):
{
"xml": "<?xml version=\"1.0\" encoding=\"utf-8\"?><a><b>test</b></a>",
"signers": [
{
"key": "MIIHTwIBAzCCBwkGCSqGS...",
"password": "qwerty12"
}
]
}
Пример ответа:
{
"status": 200,
"message": "OK",
"xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?><a><b>test</b><ds:Signature x..."
}
Документация
Документацию можно найти на http://ncanode.kz
Swagger: https://v3.ncanode.kz/swagger-ui/
Contributors
<a href="https://github.com/malikzh/NCANode/graphs/contributors"> <img src="https://contributors-img.web.app/image?repo=malikzh/NCANode" /> </a>Лицензия
Проект лицензирован под лицензией MIT
Важно!!!
По требованию АО «НИТ» | НУЦ РК. Библиотеки kalkancrypt-*.jar
/knca_provider_jce_kalkan-*.jar
и kalkancrypt-xmldsig-*.jar
Были удалены из репозитория, поэтому для компиляции Вам необходимо подставить библиотеки
из комплекта разработчика (SDK) в директорию /lib
.
Сборка проекта
Версия gradle: 7.2 Версия java: 17
Для сборки проекта необходимо:
- Подставить библиотеки kalkancrypt (
knca_provider_jce_kalkan-*.jar
иkalkancrypt-xmldsig-*.jar
) в директорию lib (Их можно запросить тут) ./gradlew bootJar
(для jar файла) или./gradlew bootWar
(для war файла)
Собранный проект будет лежать: build/libs/NCANode.jar
или build/libs/NCANode.war
Запуск проекта без сборки
Проект запустить можно командой:
$ ./gradlew bootRun
Запуск в Docker из готового образа
docker volume create ncanode_cache
docker run -p 14579:14579 -v ncanode_cache:/app/cache -d malikzh/ncanode
Запуск через Docker Compose
Предварительно нужно собрать проект через gradle и сгенерировать jar файлы
docker compose build // сборка образа
docker compose up -d // запуск контейнера
docker compose ps // проверка статуса контейнера
docker compose stop // остановка контейнера
После запуска
Проверить можно, перейдя на страницу: http://localhost:14579/actuator/health
Сделано с ❤️