Как подписать строку?

Добрый день. Пытаюсь авторизироваться на портале ismet для работам по маркировке товаров.
Там есть описание документации True API, в которой для авторизации надо запросить строку с данными, подписать её клиентом NCALayer.
Подскажите, пожалуйста, как подписать строку?

В других ветках упоминают SDK, но я её не нашел

Здравствуйте. Процесс получения SDK описан у нас на сайте https://pki.gov.kz/developers/

Касательно того как используется NCALayer в сервисах ismet.kz лучше сначала уточнить в их техподдержке.

Спасибо. Будем отправлять заявку на получение SDK. Честно говоря надеялся что есть какой-то сервер подписи, предоставляющий веб-сервис для подписания, как это сделано в ЭСФ и СНТ

В SDK есть пример использования NCALayer в папке \NCALayer\commonbundle_sample. Из перечисленных в нем методов вам скорее всего подойдет метод подписи Base64 данных в формате CMS.

Все же для начала не помешало бы связаться с ismet.kz, чтобы узнать какой модуль, метод и параметры они используют для своего API.

Добрый день,

Вы можете попробовать интерактивно отправлять команды NCALayer на странице документации KAZTOKEN mobile: https://kaztoken.kz/mobile-docs/

KAZTOKEN mobile повторяет функционал NCALayer, так что команды совпадают.

Спасибо.
А можно поподробнее - как отправлять команды NCALayer? Просто я уже давно не программировал в Windows и не знаю, что и как.

Так как у меня цель - из SAP работать с порталом imset. Предполагаю что должно работать следующим образом:
SAP обращается к NCALayer (или к какой-то его библиотеке), подписывает строку и дальше работает с ismet

Или лучше, если будет обращаться к NCALayer по вебсокету

Если нет необходимости работать через браузер, то вам нет смысла использовать NCALayer. В SDK предоставлены библиотеки на Java и C, с помощью которых вы можете подписыать данные. Мне кажется вам сначала нужно ознакимться с SDK и попробовать примеры, которые в нем предоставлены.

NCALayer - это Websocket сервер, соответственно взаимодействовать вам с ним следует по Websocket.

Но в описанном вами подходе (вы предполагаете подписывать документы автоматически на стороне сервера) есть пара нюансов:

  1. Вам потребуется чтобы кто-то предоставил вам закрытый ключ и сертификат НУЦ с паролем которые вы разместите на сервере. Тот субъект, который согласится передать вам свой ключ ЭЦП должен очень сильно вам доверять - ведь этот ключ ЭЦП можно использовать не только для вашей задачи, но и для подписания любых документов. То есть если этот ключ каким-то образом попадет в третьи руки, то эти третьи руки смогут совершать юридически значимые действия от имени субъекта.
  2. В Законе о цифровом документе и цифровой подписи сказано что передача закрытого ключа другому субъекту запрещена и приводит к тому что цифровая подпись теряет юридическую значимость. То есть получать от кого-либо закрытый ключ и сертификат НУЦ не только не безопасно, но еще и противозаконно.

По хорошему вам следует встроить подписание в веб интерфейс SAP и подписывать на стороне клиента через NCALayer.

Можно подробное описание websocket NCALayer?
По поводу SDK - сейчас идет согласование с клиентом запроса на его получение - жду
По поводу хранения сертификата - а если передавать без пин кода? Дело в том, что даже решение SAP уже это подразумевало - ставится сервер подписи из комплекта разработчика ЭСФ и сертификаты подписи пользователей. Потом пользователь, который отправлял ЭСФ на портал дает команду на подпись. SAP спрашивает у него пароль и передает его с XML-фалом на сервер подписи. Потом уже отправляет его на портал ЭСФ.

В данном случае я проектировал процесс аналогично

Можно подробное описание websocket NCALayer?

Для обращения к NCALayer по websocket используются стандартные средства. Единственное отличие это какие данные вы передаете. Формат сообщения, который нужно отправить в NCALayer указан в примере SDK.

В законе написано: “Закрытые ключи электронной цифровой подписи не могут быть переданы другим лицам.” То есть нет поблажек на счет пин кода. Весь текст вы может прочитать здесь http://adilet.zan.kz/rus/docs/Z030000370_ Дополнительаня документация по юридической части собрана у нас на сайте: https://pki.gov.kz/documentation/