Skip to content

⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК

License

Notifications You must be signed in to change notification settings

malikzh/NCANode

Folders and files

NameName
Last commit message
Last commit date
Aug 23, 2024
Oct 2, 2022
Aug 11, 2022
May 7, 2024
Aug 23, 2024
Aug 12, 2022
Aug 21, 2022
Sep 7, 2022
Oct 21, 2018
Oct 22, 2018
Aug 23, 2024
Oct 18, 2018
Sep 28, 2022
Oct 22, 2018
Aug 23, 2024
May 13, 2024
Oct 1, 2022
May 7, 2024
Aug 14, 2022
Aug 14, 2022
Sep 7, 2022
Oct 7, 2022
Aug 11, 2022

Repository files navigation

NCANode

⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК


License:MIT Downloads Docker Pulls Build CI and Test GitHub release (latest SemVer) codecov


Возможности

  • Кроссплатформенный сервер (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

Лицензия

Проект лицензирован под лицензией MIT

Важно!!!

По требованию АО «НИТ» | НУЦ РК. Библиотеки kalkancrypt-*.jar/knca_provider_jce_kalkan-*.jar и kalkancrypt-xmldsig-*.jar Были удалены из репозитория, поэтому для компиляции Вам необходимо подставить библиотеки из комплекта разработчика (SDK) в директорию /lib.

Сборка проекта

Версия gradle: 7.2 Версия java: 17

Для сборки проекта необходимо:

  1. Подставить библиотеки kalkancrypt (knca_provider_jce_kalkan-*.jar и kalkancrypt-xmldsig-*.jar) в директорию lib (Их можно запросить тут)
  2. ./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

Сделано с ❤️