1

Тема: spki1utl.exe в цикле и ПИН

Здравствуйте!
Подскажите, пожалуйста, что нуобходимо сделать, чтобы при последовательном вызове spki1utl.exe (в цикле) ПИН от смарт-карты e-Token запрашивался только один раз? Кэширование ПИН включено в настройках Сигнатуры 5.0, но это не помогает и пароль приходится вводить для каждого файла

2

Re: spki1utl.exe в цикле и ПИН

Добрый день!

При использовании утилиты spki1utl.exe пин-код будет запрашиваться каждый раз при вызове утилиты. Возможные варианты решения проблемы:

  • Разработать утилиту, в которой инициализация СКЗИ будет выполняться один раз, а далее будут выполняться необходимые операции;

  • Использовать e-Token без пин-кода (однофакторная аутентификация);

  • Использовать в качестве носителя ключа съемный носитель.

3

Re: spki1utl.exe в цикле и ПИН

alart пишет:

Добрый день!

При использовании утилиты spki1utl.exe пин-код будет запрашиваться каждый раз при вызове утилиты. Возможные варианты решения проблемы:

  • Разработать утилиту, в которой инициализация СКЗИ будет выполняться один раз, а далее будут выполняться необходимые операции;

  • Использовать e-Token без пин-кода (однофакторная аутентификация);

  • Использовать в качестве носителя ключа съемный носитель.

а можно ли инициализирвоать СКЗИ через vbs скрипт? А ещё точнее через HTA?

Спасибо

4

Re: spki1utl.exe в цикле и ПИН

Можно воспользоваться COM-объектом PKI.VCERT. Вот пример скрипта.

  <script language="vbscript" type="text/vbscript">
    Sub SignFiles
      On Error Resume Next
      Err.Clear

      Dim errText
      Dim Crypt
      Dim SignParam

      Set Crypt = CreateObject("PKI.VCERT")
      If Crypt is Nothing Then
        MsgBox "Ошибка загрузки объекта PKI.VCERT", 0, "Ошибка"
        Exit Sub
      End If

      Crypt.Initialize "MY", 0
      If Err.Number=0 Then
          Set SignParam=CreateObject("PKI.SignParam")
          SignParam.flag = 1 ' Flag_Sign_Pkcs7
          Crypt.SignFile SignParam, "c:\hta\1.dat", Empty, "c:\hta\1.dat.p7s"
          Crypt.SignFile SignParam, "c:\hta\2.dat", Empty, "c:\hta\2.dat.p7s"
          If Err.Number=0 Then
              MsgBox "OK", 0, ""
          End If
      Else
          Crypt.GetPKIErrorTextVBS Err.number, errText
          MsgBox errText, 0, "Ошибка"
      End If

      Set SignParam = Nothing
      Set Crypt = Nothing
    End Sub
  </script>

Но нужно учесть, что VCERTCOM предназначена для вызова из Visual Basic и Delphi, не все функции работают при вызове из скриптов. Библиотека VCERTCOM описана в руководстве программиста (ВАМБ.00106-01 33 01).

5

Re: spki1utl.exe в цикле и ПИН

alart пишет:

Но нужно учесть, что VCERTCOM предназначена для вызова из Visual Basic и Delphi, не все функции работают при вызове из скриптов. Библиотека VCERTCOM описана в руководстве программиста (ВАМБ.00106-01 33 01).

Спасибо, попробуем. В дистрибьютиве от ЦБ что-то не видно 00106-01 33 01. Где его можно скачать?

6

Re: spki1utl.exe в цикле и ПИН

По поводу руководства программиста обратитесь в свое региональное управление ЦБ РФ.

7

Re: spki1utl.exe в цикле и ПИН

Ответ Московского ЦБ: "Документация СКАД Сигнатура размещена на сайте в разделе «Информация о новых версиях программного обеспечения»". Я отметил им, что на сайте (http://cbr.ru/mcirabis/?PrtId=itest ) я вижу документацию только для Сигнатуры 3.6.267.07 (http://cbr.ru/mcirabis/PO/skad_ver3.6.267.07.zip ), но не для Сигнатуры 5, и в этом архиве нет руководства программиста, но не знаю пока как они отреагируют

8

Re: spki1utl.exe в цикле и ПИН

Похоже ЦБ решил дальнейшие вопросы на эту тему игнорировать sad

9

Re: spki1utl.exe в цикле и ПИН

СКАД Сигнатура является собственностью Банка России и мы не имеем права распространять даже документацию. Попробуйте обратиться в Рязанское ТУ.