Выполнение операций в командной строке#
Научитесь работать с командной строкой (CLI) КриптоАРМ: подписывать, шифровать, расшифровывать и проверять файлы. В этом руководстве собраны команды и практические примеры для Windows, Linux и macOS.
Содержание:
- Общая информация
- Подпись
- Шифрование
- Расшифрование
- Проверка подписи
- Пример скрипта для проверки подписанных документов
- Смотрите также
Общая информация#
CLI (Command Line Interface, интерфейс командной строки) — это способ управления приложением с помощью текстовых команд, вводимых через терминал или консоль.
Команды определяют, какие операции выполнить, с какими параметрами и над какими файлами.
CLI также подходит для автоматизации — выполнения операций без участия пользователя в составе систем обмена и скриптов .bat и .sh.
Важные замечания#
-
Перед использованием CLI убедитесь, что приложение настроено для работы с электронной подписью.
🔍 Подробную информацию о настройке можно найти в инструкции Начало работы.
-
Перед вводом команды необходимо указать путь до исполняемого файла. После указания пути до исполняемого файла необходимо поставить пробел, затем вводить команды.
- Все команды и параметры пишутся через пробел.
Синтаксис команд#
-команда— команда пишется первой, после пути до исполняемого файла. Далее указываются значения переменных и параметры операции.<текст>— указываются значения переменной, такие как Серийный номер сертификата, Путь до исходного файла, OID алгоритма шифрования и т.п.[текст]— необязательные параметры, которые можно как задать, так и не задавать, тогда будут использоваться значения по умолчанию.
Пути к исполняемым файлам#
| Система | Путь при установке по умочанию |
|---|---|
| Windows | %ProgramFiles%\CryptoARM 7\cryptoarm7.exe" |
| Linux | /opt/cryptoarm6/cryptoarm7 |
| macOS | /Applications/cryptoarm7.app/Contents/MacOS/cryptoarm7 |
Подпись#
Команда: sign или sig
Команда позволяет выполнить операцию подписи одного или нескольких файлов.
Если в качестве исходного файла указать уже подписанный документ, то будет добавлена соподпись.
Синтаксис#
sign -cert <serial> [-enc DER|BASE64] [-detached] [-save-copy] [-pin <PIN>] [-ext <sign file extention>] [-sign-type <CadesT|CadesA|CadesXLT1> -tsp <tsp-addr> [-ocsp <ocsp-addr>] [-proxy <proxy-addresss> [-proxy-port <port>] [-proxy-login <login>] [-proxy-password <password>]]] <source-file-name>|<source-folder> <encrypted-file-path>|<folder-to-save-signed>
Описание команды#
Общие параметры подписи#
| Параметр | Описание | По умолчанию |
|---|---|---|
--cert <serial> | Серийный номер сертификата подписи | — |
--standard <type> | Стандарт подписи CAdES (CAdES-BES, CAdES-T, CAdES-A, CAdES-XLT1) | "CAdES-BES" |
--detached | Создать отделённую подпись | Отключено |
--save-copy | Сохранять копию результата в Архиве | Отключено |
--pin <pin-code> | ПИН-код ключа сертификата | — |
--enc <DER\|BASE-64> | Формат сохранения подписи | "DER" |
--ext <sig\|p7s\|sgn\|sign\|bin> | Расширение файла подписи | "sig" |
-f, --force | Использовать недействительный сертификат без подтверждения | Отключено |
--logcrypto | Включение лога trusted-crypto | Отключено |
Параметры подписи PDF (PAdES)#
| Параметр | Описание | По умолчанию |
|---|---|---|
--pades | Подписать PDF по стандарту PAdES | Отключено |
--overwrite-original-pdf | Перезаписать исходный файл после подписи | Отключено |
--stamp-width <width> | Ширина штампа | — |
--stamp-height <height> | Высота штампа | — |
--stamp-padding-left <padding> | Отступ слева | — |
--stamp-padding-bottom <padding> | Отступ снизу | — |
--stamp-color <color> | Цвет штампа | #000000 |
--stamp-no-background | Прозрачный фон под штамп | Отключено |
--stamp-page <number> | Страница размещения | Последняя |
--stamp-on-all-pages | Дублировать штамп на всех страницах | Отключено |
--stamp-mchd <number> | Добавить номер МЧД в штамп | — |
--stamp-pixel-ratio <ratio> | Pixel Ratio для рендеринга штампа | 1 |
⚠️ Ключ
--overwrite-original-pdfнеобратимо изменяет исходный файл. Используйте его с осторожностью, особенно в скриптах, где путь к файлу контролируется.🚨 Информация в штампе (ФИО, дата, сертификат и т.д.) генерируется автоматически на основе данных вашего сертификата. Настраивается только его визуальное представление, исключение — номер МЧД.
Сетевые параметры#
| Параметр | Описание | По умолчанию |
|---|---|---|
--tsp <url> | Адрес службы метки времени TSP | — |
--ocsp <url> | Адрес службы OCSP | — |
--proxy <address> | Адрес прокси-сервера | — |
--proxy-port <port> | Порт прокси | — |
--proxy-login <login> | Логин для прокси | — |
--proxy-password <password> | Пароль для прокси | — |
Ввод и вывод#
| Параметр | Описание | По умолчанию |
|---|---|---|
--source-file <file> | Путь к подписываемому файлу | — |
--source-folder <folder> | Подписать все файлы из папки | — |
--signed-file-path <file> | Путь для результата подписи | — |
--folder-save-signed <folder> | Папка для подписанных файлов | — |
-h, --help | Показать справку | — |
Практические примеры#
Пример 1: Подпись со стандартным штампом на последней странице#
В этом примере подписывается PDF-файл со штампом размером 100×30 мм, расположенным в 20 мм от левого и нижнего края последней страницы.
"C:\Program Files\CryptoARM 7\cryptoarm7.exe" sign \
--source-file "C:\Doc\Пример.pdf" \
--cert "5883d78e000300093ab6" \
--pin "12345678" \
--pades \
--stamp-width 100 \
--stamp-height 30 \
--stamp-padding-left 20 \
--stamp-padding-bottom 20
Внешний вид штампа:

