Coder Social home page Coder Social logo

malikzh / ncanode Goto Github PK

View Code? Open in Web Editor NEW
246.0 14.0 84.0 1.39 MB

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

Home Page: http://ncanode.kz

License: MIT License

Java 51.90% Groovy 47.96% Dockerfile 0.13%
kazakhstan ncalayer kalkan pki ocsp knca x509 pkcs12 gost api

ncanode's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ncanode's Issues

Клиентская сторона (NCALayer)

Как у пользователя забирать ключ p12 и пароль чтобы передать его по api?

  • через NCALayer я как то могу получить сам ключ p12?
  • я могу как обычный файл у пользователя забирать его ключ и пароль к себе? и потом передавать его по api, или это запрещено по закону?

При проверке подписании RAW.verify

{
"version": "1.0",
"method":"RAW.verify",
"params": {
"cms":"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",
"verifyOcsp": false,
"verifyCrl": false
}
}
Для примера пытался проверить из документации подписание пришло

{
"message": "Api error: certificate expired on 20190822121136GMT+00:00",
"status": 5
}

Хотелось бы проверить подпись не получаеться

Ошибка функции cms.verify

При вызове функции cms.verify получаю ошибку
{ "message": "Api error: null", "status": 5 }

В postman то же самое.

Running in "http" mode... Starting HTTP server on 127.0.0.1:14579... java.security.cert.CRLException: Incomplete BER/DER data at sun.security.provider.X509Factory.engineGenerateCRL(Unknown Source) at java.security.cert.CertificateFactory.generateCRL(Unknown Source) at kz.ncanode.pki.CrlServiceProvider.verify(CrlServiceProvider.java:51) at kz.ncanode.pki.PkiServiceProvider.certInfo(PkiServiceProvider.java:174) at kz.ncanode.api.version.v20.controllers.CmsController.verify(CmsController.java:201) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at kz.ncanode.api.core.ApiController.invokeMethod(ApiController.java:56) at kz.ncanode.api.core.ApiController.callMethod(ApiController.java:38) at kz.ncanode.api.version.v20.ApiVersion20.process(ApiVersion20.java:97) at kz.ncanode.api.ApiServiceProvider.process(ApiServiceProvider.java:96) at kz.ncanode.interaction.interactors.HttpInteractor$HttpApiHandler.handle(HttpInteractor.java:95) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.AuthFilter.doFilter(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source) at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.handle(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at kz.ncanode.api.core.ApiController.invokeMethod(ApiController.java:56) at kz.ncanode.api.core.ApiController.callMethod(ApiController.java:38) at kz.ncanode.api.version.v20.ApiVersion20.process(ApiVersion20.java:97) at kz.ncanode.api.ApiServiceProvider.process(ApiServiceProvider.java:96) at kz.ncanode.interaction.interactors.HttpInteractor$HttpApiHandler.handle(HttpInteractor.java:95) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.AuthFilter.doFilter(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source) at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.handle(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: kz.ncanode.api.exceptions.ApiErrorException at kz.ncanode.api.version.v20.controllers.CmsController.verify(CmsController.java:206) ... 19 more

Ошибка при проверке подписи

Добрый день. В чем может быть причина ошибки? Начала появляться дня два назад. До этого было норм.
NCANode v2.3.0

java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at kz.ncanode.api.core.ApiController.invokeMethod(ApiController.java:67)
at kz.ncanode.api.core.ApiController.callMethod(ApiController.java:39)
at kz.ncanode.api.version.v20.ApiVersion20.process(ApiVersion20.java:99)
at kz.ncanode.api.ApiServiceProvider.process(ApiServiceProvider.java:96)
at kz.ncanode.interaction.interactors.HttpInteractor$HttpApiHandler.handle(HttpInteractor.java:99)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:692)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:664)
at jdk.httpserver/sun.net.httpserver.ServerImpl$DefaultExecutor.execute(ServerImpl.java:159)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Dispatcher.handle(ServerImpl.java:442)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:408)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: kz.ncanode.api.exceptions.ApiErrorException: Connection timed out (Connection timed out)
at kz.ncanode.api.version.v20.controllers.InfoController.pkcs12(InfoController.java:92)
... 19 more

