⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
Если Вам необходимо реализовать подпись данных будь формата XML или любом другом произвольном формате, при этом на стороне сервера, Вы можете запустить NCANode на сервере и обращаться к нему посредством API (Http/RabbitMQ).
Исходя из полученных писем от программистов, 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/
Проект лицензирован под лицензией MIT
По требованию АО «НИТ» | НУЦ РК. Библиотеки kalkancrypt-*.jar
/knca_provider_jce_kalkan-*.jar
и kalkancrypt-xmldsig-*.jar
Были удалены из репозитория, поэтому для компиляции Вам необходимо подставить библиотеки
из комплекта разработчика (SDK) в директорию /lib
.
Версия gradle: 7.2 Версия java: 17
Для сборки проекта необходимо:
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 volume create ncanode_cache
docker run -p 14579:14579 -v ncanode_cache:/app/cache -d malikzh/ncanode
Предварительно нужно собрать проект через gradle и сгенерировать jar файлы
docker compose build // сборка образа
docker compose up -d // запуск контейнера
docker compose ps // проверка статуса контейнера
docker compose stop // остановка контейнера
Проверить можно, перейдя на страницу: http://localhost:14579/actuator/health
Сделано с ❤️