Spki1utl утилита командной строки СКАД Сигнатура - diev/diev.github.io GitHub Wiki

Spki1utl

Утилита командной строки СКАД Сигнатура

Использование

Утилита командной строки (версия 5.0.341.0) использование: spki1utl.exe [ОПЕРАЦИИ] [ПАРАМЕТРЫ] [ОПЦИИ]

операции

  • -sign - подписать
  • -verify - проверить подпись
  • -encrypt - зашифровать
  • -decrypt - расшифровать
  • -hash - вычислить хэш
  • -help - показать справку

параметры

  • -profile [PROFILE] - установить профиль в PROFILE
  • -registry - использовать профиль PROFILE из реестра
  • -algorithm [OID] - объектный идентификатор алгоритма хэширования
  • -in [INFILE] - имя входного файла INFILE
  • -out [OUTFILE] - имя выходного файла OUTFILE
  • -data [DATAFILE] - имя файла данных DATAFILE (для ЭП и хэш)

опции

  • -minimal - использовать минимальный набор функций
  • -stream - использовать потоковые алгоритмы
  • -format [FMT] - формат хэш-значения - 1: LE число (по умолчанию); 2: LE байты; 3: BE число; 4: Base64
  • -silent [ERRFILE] - режим без показа сообщений c записью протокола в ERRFILE
  • -sendcert - добавлять собственный сертификат при выполнении ЭП
  • -crlupdate [FILE] - обновление СОС (если FILE не задан, то с LDAP)

опции проверки ЭП

  • -p7 - формат PKCS#7
  • -revtime - использовать время отзыва сертификата
  • -detached - отделенная ЭП
  • -eku [EKU] - добавить oid EKU расширенного использования ключа
  • -policy [POLICY] - добавить oid POLICY политики использования сертификата
  • -delete [КОЛ] - удалить КОЛ подписей после проверки
  • -ldap (crlupdate) - использовать LDAP для поиска сертификатов
  • -aiacdp - использовать точки AIA и CDP при построении цепочек
  • -info [FIELDS] - информация о сертификате (по умолчанию: владелец,хэш)
    возможные значения: subject, hash, altname, serial, notbefore, notafter, algorithm

опции шифрования

  • -recsubj [SUBJ] - добавить сертификат с DN SUBJ в список получателей
  • -rechash [HASH] - добавить сертификат с хэшем HASH в список получателей
  • -reckeyid [KEYID] - добавить сертификат с идентификатором ключа KEYID в список получателей
  • -reclist [FILE] - считать список получателей из файла FILE

Примеры использования

Подписывание файла

"C:\Program Files\MDPREI\spki\spki1utl.exe" -sign -data %1 -out %2

Шифрование файла

"C:\Program Files\MDPREI\spki\spki1utl.exe" -encrypt -in %1 -out %2 -recsubj "CN=KZ_GU,OU=KC,O=CBRF,L=KASZ,ST=40,C=RU"

(Команда в одну строку - с указанием сертификата CN= получателя.)

Допустимо шифрование сразу на несколько получателей с указанием их в отдельных -recsubj или же в файле для параметра -reclist (обязательно указывать полный путь к этому файлу, а иначе ищется в C:\Windows).

"C:\Program Files\MDPREI\spki\spki1utl.exe" -encrypt -in %1 -out %2 -reclist .\reclist.txt

Формат файла для -reclist такой:

[General]
Number=2
[Recipient1]
Type=KeyId
Value=<Тут ключ ФНС>
[Recipient2]
Type=KeyId
Value=<Тут ключ ФСС>

Расшифровывание файла

"C:\Program Files\MDPREI\spki\spki1utl.exe" -decrypt -in %1 -out %2

Проверка подписи

"C:\Program Files\MDPREI\spki\spki1utl.exe" -verify -in %1

Проверка подписи и получение исходного сообщения

"C:\Program Files\MDPREI\spki\spki1utl.exe" -verify -in %1 -out %2 -delete 1

Использование с другим профилем

Файл конфигурации

Примечание: чтобы всякий раз не запрашивался нужный профиль, можно указать параметр -profile, но для его работы надо создать файл pki1.conf (в кодировке 1251) в текущей директории:

# pki1 configuration file
default: По умолчанию
local: 07-FOIV
pse: pse://signed/C:\СКАД\Профили абонентов\07-FOIV\local.pse
localstore: file://C:\СКАД\Профили абонентов\07-FOIV\local.gdbm

Шифрование в адрес двух получателей с указанным профилем

"C:\Program Files\MDPREI\spki\spki1utl.exe" -profile 07-FOIV -encrypt -in %1 -out %2 -recsubj FNS -recsubj FSS

Расшифровывание, расcжатие и снятие подписи с пачки XML файлов

for %%f in (temp\CB_ES550P_*.xml) do (
  "C:\Program Files\MDPREI\spki\spki1utl.exe" -profile %profile% -decrypt -in %%f -out %%f.gz
  "C:\Program Files\7-Zip\7z.exe" e -y -tgzip %%f.gz
  "C:\Program Files\MDPREI\spki\spki1utl.exe" -profile %profile% -verify -in %%f -out ExchangePoint\CBRF\BANK\%%~nxf -delete 1
)

Вычисление хэш-суммы

Для вычисления нового хэша после изменения файла конфигурации АРМ КБР-Н можно использовать команду:

"C:\Program Files\MDPREI\spki\spki1utl.exe" -hash -stream -algorithm 1.2.643.7.1.1.2.2 -data %1 -minimal -format 4

  • Для этого в файле pki1.conf указать профиль KBR-N
  • Удалить в файле arm.cfg параметр hash="..." в тэге Config (оставить <Config> только)
  • Рассчитать и вписать новое вычисленное значение на это место (<Config hash="...">)
⚠️ **GitHub.com Fallback** ⚠️