Извлечение данных из CMS

Необходимо реализовать метод:

CMS.extract

который будет извлекать документ из CMS-файла. Метод не будет принимать никаких параметров.

java heap space

https://ibb.co/SKtzmbH
Добрый день. Спасибо за отличную разработку. По не определенным причинам выходит ошибка памяти, настройки java памяти увеличивали, не помогает.

Версия kalkancrypt-0.6.1.jar

Добрый день!

Скачал SDK, но в нем только kalkancrypt-0.6.1.jar, версии 0.6 нет в комплекте.

Я исправил в pom.xml таким образом:

<dependencies>
      <dependency>
            <groupId>pki.gov.kz</groupId>
            <artifactId>kalkancrypt</artifactId>
            <version>0.6.1</version>
      </dependency>
</dependencies>
<build>
      <pluginManagement>
            <plugins>
                  <plugin>
                        <executions>
                              <execution>
                                    <id>install-external</id>
                                    <phase>clean</phase>
                                    <configuration>
                                          <file>${basedir}/lib/kalkancrypt-0.6.1.jar</file>
                                          <repositoryLayout>default</repositoryLayout>
                                          <groupId>pki.gov.kz</groupId>
                                          <artifactId>kalkancrypt</artifactId>
                                          <version>0.6.1</version>
                                          <packaging>jar</packaging>
                                          <generatePom>true</generatePom>
                                    </configuration>
                                    <goals>
                                          <goal>install-file</goal>
                                    </goals>
                              </execution>
                        </executions>
                  </plugin>
            </plugins>
      </pluginManagement>
</build>

Собрал новый docker-образ.

При вызове метода node.info (API v2) я получаю "kalkanVersion": null

{
    "dateTime": "2021-07-09 08:34:22",
    "timezone": "GMT",
    "kalkanVersion": null,
    "name": "NCANode v2.3.0",
    "message": "",
    "version": "2.3.0",
    "status": 0
}

Как исправить ошибку?

Спасибо!

Еще в файле pom.xml исправил 2.3.0 было 2.0.0

api v2 / cms.verify - проверка TSP

Добрый день, имеется подпись сделанная в прошлом году.
Прошло более года, подписант уже перевыпустил сертификаты.

Запрос на проверку подписи:

'version' => '2.0',
'method'  => 'cms.verify',
'params'  => [
    'cms'  => '....',
    'verifyOcsp' => false,
    'verifyCrl'  => false
]

Возвращает такой результат: Api error: certificate expired on 20200207084020GMT+00:00
Как я понял - скорее всего не используется проверка TSP метки?

Юридическое обоснование

Здравствуйте, у вас отличный проект. Можете подсказать с юридической точки зрения, насколько правомерно передавать ключи пользователей на свой сервер? Т.е. могу ли я использовать ваш сервер на проекте, на котором любой пользователь может зайти и что-то подписать? Или пользоваться может только ограниченный круг, который подписал определнное соглашение?

Баг с TSP сервисом

Вызов метода TSP SIGN для получения метки времени от этой base64 строки вызывает 500-ую ошибку в вашем сервисе.
Эта ошибка возникает в обеих версиях NCANode-а. Также заметили, что не только для этого файла возникает эта проблема, периодически клиенты замечают такую ошибку и для других файлов. Мы уже поиграли с комбинациями, такое ощущение, что он ругается на какие-то символы в самой строке RAW.

При подписании ошибка Api error: http://crl.pki.gov.kz/d_rsa.crl

При подписании с 1 первой версии выходит ошибка
Api error: http://crl.pki.gov.kz/d_rsa.crl
по ссылке такого файла нет. Можете ли вы обратиться в Национальный удостоверящей центр Республики Казахстан
чтобы исправить эту ошибку. Благодарен.
если что в файле ncanode.ini думаю можно убрать ссылку на этот файл? или я не прав

Добавить поддержку TSP

Надо будет добавить поддержку TSP

В методе XML.sign, добавить опцию tsp: [true|false], чтобы TSP сразу формировалась при создании подписи.

