Giter VIP home page Giter VIP logo

ncanode's Introduction

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

Сделано с ❤️

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.