Пример 2: Подпись со штампом красного цвета на всех страницах#
В этом примере подписывается PDF-файл со штампом красного цвета. Штамп размещен в правом нижнем углу на каждой странице документа.
"C:\Program Files\CryptoARM 7\cryptoarm7.exe" sign \
--source-file "C:\Doc\Пример.pdf" \
--cert "5883d78e000300093ab6" \
--pin "12345678" \
--pades \
--stamp-width 80 \
--stamp-height 30 \
--stamp-padding-left 110 \
--stamp-padding-bottom 10 \
--stamp-color "#FF0000" \
--stamp-on-all-pages
Внешний вид штампа:

Пример 3: Подпись документа с меткой времени#
В этом примере подписывается файл со стандартом CAdES-T, который включает метку времени. Файл будет сохранен в формате .p7s с кодировкой BASE-64. Копия файла будет помещена в папку Архив раздела Документы.
"C:\Program Files\CryptoARM 7\cryptoarm7.exe" sign \
--source-file "C:\Documents\Example.pdf" \
--cert "5883d78e000300093ab6" \
--pin "12345678" \
--standard "CAdES-T" \
--tsp "https://example.com/tsp/tsp.srf" \
--enc "BASE-64" \
--ext "p7s" \
--save-copy \
Шифрование#
Команды: encrypt или enc
Команда позволяет выполнить шифрование одного или нескольких файлов в адрес одного или нескольких сертификатов.
Синтаксис#
encrypt --cert <серийный номер сертификата> [--enc DER|BASE64][--alg <alg-oid>] [--delete-source][--save-copy] [--ext <encrypted file extension>] --source-file <путь к файлу>|--source-folder <путь к папке> --encrypted-file-path <путь к файлу c новым именем для сохранения результата>|--folder-save-encrypted <путь к папке для сохранения результата>
Описание команды#
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
--cert <serial...> | Серийный номер сертификата подписи (можно указать несколько) | — |
--alg <alg-oid> | OID алгоритма шифрования | "1.2.643.2.2.21" |
--delete-source | Удаление исходного файла после шифрования | Отключено |
--save-copy | Сохранение копии результата в Архиве | Отключено |
--ext <enc\|p7m\|p7e\|pem> | Расширение создаваемого шифрованного файла | "enc" |
--enc <DER\|BASE-64> | Кодировка шифруемого файла | "DER" |
--logcrypto | Включает лог trusted-crypto | Отключено |
-f, --force | Автоматическое согласие на использование недействительных сертификатов | Отключено |
--source-file <path-file> | Путь к файлу для шифрования | — |
--encrypted-file-path <path-file> | Путь к файлу для сохранения результата шифрования | — |
--folder-save-encrypted <path-folder> | Путь к папке для сохранения зашифрованных файлов | — |
--source-folder <path-folder> | Путь к папке с файлами для шифрования | — |
-h, --help | Вывод справки команды | — |
Практический пример#
В этом примере шифруется файл Example.txt с использованием сертификата с серийным номером 5883d78e000300093ab6. Результат шифрования будет сохранен в файл Encrypted_Example.enc. Исходный файл будет удален, а копия зашифрованного файла сохранится в папку Архив раздела Документы.
"C:\Program Files\CryptoARM 7\cryptoarm7.exe" encrypt \
--cert "5883d78e000300093ab6" \
--enc "DER" \
--alg "1.2.643.2.2.21" \
--delete-source \
--ext "enc" \
--save-copy
--source-file "C:\Documents\Example.txt" \
--encrypted-file-path "C:\Documents\Encrypted_Example.enc"
Расшифрование#
Команды: decrypt или dec
Команда позволяет выполнить расшифрование одного или нескольких зашифрованных файлов.
Синтаксис#
decrypt [-pin <PIN>] [-save-copy] <source-file-name>|<source-folder> <encrypted-file-path>|<folder-to-save-decrypted>
Описание команды#
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
--save-copy | Сохранение копии результата в Архиве | Отключено |
--logcrypto | Включает лог trusted-crypto | Отключено |
--pin <pin-code> | Пин-код ключа расшифрования | - |
--source-file <path-file> | Путь к файлу для расшифрования | - |
--source-folder <path-folder> | Путь к папке с файлами для расшифрования | - |
--decrypted-file-path <path-file> | Путь для сохранения расшифрованного файла | - |
--folder-save-decrypted <path-folder> | Путь к папке для сохранения результатов расшифрования | - |
-h, --help | Вывод справки команды | - |
Практический пример#
В этом примере расшифровывается файл Encrypted_Example.enc. Для сертификата шифрования используется ПИН-код 12345678. Расшифрованный результат сохраняется в C:\Documents\.
"C:\Program Files\CryptoARM 7\cryptoarm7.exe" decrypt \
--pin "12345678" \
--source-file "C:\Documents\Encrypted_Example.enc" \
--decrypted-file-path "C:\Documents\Decrypted_Example.txt"
Проверка подписи#
Команды:
verifyилиververify_tsилиvts- проверка штампов времени из подписи
Команда позволяет выполнить проверку одной или нескольких подписей, либо штампов времени в файле подписи. Есть возможность сохранения отчёт о проверке в отдельный файл в формате pdf или json.
Синтаксис#
Описание команды#
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
-r-pdf, --save-report-pdf [report-folder] | Сохранение отчёта в формате PDF | Отключено |
-r-json, --save-report-json [report-file-path] | Сохранение отчёта в формате JSON | Отключено |
--document <original-file> | Путь к исходному файлу для откреплённой подписи | - |
--logcrypto | Включение лога trusted-crypto | Отключено |
--source-file <source-file-path> | Путь к файлу подписи для проверки | - |
--source-folder <source-folder-path> | Путь к папке с подписями для проверки | - |
-h, --help | Вывод справки по команде | - |
Практический пример#
В этом примере выполняется проверка подписи файлов в папке C:\Foldername с сохранением отчета о проверке в формате pdf в папку с проверяемыми файлами.
Пример скрипта для проверки подписанных документов#
Рассмотрим пример простого скрипта для проверки подписанных документов в папке с созданием общего отчета о проверке. Общий отчет о проверке сохраняется в формате JSON в ту же папку.
🚨 Важно: Во время проверки для каждого документа создаются JSON-файлы с отчетами. После завершения проверки скрипт удаляет эти файлы и формирует общий сводный отчет. Удалите строку
del /q "reportfile*.json", если необходимо сохранить эти отчеты.
set "SCRIPT_DIR=%~dp0"
"C:\Program Files\CryptoARM 6\cryptoarm6.exe" ver --source-folder %SCRIPT_DIR% -r-json
@echo off
setlocal enabledelayedexpansion
:: Настройки
set "log_file=signature_check_%date:~-4,4%%date:~-7,2%%date:~-10,2%_%time:~0,2%%time:~3,2%.log"
set "valid_count=0"
set "invalid_count=0"
set "valid_files="
set "invalid_files="
:: Создаем лог-файл
echo Проверка JSON-файлов на валидность подписи [%date% %time%] > "%log_file%"
echo. >> "%log_file%"
:: Проверяем файлы
echo Анализируем JSON-файлы...
echo Анализируем JSON-файлы... >> "%log_file%"
echo. >> "%log_file%"
for %%F in (*.json) do (
echo Обработка файла: %%F
echo Обработка файла: %%F >> "%log_file%"
find /i """signValid"":true" "%%F" > nul
if !errorlevel! equ 0 (
set /a "valid_count+=1"
set "valid_files=!valid_files!"%%F" "
echo Найдена VALID подпись >> "%log_file%"
echo [VALID] %%F
) else (
find /i """signValid"":false" "%%F" > nul
if !errorlevel! equ 0 (
set /a "invalid_count+=1"
set "invalid_files=!invalid_files!"%%F" "
echo Найдена INVALID подпись >> "%log_file%"
echo [INVALID] %%F
) else (
echo Не найдена информация о подписи >> "%log_file%"
echo [NO DATA] %%F
)
)
echo. >> "%log_file%"
)
:: Выводим результаты
echo.
echo ============ ИТОГИ ============
echo. >> "%log_file%"
echo ============ ИТОГИ ============ >> "%log_file%"
echo Валидных подписей: !valid_count!
echo Валидных подписей: !valid_count! >> "%log_file%"
echo Невалидных подписей: !invalid_count!
echo Невалидных подписей: !invalid_count! >> "%log_file%"
echo.
echo. >> "%log_file%"
echo ===== Файлы с VALID подписями: =====
echo ===== Файлы с VALID подписями: ===== >> "%log_file%"
for %%F in (!valid_files!) do (
echo %%~F
echo %%~F >> "%log_file%"
)
echo.
echo. >> "%log_file%"
echo ===== Файлы с INVALID подписями: ===
echo ===== Файлы с INVALID подписями: === >> "%log_file%"
for %%F in (!invalid_files!) do (
echo %%~F
echo %%~F >> "%log_file%"
)
echo.
echo. >> "%log_file%"
echo Лог сохранен в файл: %log_file%
echo.
del /q "reportfile*.json"
pause
⚠️ Примечание: При необходимости замените путь к исполняемому файлу:
"C:\Program Files\CryptoARM 6\cryptoarm6.exe".
Особенности скрипта#
-
Инициализация и подготовка
- При запуске скрипт автоматически определяет свою рабочую директорию (
%~dp0). - Создается лог-файл с именем: (
signature_report.log). - Инициализируются счетчики для подсчета действительных и недействительных подписей.
- При запуске скрипт автоматически определяет свою рабочую директорию (
-
Процесс проверки файлов
- Скрипт анализирует каждый промежуточный JSON-файл с отчетом, который создается для каждого подписанного документа.
-
Выполняется поиск строк:
"signValid":true- признак действительной подписи"signValid":false- признак недействительной подписи
-
Формирование отчета
-
После проверки всех файлов скрипт генерирует итоговый отчет, содержащий:
- Общее количество проверенных файлов
- Количество файлов с действительными подписями
- Количество файлов с недействительными подписями
-
Отчет сохраняется в том же каталоге, что и скрипт.
-
-
Очистка и завершение
- Автоматически удаляются JSON-файлы с отчетами, которые создаются для каждого документа.
Использование#
- Сохраните код в файл с расширением
.bat. - Поместите этот файл в папку с подписанными файлами.
- Запустите двойным кликом.
Смотрите также#
- Активация лицензии — инструкции по активации лицензий КриптоАРМ и КриптоПро CSP.
- Проверка рабочего места — проверка готовности системы для работы с электронной подписью и криптографическими компонентами.
- Подпись и шифрование — руководство по созданию электронных подписей и шифрованию файлов.
- Проверка и расшифрование — проверка подписей и расшифрование документов.
- Подпись и защита PDF — мастер для работы с PDF: просмотр, разметка областей, добавление подписей и сертифицирующая подпись.