Добавить методы: TSP.sign и TSP.verify

Вопрос о структуре подписанного документа и элементе wsse:Security

Добрый день.
Мы интегрируемся с сервисами smartbridge и хотим использовать ваш проект для подписания запросов.
Однако структура подписанного документа, сформированного согласно рекомендациям smartbridge, отличается от структуры, которую генерирует ncanode. В итоге при отправке запросов в smartbridge мы получаем ошибку, связанную с тем, что в запросе нет элемента wsse:Security.

Вот сокращённый пример запроса, сфомированного и подписанного без ncanode, используя пример кода на java, который мы получили smartbridge. Он работает успешно:

<?xml>
<soap:Envelope>
    <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
        <wsse:Security>
            <ds:Signature>
                <ds:SignedInfo>...</ds:SignedInfo>
                <ds:SignatureValue>...</ds:SignatureValue>
                <ds:KeyInfo>...</ds:KeyInfo>
            </ds:Signature>
        </wsse:Security>
    </SOAP-ENV:Header>
    <soap:Body>
        <SendMessage>
            <request xmlns="">...</request>
        </SendMessage>
    </soap:Body>
</soap:Envelope>

А вот тот же запрос, подписанный через ncanode, метод XML.sign:

<?xml>
<soap:Envelope>
    <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
    <soap:Body>
         <request xmlns="">...</request>
    </soap:Body>
    <ds:Signature>
        <ds:SignedInfo>...</ds:SignedInfo>
        <ds:SignatureValue>...</ds:SignatureValue>
        <ds:KeyInfo>...</ds:KeyInfo>
    </ds:Signature>
</soap:Envelope>

Основное отличие в том, что ncanode добавляет подпись в элементе, не завёрнутом в <wsse:Security>.

Подскажите: верно ли мы формируем запрос для ncanode? Обязателен ли в принципе элемент <wsse:Security>?
Конечно, можно внести изменения в ncanode src/main/java/kz/ncanode/api/version/v10/methods/XMLSign.java и поменять логику формирования подписи. Это наверняка сломает совместимость с существующими клиентами проекта, но если вы одобрите, то я с удовольствием сделаю пулл-реквест.

Спасибо!

Пустая цепочка корневых сертификатов

Добрый день!

Я пишу Go клиента для API NCANode. Все методы практически покрыты, кроме RAW.verify. С последним есть сложности, так как получаю Api error: Cannot find certificate issuer от API. Проверяя PKCS12.info заметил что для всех сертификатов от комплекта разработчика от НУЦ (получил 02.09.2020) цепочка в ответе (chain) всегда пустая, что и проводит к ошибке выше.

Вопрос: связано ли это как-то с версией библиотеки kalkancrypt? На руках последняя kalkancrypt-0.6.1.jar.
Или вопрос к НУЦ и комплекту?

Подскажите пжл-та с чего начать проверку.

"kalkanVersion": null

Подставил библиотеки из комплекта разработчика (SDK) в директорию /lib.
переименовал файл Dockerfile.build на Dockerfile и запустил команду

   docker build -t malikzh/ncanode .

после запустил команду

   docker run -ti -p 14579:14579 malikzh/ncanode

и при запросе

{
    "version": "2.0",
    "method": "node.info"
}

возвращает

{
    "dateTime": "2020-10-10 07:04:56",
    "timezone": "GMT",
    "kalkanVersion": null,
    "name": "NCANode v2.0.1",
    "message": "",
    "version": "2.0.1",
    "status": 0
}

где я делаю не так? спасибо

Ошибка 500 при запросе XML.verify

Привет, отличная работа этим продуктом, подскажите пож-та, посылаем запрос:

