NCALayer с отключенным интернетом

Исходная задача - полноценная работа NCALayer на компьютере, не подключенному к интернету (только интранет).

Воспроизвожу так:

  1. Отключаю вайфай
  2. Перезапускаю NCALayer, включаю вай-фай обратно
  3. У меня есть моя HTML формочка (выбор файла сертификата, ввод пароля), выбираю файл, ввожу пароль.
  4. Далее запускаются разные методы через websocket:
    получение списка сертификатов (getKeys),
    получение свойств (getNotAfter, getRdnByOid),
    формирование подписи (createCMSSignature).
    Туда передаю все требуемые данные и пароль, введённый на форме, получаю ответы
  5. При каждом запуске любого метода (п.4) NCALAyer перезапрашивает пароль, появляется его дополнительное окошко.
    Итого пользователь вводит пароль условно пять лишних раз.

Если в момент запуска NCALayer интернет был, то перезапроса (пункт 5) не происходит и всё гладко, ответы получаются без дополнительных запросов пароля.

Проверяется и на таком тестовом примере:
https://github.com/danikarik/ncalayer-demo

1 Симпатия

Вам следует перейти на исползование методов модуля Common Bundle. Если вы получали SDK, то по рассылке несколько раз было отправлено письмо на эту тему.

Указанные вами методы доступны только до определнного времени, но из-за того что вы работаете без интернета NCALayer не может проверить срок.

1 Симпатия

Видел “Common Bundle”, но там как-то негусто с методами.
Мне бы хотелось:
а) проверить свойства сертификата до отправки на сервер (требуются определённые ИИН, и чтоб пользователь не перепутал личный ключ с ЮЛ) и показать их на форме
б) подписать несколько разных блоков за одну сессию
и при этом избежать ввода пароля более одного раза.
Я так понимаю опции типа “кэшировать пароль на икс минут” нет.
Всё-таки переходить на “Common bundle” ?

1 Симпатия

Так как вы пытаетесь работать без интернета, то вам остается либо переходить на Common Bundle, либо продолжать как есть.

Метод getKeyInfo в Common Bundle извлекает все данные о сертфикате. Опции для кэширования пароля не будет из-за соображений безопасности. Если вам нужен дополнительный функционал, то вы можете добавить свой модуль. Процедура описана в SDK.

1 Симпатия

Только какая-то часть пользователей работает без интернета.
Метод getKeyInfo будет лишний раз запрашивать пароль, чего бы очень хотелось избежать.
Впрочем окошко подписи у него что-то да показывает, может и этого будет достаточно.
Или надо разбирать подпись вручную или прокручивать через бэкенд.
Но подписать серию документов с одним вводом пароля… клеить серию документов в один документ - не вариант по условию задачи. Кстати, метка времени тоже попросит лишний раз пароль и от этого тоже не отбиться.
Может самое простое - пробить пользователям интернет…
Свой модуль это перебор, мне так кажется.
Спасибо!
Больше вариантов не видно…