О проекте
⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
Если Вам понравился проект, то поставьте ⭐
Возможности
- Кроссплатформенный сервер (Windows, Mac OS, Linux)
- Подпись XML данных
- Проверка подписей
- Получение информации о сертификате
- Проверка цепочки сертификатов до КУЦ
- Поддержка OCSP и CRL
- Поддержка RabbitMQ
- Парсинг дополнительной информации из ИИН
- Работа с API посредством JSON
- Поддержка Docker
- Поддержка TSP
- Поддержка возможности подписи произвольных данных (не только XML)
- Поддержка работы с CMS ( Cryptographic Message Syntax )
- Добавлена интеграция TSP-метки непосредственно в CMS
- Новая версия API🆕
- Добавлена поддержка множественной подписи🆕
- Добавлена поддержка извлечения оргинальных данных из CMS🆕
- Добавлена поддержка алиасов🆕
- Обратная совместимость с API v1.0🆕
- KalkanCrypt v0.6🆕
Кому надо?
Если Вам необходимо реализовать подпись данных будь формата XML или любом другом произвольном формате, при этом на стороне сервера, Вы можете запустить NCANode на сервере и обращаться к нему посредством API (Http/RabbitMQ).
Кто использует?
Исходя из полученных писем от программистов, NCANode используется как в стартапах, так и в крупных страховых компаниях
Пример
Пример запроса (запрос информации о ключе):
{
"version": "1.0",
"method": "PKCS12.info",
"params": {
"p12":"MIINkwIBAzCCDU0GCSqGSIb3DQEHAaCCDTJ3i8pKvvVbY...",
"password":"Qwerty12",
"verifyOcsp": true
}
}
Пример ответа:
{
"result": {
"notAfter": "2019-08-22 18:11:36",
"ocsp": {
"revokationReason": 0,
"revokationTime": null,
"status": "ACTIVE"
},
"chain": [
{
"valid": true,
"notAfter": "2019-08-22 18:11:36",
"keyUsage": "AUTH",
"serialNumber": "122684438670642568061334282296011886211357830154",
"subject": {
"lastName": "ТЕСТОВИЧ",
"country": "KZ",
"commonName": "ТЕСТОВ ТЕСТ",
"gender": "",
"surname": "ТЕСТОВ",
"locality": "АЛМАТЫ",
"dn": "CN=ТЕСТОВ ТЕСТ,SURNAME=ТЕСТОВ,SERIALNUMBER=IIN123456789011,C=KZ,L=АЛМАТЫ,S=АЛМАТЫ,G=ТЕСТОВИЧ",
"state": "АЛМАТЫ",
"birthDate": "12-34-56",
"iin": "123456789011"
},
"signAlg": "SHA256WithRSAEncryption",
"sign": "LLQvGPQP+rdLBTPRf0EgLIo/D9TqxeZ52pRyuCHN...",
"publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMII...",
"issuer": {
"commonName": "ҰЛТТЫҚ КУӘЛАНДЫРУШЫ ОРТАЛЫҚ (RSA)",
"country": "KZ",
"dn": "C=KZ,CN=ҰЛТТЫҚ КУӘЛАНДЫРУШЫ ОРТАЛЫҚ (RSA)"
},
"notBefore": "2018-08-22 18:11:36",
"keyUser": [
"INDIVIDUAL"
]
}
],
"serialNumber": "122684438670642568061334282296011886211357830154",
"subject": {
"lastName": "ТЕСТОВИЧ",
"country": "KZ",
"commonName": "ТЕСТОВ ТЕСТ",
"gender": "",
"surname": "ТЕСТОВ",
"locality": "АЛМАТЫ",
"dn": "CN=ТЕСТОВ ТЕСТ,SURNAME=ТЕСТОВ,SERIALNUMBER=IIN123456789011,C=KZ,L=АЛМАТЫ,S=АЛМАТЫ,G=ТЕСТОВИЧ",
"state": "АЛМАТЫ",
"birthDate": "12-34-56",
"iin": "123456789011"
},
"signAlg": "SHA256WithRSAEncryption",
"sign": "LLQvGPQP+rdLBTPRf0EgLIo/D9TqxeZ52pRyuCHNm5P2iOdSn3DuDid1k4pNFHFDIuJ...",
"publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtKWLOJf9qCqA6EO/SV...",
"issuer": {
"commonName": "ҰЛТТЫҚ КУӘЛАНДЫРУШЫ ОРТАЛЫҚ (RSA)",
"country": "KZ",
"dn": "C=KZ,CN=ҰЛТТЫҚ КУӘЛАНДЫРУШЫ ОРТАЛЫҚ (RSA)"
},
"notBefore": "2018-08-22 18:11:36",
"keyUser": [
"INDIVIDUAL"
],
"valid": true,
"keyUsage": "AUTH"
},
"message": "",
"status": 0
}
Документация
Документацию можно найти на http://ncanode.kz
Авторы
- Malik Zharykov - Initial work
Благодарности
- ⭐ @exe-dealer - За Dockerfile
Также хочу поблагодарить всех, кто даёт обратную связь по ошибкам в разделе "Issues". Спасибо Вам огромное! 😊
Лицензия
Проект лицензирован под лицензией MIT
Важно!!!
По требованию АО «НИТ» | НУЦ РК. Библиотеки kalkancrypt-0.4.jar
и kalkancrypt_xmldsig-0.3.jar
Были удалены из репозитория, поэтому для компиляции Вам необходимо подставить библиотеки
из комплекта разработчика (SDK) в директорию /lib
.
Docker & NCANode
В проекте вы увидите два докерфайла, это:
Dockerfile.build
- этот докерфайл используется для сборки NCANode из исходников. Перед сборкой не забудьте добавить библиотеки KalkanCrypt в директорию /libDockerfile.run
- этот докерфайл используется исключительно для запуска уже скомпилированного NCANode. При запуске, образ скачивает последнюю версию NCANode.
Сделано с ❤️