{"version":"1.0","method":"XML.verify","params":{"xml":"54d18b40c2de390e912f53c9fb175e64<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#\">\r\nds:SignedInfo\r\n<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>\r\n<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256\"/>\r\n<ds:Reference URI="">\r\nds:Transforms\r\n<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>\r\n<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/>\r\n</ds:Transforms>\r\n<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256\"/>\r\nds:DigestValuew4RBCS9l0/JkxLFgL6VwrY28edp5/yKkZOopRACmYfI=</ds:DigestValue>\r\n</ds:Reference>\r\n</ds:SignedInfo>\r\nds:SignatureValue\r\nJEFeBhXSemuQusnqAq1MSd8hIJeCQt+/vVSyOS33E32BVPqhxYadwsW5Kv09TrOSgky5Ln//bZbD\r\nlBwZ8jQR5cNGNOEECM2/uxl56Ps0ct9CjUEGcRBuED1IzRWt/gYa08ZDCMjwDr/zvB7vibg9FEnS\r\nE6mKxpJfX3IAi3aFf3WzV2lSndRwbtLt39T9De3hYLIbbhYuVzt5HDBpT+uUsGccsGd/2CHyTxgS\r\nJzFBzoztoyuupyR0vUiqTndwvn5soc+a+kGze7ertk/w2GFKHqYqCc9whJzDDFVUSXNDL8DQs4qw\r\nrCslANMJogc0PysQghiRNm6Ak9g7kSLN+CceZg==\r\n</ds:SignatureValue>\r\nds:KeyInfo\r\nds:X509Data\r\nds:X509Certificate\r\nMIIGQzCCBCugAwIBAgIUPic8P9v7crVTrAeVuEfwa+m0cW8wDQYJKoZIhvcNAQELBQAwUjELMAkG\r\nA1UEBhMCS1oxQzBBBgNVBAMMOtKw0JvQotCi0KvSmiDQmtCj05jQm9CQ0J3QlNCr0KDQo9Co0Ksg\r\n0J7QoNCi0JDQm9Cr0pogKFJTQSkwHhcNMjAxMjA5MDMyMzAzWhcNMjExMjA5MDMyMzAzWjCBhTEk\r\nMCIGA1UEAwwb0KjQnNCY0JTQoiDQktCb0JDQlNCY0JzQmNCgMRMwEQYDVQQEDArQqNCc0JjQlNCi\r\nMRgwFgYDVQQFEw9JSU41OTA3MTIzNTAwOTgxCzAJBgNVBAYTAktaMSEwHwYDVQQqDBjQktCb0JDQ\r\nlNCY0JzQmNCg0J7QktCY0KcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCC313P3XHL\r\nH66zlGCDM/mHR94bAQaU8CfI4pdmrvQQcA5Gqy/w+eODgGLBYs4PrxI1T31TvX/qp1sYOOuv+noO\r\nvMdkgEaHlJRseLSHoqZ6dCMx/GsOwL2lhTvqvmg6/DPeYOANYa3lRe8hnPGgyRa3PLUoaQrhhGxX\r\nBymS0SbGhxCimxriPxmU+fl1aWDpByPjjx30DISFcbA4JlySaGLzK8HBLhSsr2/gNcDFChDKXled\r\n4eufiU+LaW+l1dF6mt03+YAgkp0nRlu3Gg/9ban2YTgKKfdn5HB9YKC87hKOyrwqoWcXoCQQSOik\r\nl3QGRL2G8O351TfcdUQcsdKen+3VAgMBAAGjggHbMIIB1zAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0l\r\nBBYwFAYIKwYBBQUHAwQGCCqDDgMDBAEBMA8GA1UdIwQIMAaABFtqdBEwHQYDVR0OBBYEFPrTgU/V\r\nBrZCGeNUL9eFddLx00HeMF4GA1UdIARXMFUwUwYHKoMOAwMCAzBIMCEGCCsGAQUFBwIBFhVodHRw\r\nOi8vcGtpLmdvdi5rei9jcHMwIwYIKwYBBQUHAgIwFwwVaHR0cDovL3BraS5nb3Yua3ovY3BzMFYG\r\nA1UdHwRPME0wS6BJoEeGIWh0dHA6Ly9jcmwucGtpLmdvdi5rei9uY2FfcnNhLmNybIYiaHR0cDov\r\nL2NybDEucGtpLmdvdi5rei9uY2FfcnNhLmNybDBaBgNVHS4EUzBRME+gTaBLhiNodHRwOi8vY3Js\r\nLnBraS5nb3Yua3ovbmNhX2RfcnNhLmNybIYkaHR0cDovL2NybDEucGtpLmdvdi5rei9uY2FfZF9y\r\nc2EuY3JsMGIGCCsGAQUFBwEBBFYwVDAuBggrBgEFBQcwAoYiaHR0cDovL3BraS5nb3Yua3ovY2Vy\r\ndC9uY2FfcnNhLmNlcjAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AucGtpLmdvdi5rejANBgkqhkiG\r\n9w0BAQsFAAOCAgEADHWBFI1HJWSX2D1BpWB/nL9L4OnL+zb5pK/jlzcXCcZ4OkWgELPxsKIgLzt9\r\nyVSK4AkbWwq2F5xtRHnKziTdJ7jeJrtBNcJpvRhtm222SZL8jSX9tOsMCQUaw8QR10G7aSKatKl2\r\nElu4CxnxSIIQEEix5MjehjgizGaoQG7P6EzIeac+iUywG7fIARuB3jY83q50YCnRMerYYZV54zq1\r\nCs/mXEXvlzufyBsIcSg1TKp91ztNd2yeIPfcDLq4AiM0x2J5F8mK8nSPb289HvmIP2qTAKJROkCF\r\npCv5eniSoMRIAXHYz3BkrLHpRwpJS/7Fx2txE0h3tjLI5rErzdguSSf+fpKERE9TEDHktL4rxFki\r\nBMJTVNcTmCoTUNa7p6Z60AuBmbQ1kd+jmeYHcfb4PLAMdF8DRHxuGxU2KC701aUffS9tJsPa0NTN\r\n+rPViNR1A4qvgUdC/Jvj16FSirw91wEakAsPV71xURHAoSJhzXaNmvb/mWl6Lg7GUALstZBfGCCt\r\nrlTTEUlYUE3M01Mb8IO4DJaLxVvmRr0Ro3/+sR5Rc6/5WY6xyAK8A8760W+L0PlDNxu2mfcU3yx9\r\nLbsILZm8/CVbp6A1TzUZSGI5NBV64faKru32hlRzWOlM6IiEE+fWro5g5qK5HtvaejpIfW95ZSnh\r\n+OTsgc09g1RueOQ=\r\n</ds:X509Certificate>\r\n</ds:X509Data>\r\n</ds:KeyInfo>\r\n</ds:Signature>","verifyOcsp":true,"verifyCrl":false}}

