Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/malikzh/NCANode
⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
https://github.com/malikzh/NCANode
api crl digital-signatures gost java kalkan kazakhstan knca ncalayer ocsp oid pkcs12 pki tsp x509
Last synced: 25 days ago
JSON representation
⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
- Host: GitHub
- URL: https://github.com/malikzh/NCANode
- Owner: malikzh
- License: mit
- Created: 2018-10-18T17:47:39.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-14T05:35:27.000Z (7 months ago)
- Last Synced: 2024-05-14T06:35:44.035Z (7 months ago)
- Topics: api, crl, digital-signatures, gost, java, kalkan, kazakhstan, knca, ncalayer, ocsp, oid, pkcs12, pki, tsp, x509
- Language: Java
- Homepage: http://ncanode.kz
- Size: 1.36 MB
- Stars: 239
- Watchers: 13
- Forks: 84
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-made-in-kz - NCANode
README
![NCANode](NCANode.png)
⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
---
![License:MIT](https://img.shields.io/badge/license-MIT-green.svg)
![Downloads](https://img.shields.io/github/downloads/malikzh/NCANode/total.svg)
![Docker Pulls](https://img.shields.io/docker/pulls/malikzh/ncanode)
[![Build CI and Test](https://github.com/malikzh/NCANode/actions/workflows/build-ci.yml/badge.svg)](https://github.com/malikzh/NCANode/actions/workflows/build-ci.yml)
![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/malikzh/NCANode)
[![codecov](https://codecov.io/gh/malikzh/NCANode/branch/master/graph/badge.svg?token=yk6ln3mlTB)](https://codecov.io/gh/malikzh/NCANode)---
## Возможности
- Кроссплатформенный сервер (Windows, Mac OS, Linux)
- Работа с API посредством JSON
- Подпись XML данных с помощью xmldsig
- Подпись Wsse для [SmartBridge](https://sb.egov.kz/)
- Поддержка OCSP и CRL
- Проверка валидности сертификатов (включая цепочку доверия)
- Поддержка работы с CMS ( [Cryptographic Message Syntax](https://en.wikipedia.org/wiki/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/
## Пример
Пример запроса (запрос информации о ключе):
```json
{
"xml": "test",
"signers": [
{
"key": "MIIHTwIBAzCCBwkGCSqGS...",
"password": "qwerty12"
}
]
}
```Пример ответа:
```json
{
"status": 200,
"message": "OK",
"xml": "test
## Лицензия
Проект лицензирован под лицензией [MIT](LICENSE)
## Важно!!!
По требованию АО «НИТ» | НУЦ РК. Библиотеки `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 (Их можно запросить [тут](https://pki.gov.kz/developers/))
2. `./gradlew bootJar` (для jar файла) или `./gradlew bootWar` (для war файла)Собранный проект будет лежать: `build/libs/NCANode.jar` или `build/libs/NCANode.war`
### Запуск проекта без сборки
Проект запустить можно командой:
```bash
$ ./gradlew bootRun
```### Запуск в Docker из готового образа
```bash
docker volume create ncanode_cache
docker run -p 14579:14579 -v ncanode_cache:/app/cache -d malikzh/ncanode
```### Запуск через Docker Compose
Предварительно нужно собрать проект через gradle и сгенерировать jar файлы
```bash
docker compose build // сборка образа
docker compose up -d // запуск контейнера
docker compose ps // проверка статуса контейнера
docker compose stop // остановка контейнера
```### После запуска
Проверить можно, перейдя на страницу: http://localhost:14579/actuator/health
Сделано с ❤️