NCANode
⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
Install / Use
/learn @ncanode-kz/NCANodeREADME

⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
Возможности
- Кроссплатформенный сервер (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
Официальная группа в Telegram
В целях оперативного решения проблем / помощи, была создана официальная группа в Telegram: http://t.me/ncanode
Кому надо?
Если Вам необходимо реализовать подпись данных будь формата 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
Как отправить Pull Request
Если вы нашли и исправили ошибку, пожалуйста, отправьте Pull Request — я обязательно его рассмотрю.
Если требуется срочное рассмотрение вашего PR, напишите в группу Telegram.
Сделано с ❤️
Related Skills
gh-issues
354.0kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
354.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
354.0kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
taskflow-inbox-triage
354.0kname: taskflow-inbox-triage description: Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some w