Получаем ответ {"message":"Api error: Server returned HTTP response code: 500 for URL: http://ocsp.pki.gov.kz","status":5}
Это 1 из 1000 неудачных ответов, не знаем, что и делать, в чем может быть проблема?

ezsigner.kz; РЕЗУЛЬТАТ ПРОВЕРКИ – НЕУДАЧНО

Почему неудачно, из за того что Результат проверки TSP отсутствует?
Информация об электронном документе

1) ПОДПИСАНТ –***** **** ******; РЕЗУЛЬТАТ ПРОВЕРКИ – НЕУДАЧНО

  • Результат проверки сертификата | Успешно
  • Результат проверки TSP | Отсутствует метка времени
  • Результат проверки подписи | Успешно
  • ИИН | *****
  • ФИО | *****
  • Серийный номер сертификата | *****
  • Срок действия сертификата | 19/08/2020 17:20:07 - 19/08/2021 17:20:07

SignWsse

Здравствуйте.
Планируете ли вы в обозримом будущем реализовать метод SignWsse?

Возможность последовательной подписи

Добрый день!

Подобный вопрос уже задавали здесь:
Подписываю один документ с двумя ЭЦП, но в signers показывает только один #40

Столкнулись с необходимостью последовательной подписи, что вы подразумеваете под xmldsig подписью?
Какая схема работы предполагается для последовательной подписи?

Ранее мы пробовали метод XML.sign для последовательной подписи, но в таком случае, после второй подписи метод XML.verify выдает ошибку.

@malikzh можете помочь с ответом?

Ссылка для скачивания - ERROR 404: Not Found.

docker container logs 3bcf922d6a0b

--2019-03-26 06:43:50-- http://ncanode.kz/downloadlink.php
Resolving ncanode.kz (ncanode.kz)... 195.210.46.50, 2a00:5da0:1000::126
Connecting to ncanode.kz (ncanode.kz)|195.210.46.50|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/malikzh/NCANode/releases/download/v1.1.0/NCANode-v1.0.1.tar.gz [following]
--2019-03-26 06:43:50-- https://github.com/malikzh/NCANode/releases/download/v1.1.0/NCANode-v1.0.1.tar.gz
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-03-26 06:43:53 ERROR 404: Not Found.

TSP v2

Спасибо.
Еще вопрос.
Почему при использовании cms.sign и последующей проверке, получается это:
Screenshot_4
Это при использовании v2. Какой параметр передавать нужно, для создания метки TSP?

Originally posted by @anaumov93 in #66 (comment)

Удалить из CMS.sign параметр tspInCms

В связи с дублированием функционала, из метода CMS.sign будет удалён параметр tspInCms.

Теперь подпись TSP будет добавляться в CMS по умолчанию если указан флаг createTsp.

Кому необходим именно TSP, те смогут воспользоваться методом TSP.sign

Поддержка https

Добрый день!

Есть ли возможность развернуть сервис с использованием https?

Завис при запуске на сервере

Describe the bug
Я собрал проект, подставил все библиотеки в папку lib.
При запуске на сервере java -jar ncav2.jar -config:NCANode.ini
Завис с сообщением
Starting HTTP server on 0.0.0.0:14141
До этого все прекрасно работало. Вчера упал сервис, сегодня вот такая вот проблема. Серверные настройки не менял.

Вопрос по RAW.verify

Добрый день,

По документации RAW.verify может валидировать подпись ЭЦП и получить оттуда данные пользователя, но как мне проверить, что эта подпись соответствует данным, которые пользователь подписывал?

Kalkan Version: null

Здравствуйте.
Запрос
{
"version": "2.0",
"method": "node.info"
}
Ответ
{
"dateTime": "2020-12-06 07:51:22",
"timezone": "Etc/UTC",
"kalkanVersion": null,
"name": "NCANode v2.0.1",
"message": "",
"version": "2.0.1",
"status": 0
}
Собирал с kalkancrypt-0.6.1.jar через mvn clean package. Для сборки отредактировал pom.xml, подставил 0.6.1 вместо 0.6
Что я сделал не так?)

Поддержка двоичного протокола

Для передачи больших файлов base64 никуда не годится, т.к. увеличивает размер файла на треть, мною было принято решение о реализации бинарного протокола NBP ( NCANode Binary Protocol ). Спецификация протокола будет позже

Подписываю один документ с двумя ЭЦП, но в signers показывает только один

Здравствуйте!

Подписываю один документ через cms.sign (2.0) с одним ЭЦП.
В cms.verify проверяю подписанный CMS, там все правильно показывает.

Потом этот CMS подписываю снова через другой ЭЦП.

и снова проверяю через cms.verify полученный CMS, а там показывает только последний подписавший ЭЦП.

проверил через RAW.sign (1.0), тоже самое.

Вопрос: что нужно сделать чтобы после подписи сохранились все подписи?

Пробовал подписать через https://ezsigner.kz/ там все показывает (все подписи).

Получение открепленной cms подписи

Здравствуйте!

Подскажите пожалуйста, как получить открепленную cms подпись?

Наподобие как в NCALayer, когда методу createCAdESFromBase64 в качестве одного из аргументов передается флаг "Включить данные в подпись"

Спасибо!

Ошибка сборки

Всем привет. Не подскажете почему в lib не находит библиотеку при сборке?
Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project kz.ncanode:ncanode:jar:2.0.1: The following artifacts could not be resolved: pki.gov.kz:kalkancrypt:jar:0.6, pki.gov.kz:kalkancryptxmldsig:jar:0.3: Failure to find pki.gov.kz:kalkancrypt:jar:0.6 in file:///root/lib was cached in the local repository, resolution will not be reattempted until the update interval of kalkan has elapsed or updates are forced

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.